@@ -251,8 +251,6 @@ bool GvarDataMatches(hb_face_t* a, hb_face_t* b, uint32_t codepoint,
251
251
252
252
// TODO(garretrieger): full expansion test.
253
253
// TODO(garretrieger): test of a woff2 encoded IFT font.
254
- // TODO(garretrieger): add IFTB only test case.
255
- // TODO(garretrieger): extension specific url template.
256
254
257
255
TEST_F (IntegrationTest, TableKeyedOnly) {
258
256
Encoder encoder;
@@ -791,10 +789,9 @@ TEST_F(IntegrationTest, MixedMode_DesignSpaceAugmentation) {
791
789
GvarDataMatches (orig_face.get (), extended_face.get (), chunk3_cp, 7 ));
792
790
}
793
791
794
- /*
795
792
TEST_F (IntegrationTest, MixedMode_DesignSpaceAugmentation_DropsUnusedPatches) {
796
793
Encoder encoder;
797
- auto sc = InitEncoderForVfIftb (encoder);
794
+ auto sc = InitEncoderForVfMixedMode (encoder);
798
795
ASSERT_TRUE (sc.ok ()) << sc;
799
796
800
797
// target paritions: {{0, 1}, {2}, {3, 4}} + add wght axis
@@ -804,65 +801,34 @@ TEST_F(IntegrationTest, MixedMode_DesignSpaceAugmentation_DropsUnusedPatches) {
804
801
sc.Update (encoder.AddExtensionSubsetOfIftbPatches ({3 , 4 }));
805
802
encoder.AddOptionalDesignSpace ({{kWght , *AxisRange::Range (100 , 900 )}});
806
803
encoder.AddIftbUrlTemplateOverride ({{kWght , *AxisRange::Range (100 , 900 )}},
807
- "vf-0x$2$1 ");
804
+ " vf-{id} " );
808
805
809
806
ASSERT_TRUE (sc.ok ()) << sc;
810
807
811
808
auto encoded = encoder.Encode ();
812
809
ASSERT_TRUE (encoded.ok ()) << encoded.status ();
810
+ auto encoded_face = encoded->face ();
813
811
814
- auto client = IFTClient::NewClient(std::move(*encoded));
815
- ASSERT_TRUE(client.ok()) << client.status();
816
-
817
- // Phase 1
818
- client->AddDesiredCodepoints({chunk3_cp, chunk4_cp});
819
- sc = client->AddDesiredDesignSpace(kWght, 100, 900);
820
- ASSERT_TRUE(sc.ok()) << sc;
821
- auto state = client->Process();
822
- ASSERT_TRUE(state.ok()) << state.status();
823
- ASSERT_EQ(*state, IFTClient::NEEDS_PATCHES);
824
-
825
- auto patches = client->PatchesNeeded();
826
- flat_hash_set<std::string> expected_patches = {"0x03", "0x04", "0x06"};
827
- ASSERT_EQ(patches, expected_patches);
828
- sc = AddPatches(*client, encoder);
829
- ASSERT_TRUE(sc.ok()) << sc;
830
-
831
- state = client->Process();
832
- ASSERT_TRUE(state.ok()) << state.status();
833
- ASSERT_EQ(*state, IFTClient::NEEDS_PATCHES);
834
-
835
- // Phase 2
836
- patches = client->PatchesNeeded();
837
- expected_patches = {"0x0d"};
838
- ASSERT_EQ(patches, expected_patches);
839
- sc = AddPatches(*client, encoder);
840
- ASSERT_TRUE(sc.ok()) << sc;
841
-
842
- state = client->Process();
843
- ASSERT_TRUE(state.ok()) << state.status();
844
- ASSERT_EQ(*state, IFTClient::NEEDS_PATCHES);
812
+ btree_set<std::string> fetched_uris;
813
+ auto extended = ExtendWithDesignSpace (
814
+ encoder, *encoded, {chunk3_cp, chunk4_cp}, {},
815
+ {{kWght , *AxisRange::Range (100 , 900 )}}, &fetched_uris);
845
816
846
- // Phase 3
847
- patches = client->PatchesNeeded();
848
- expected_patches = {"vf-0x03", "vf-0x04"};
849
- ASSERT_EQ(patches, expected_patches);
850
- sc = AddPatches(*client, encoder);
851
- ASSERT_TRUE(sc.ok()) << sc;
817
+ // correspond to ids 3, 4, 6, d
818
+ btree_set<std::string> expected_uris{" 0C" , " 0G" , " 0O" ,
819
+ " 1K" , " vf-0C" , " vf-0G" };
852
820
853
- state = client->Process();
854
- ASSERT_TRUE(state.ok()) << state.status();
855
- ASSERT_EQ(*state, IFTClient::READY);
821
+ ASSERT_EQ (fetched_uris, expected_uris);
856
822
857
- // Checks
823
+ // TODO check the patches that were used by looking at ift_extend output
824
+ ASSERT_TRUE (extended.ok ()) << extended.status ();
825
+ auto extended_face = extended->face ();
858
826
859
- auto face = client->GetFontData().face();
860
- ASSERT_GT(FontHelper::GvarData(face.get(), chunk0_gid)->size(), 0);
861
- ASSERT_GT(FontHelper::GvarData(face.get(), chunk1_gid)->size(), 0);
862
- ASSERT_EQ(FontHelper::GvarData(face.get(), chunk2_gid)->size(), 0);
863
- ASSERT_GT(FontHelper::GvarData(face.get(), chunk3_gid)->size(), 0);
864
- ASSERT_GT(FontHelper::GvarData(face.get(), chunk4_gid)->size(), 0);
827
+ ASSERT_GT (FontHelper::GvarData (extended_face.get (), chunk0_gid)->size (), 0 );
828
+ ASSERT_GT (FontHelper::GvarData (extended_face.get (), chunk1_gid)->size (), 0 );
829
+ ASSERT_EQ (FontHelper::GvarData (extended_face.get (), chunk2_gid)->size (), 0 );
830
+ ASSERT_GT (FontHelper::GvarData (extended_face.get (), chunk3_gid)->size (), 0 );
831
+ ASSERT_GT (FontHelper::GvarData (extended_face.get (), chunk4_gid)->size (), 0 );
865
832
}
866
- */
867
833
868
834
} // namespace ift
0 commit comments