diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-11 18:47:11 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-11 18:47:11 +0000 |
commit | 1236d8e37c96339865832ceef569340283201e37 (patch) | |
tree | b9db0260aa4ac258548f7285b32789b10b5c3779 /tests | |
parent | f3aead2829fa515f790631ee65784a7b9b073343 (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.cpp | 26 |
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\ |