[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
diff --git a/tests/ToUnicode.cpp b/tests/ToUnicode.cpp
index 69ec614..d518432 100644
--- a/tests/ToUnicode.cpp
+++ b/tests/ToUnicode.cpp
@@ -28,6 +28,7 @@
 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 @@
 
     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 @@
     // 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 @@
     // 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 @@
     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 @@
 
     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\