aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-11 18:47:11 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-11 18:47:11 +0000
commit1236d8e37c96339865832ceef569340283201e37 (patch)
treeb9db0260aa4ac258548f7285b32789b10b5c3779 /tests
parentf3aead2829fa515f790631ee65784a7b9b073343 (diff)
[PDF] Fix bug in ToUnicode table generation for Type 3 fonts.
True glyphIDs where being using in the Type3 ToUnicode table instead of IDs of 1-255. This causes poppler to complain about each entry. BUG:skia:1565 R=bungeman@google.com Author: vandebo@chromium.org Review URL: https://codereview.chromium.org/112053005 git-svn-id: http://skia.googlecode.com/svn/trunk@12625 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r--tests/ToUnicode.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/tests/ToUnicode.cpp b/tests/ToUnicode.cpp
index 69ec614bcf..d518432b8a 100644
--- a/tests/ToUnicode.cpp
+++ b/tests/ToUnicode.cpp
@@ -28,6 +28,7 @@ static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset,
void append_cmap_sections(const SkTDArray<SkUnichar>& glyphToUnicode,
const SkPDFGlyphSet* subset,
SkDynamicMemoryWStream* cmap,
+ bool multiByteGlyphs,
uint16_t firstGlypthID,
uint16_t lastGlypthID);
@@ -74,7 +75,7 @@ static void TestToUnicode(skiatest::Reporter* reporter) {
SkDynamicMemoryWStream buffer;
subset.set(glyphsInSubset.begin(), glyphsInSubset.count());
- append_cmap_sections(glyphToUnicode, &subset, &buffer, 0, 0xFFFF);
+ append_cmap_sections(glyphToUnicode, &subset, &buffer, true, 0, 0xFFFF);
char expectedResult[] =
"4 beginbfchar\n\
@@ -96,7 +97,7 @@ endbfrange\n";
// Remove characters and ranges.
buffer.reset();
- append_cmap_sections(glyphToUnicode, &subset, &buffer, 8, 0x00FF);
+ append_cmap_sections(glyphToUnicode, &subset, &buffer, true, 8, 0x00FF);
char expectedResultChop1[] =
"2 beginbfchar\n\
@@ -114,7 +115,7 @@ endbfrange\n";
// Remove characters from range to downdrade it to one char.
buffer.reset();
- append_cmap_sections(glyphToUnicode, &subset, &buffer, 0x00D, 0x00FE);
+ append_cmap_sections(glyphToUnicode, &subset, &buffer, true, 0x00D, 0x00FE);
char expectedResultChop2[] =
"2 beginbfchar\n\
@@ -125,6 +126,23 @@ endbfchar\n";
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResultChop2,
buffer.getOffset()));
+ buffer.reset();
+
+ append_cmap_sections(glyphToUnicode, NULL, &buffer, false, 0xFC, 0x110);
+
+ char expectedResultSingleBytes[] =
+"2 beginbfchar\n\
+<0001> <0000>\n\
+<0002> <0000>\n\
+endbfchar\n\
+1 beginbfrange\n\
+<0003> <0006> <1010>\n\
+endbfrange\n";
+
+ REPORTER_ASSERT(reporter, stream_equals(buffer, 0,
+ expectedResultSingleBytes,
+ buffer.getOffset()));
+
glyphToUnicode.reset();
glyphsInSubset.reset();
SkPDFGlyphSet subset2;
@@ -146,7 +164,7 @@ endbfchar\n";
SkDynamicMemoryWStream buffer2;
subset2.set(glyphsInSubset.begin(), glyphsInSubset.count());
- append_cmap_sections(glyphToUnicode, &subset2, &buffer2, 0, 0xffff);
+ append_cmap_sections(glyphToUnicode, &subset2, &buffer2, true, 0, 0xffff);
char expectedResult2[] =
"4 beginbfchar\n\