@@ -618,6 +618,48 @@ TEST_F(FontHelperTest, GlyfData_ShortOverflowSynthetic) {
618618 ASSERT_EQ (*data, expected);
619619}
620620
621+ TEST_F (FontHelperTest, TotalGlyphData_GlyfGvar) {
622+ auto size = FontHelper::TotalGlyphData (roboto_vf.get (), GlyphSet {78 , 83 , 95 });
623+ ASSERT_TRUE (size.ok ()) << size.status ();
624+
625+ uint32_t expected =
626+ FontHelper::GlyfData (roboto_vf.get (), 78 )->size () +
627+ FontHelper::GlyfData (roboto_vf.get (), 83 )->size () +
628+ FontHelper::GlyfData (roboto_vf.get (), 95 )->size () +
629+ FontHelper::GvarData (roboto_vf.get (), 78 )->size () +
630+ FontHelper::GvarData (roboto_vf.get (), 83 )->size () +
631+ FontHelper::GvarData (roboto_vf.get (), 95 )->size ();
632+
633+ ASSERT_GT (*size, 0 );
634+ ASSERT_EQ (*size, expected);
635+ }
636+
637+ TEST_F (FontHelperTest, TotalGlyphData_Cff) {
638+ auto size = FontHelper::TotalGlyphData (noto_sans_jp_otf.get (), GlyphSet {78 , 83 , 95 });
639+ ASSERT_TRUE (size.ok ()) << size.status ();
640+
641+ uint32_t expected =
642+ FontHelper::CffData (noto_sans_jp_otf.get (), 78 ).size () +
643+ FontHelper::CffData (noto_sans_jp_otf.get (), 83 ).size () +
644+ FontHelper::CffData (noto_sans_jp_otf.get (), 95 ).size ();
645+
646+ ASSERT_GT (*size, 0 );
647+ ASSERT_EQ (*size, expected);
648+ }
649+
650+ TEST_F (FontHelperTest, TotalGlyphData_Cff2) {
651+ auto size = FontHelper::TotalGlyphData (noto_sans_vf_jp_otf.get (), GlyphSet {34 , 35 , 46 });
652+ ASSERT_TRUE (size.ok ()) << size.status ();
653+
654+ uint32_t expected =
655+ FontHelper::Cff2Data (noto_sans_vf_jp_otf.get (), 34 ).size () +
656+ FontHelper::Cff2Data (noto_sans_vf_jp_otf.get (), 35 ).size () +
657+ FontHelper::Cff2Data (noto_sans_vf_jp_otf.get (), 46 ).size ();
658+
659+ ASSERT_GT (*size, 0 );
660+ ASSERT_EQ (*size, expected);
661+ }
662+
621663// TODO test BuildFont...
622664
623665} // namespace common
0 commit comments