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\
