| Index: tests/ToUnicode.cpp
|
| ===================================================================
|
| --- tests/ToUnicode.cpp (revision 11352)
|
| +++ tests/ToUnicode.cpp (working copy)
|
| @@ -27,7 +27,9 @@
|
|
|
| void append_cmap_sections(const SkTDArray<SkUnichar>& glyphToUnicode,
|
| const SkPDFGlyphSet* subset,
|
| - SkDynamicMemoryWStream* cmap);
|
| + SkDynamicMemoryWStream* cmap,
|
| + uint16_t firstGlypthID,
|
| + uint16_t lastGlypthID);
|
|
|
| static void TestToUnicode(skiatest::Reporter* reporter) {
|
| SkTDArray<SkUnichar> glyphToUnicode;
|
| @@ -56,7 +58,9 @@
|
| glyphToUnicode.push(0x35); // 11
|
| glyphsInSubset.push(12);
|
| glyphToUnicode.push(0x36); // 12
|
| - for (uint16_t i = 13; i < 0xFE; ++i) {
|
| + glyphsInSubset.push(13);
|
| + glyphToUnicode.push(0x37); // 13
|
| + for (uint16_t i = 14; i < 0xFE; ++i) {
|
| glyphToUnicode.push(0); // Zero from index 0x9 to 0xFD
|
| }
|
| glyphsInSubset.push(0xFE);
|
| @@ -70,7 +74,7 @@
|
|
|
| SkDynamicMemoryWStream buffer;
|
| subset.set(glyphsInSubset.begin(), glyphsInSubset.count());
|
| - append_cmap_sections(glyphToUnicode, &subset, &buffer);
|
| + append_cmap_sections(glyphToUnicode, &subset, &buffer, 0, 0xFFFF);
|
|
|
| char expectedResult[] =
|
| "4 beginbfchar\n\
|
| @@ -81,7 +85,7 @@
|
| endbfchar\n\
|
| 4 beginbfrange\n\
|
| <0005> <0007> <0027>\n\
|
| -<000B> <000C> <0035>\n\
|
| +<000B> <000D> <0035>\n\
|
| <00FE> <00FF> <1010>\n\
|
| <0100> <0101> <1012>\n\
|
| endbfrange\n";
|
| @@ -89,6 +93,38 @@
|
| REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult,
|
| buffer.getOffset()));
|
|
|
| + // Remove characters and ranges.
|
| + buffer.reset();
|
| +
|
| + append_cmap_sections(glyphToUnicode, &subset, &buffer, 8, 0x00FF);
|
| +
|
| + char expectedResultChop1[] =
|
| +"2 beginbfchar\n\
|
| +<0008> <002F>\n\
|
| +<0009> <0033>\n\
|
| +endbfchar\n\
|
| +2 beginbfrange\n\
|
| +<000B> <000D> <0035>\n\
|
| +<00FE> <00FF> <1010>\n\
|
| +endbfrange\n";
|
| +
|
| + REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResultChop1,
|
| + buffer.getOffset()));
|
| +
|
| + // Remove characters from range to downdrade it to one char.
|
| + buffer.reset();
|
| +
|
| + append_cmap_sections(glyphToUnicode, &subset, &buffer, 0x00D, 0x00FE);
|
| +
|
| + char expectedResultChop2[] =
|
| +"2 beginbfchar\n\
|
| +<000D> <0037>\n\
|
| +<00FE> <1010>\n\
|
| +endbfchar\n";
|
| +
|
| + REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResultChop2,
|
| + buffer.getOffset()));
|
| +
|
| glyphToUnicode.reset();
|
| glyphsInSubset.reset();
|
| SkPDFGlyphSet subset2;
|
| @@ -110,7 +146,7 @@
|
|
|
| SkDynamicMemoryWStream buffer2;
|
| subset2.set(glyphsInSubset.begin(), glyphsInSubset.count());
|
| - append_cmap_sections(glyphToUnicode, &subset2, &buffer2);
|
| + append_cmap_sections(glyphToUnicode, &subset2, &buffer2, 0, 0xffff);
|
|
|
| char expectedResult2[] =
|
| "4 beginbfchar\n\
|
|
|