aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/PDFPrimitivesTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/PDFPrimitivesTest.cpp')
-rw-r--r--tests/PDFPrimitivesTest.cpp57
1 files changed, 36 insertions, 21 deletions
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index f16c6694e8..372b63afdc 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -496,29 +496,44 @@ DEF_TEST(SkPDF_Primitives_Color, reporter) {
}
DEF_TEST(SkPDF_Clusterator, reporter) {
- const uint32_t clusters[11] = { 3, 2, 2, 1, 0, 4, 4, 7, 6, 6, 5 };
- const SkGlyphID glyphs[11] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
- const char text[] = "abcdefgh";
SkPaint paint;
paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
- SkClusterator clusterator(glyphs, sizeof(glyphs), paint, clusters, strlen(text), text);
- SkClusterator::Cluster expectations[] = {
- {&text[3], 1, 0, 1},
- {&text[2], 1, 1, 2},
- {&text[1], 1, 3, 1},
- {&text[0], 1, 4, 1},
- {&text[4], 1, 5, 2},
- {&text[7], 1, 7, 1},
- {&text[6], 1, 8, 2},
- {&text[5], 1, 10, 1},
- {nullptr, 0, 0, 0},
- };
- for (const auto& expectation : expectations) {
- auto c = clusterator.next();
- REPORTER_ASSERT(reporter, c.fUtf8Text == expectation.fUtf8Text);
- REPORTER_ASSERT(reporter, c.fTextByteLength == expectation.fTextByteLength);
- REPORTER_ASSERT(reporter, c.fGlyphIndex == expectation.fGlyphIndex);
- REPORTER_ASSERT(reporter, c.fGlyphCount == expectation.fGlyphCount);
+ {
+ const uint32_t clusters[11] = { 3, 2, 2, 1, 0, 4, 4, 7, 6, 6, 5 };
+ const SkGlyphID glyphs[11] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
+ const char text[] = "abcdefgh";
+ SkClusterator clusterator(glyphs, sizeof(glyphs), paint, clusters, strlen(text), text);
+ SkClusterator::Cluster expectations[] = {
+ {&text[3], 1, 0, 1},
+ {&text[2], 1, 1, 2},
+ {&text[1], 1, 3, 1},
+ {&text[0], 1, 4, 1},
+ {&text[4], 1, 5, 2},
+ {&text[7], 1, 7, 1},
+ {&text[6], 1, 8, 2},
+ {&text[5], 1, 10, 1},
+ {nullptr, 0, 0, 0},
+ };
+ for (const auto& expectation : expectations) {
+ REPORTER_ASSERT(reporter, clusterator.next() == expectation);
+ }
+ }
+ {
+ const uint32_t clusters[5] = { 0, 1, 4, 5, 6 };
+ const SkGlyphID glyphs[5] = { 43, 167, 79, 79, 82, };
+ const char text[] = "Ha\xCC\x8A" "llo";
+ SkClusterator clusterator(glyphs, sizeof(glyphs), paint, clusters, strlen(text), text);
+ SkClusterator::Cluster expectations[] = {
+ {&text[0], 1, 0, 1},
+ {&text[1], 3, 1, 1},
+ {&text[4], 1, 2, 1},
+ {&text[5], 1, 3, 1},
+ {&text[6], 1, 4, 1},
+ {nullptr, 0, 0, 0},
+ };
+ for (const auto& expectation : expectations) {
+ REPORTER_ASSERT(reporter, clusterator.next() == expectation);
+ }
}
}