@@ -251,8 +251,6 @@ bool GvarDataMatches(hb_face_t* a, hb_face_t* b, uint32_t codepoint,
251251
252252// TODO(garretrieger): full expansion test.
253253// TODO(garretrieger): test of a woff2 encoded IFT font.
254- // TODO(garretrieger): add IFTB only test case.
255- // TODO(garretrieger): extension specific url template.
256254
257255TEST_F (IntegrationTest, TableKeyedOnly) {
258256 Encoder encoder;
@@ -791,10 +789,9 @@ TEST_F(IntegrationTest, MixedMode_DesignSpaceAugmentation) {
791789 GvarDataMatches (orig_face.get (), extended_face.get (), chunk3_cp, 7 ));
792790}
793791
794- /*
795792TEST_F (IntegrationTest, MixedMode_DesignSpaceAugmentation_DropsUnusedPatches) {
796793 Encoder encoder;
797- auto sc = InitEncoderForVfIftb (encoder);
794+ auto sc = InitEncoderForVfMixedMode (encoder);
798795 ASSERT_TRUE (sc.ok ()) << sc;
799796
800797 // target paritions: {{0, 1}, {2}, {3, 4}} + add wght axis
@@ -804,65 +801,34 @@ TEST_F(IntegrationTest, MixedMode_DesignSpaceAugmentation_DropsUnusedPatches) {
804801 sc.Update (encoder.AddExtensionSubsetOfIftbPatches ({3 , 4 }));
805802 encoder.AddOptionalDesignSpace ({{kWght , *AxisRange::Range (100 , 900 )}});
806803 encoder.AddIftbUrlTemplateOverride ({{kWght , *AxisRange::Range (100 , 900 )}},
807- "vf-0x$2$1 ");
804+ " vf-{id} " );
808805
809806 ASSERT_TRUE (sc.ok ()) << sc;
810807
811808 auto encoded = encoder.Encode ();
812809 ASSERT_TRUE (encoded.ok ()) << encoded.status ();
810+ auto encoded_face = encoded->face ();
813811
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);
845816
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" };
852820
853- state = client->Process();
854- ASSERT_TRUE(state.ok()) << state.status();
855- ASSERT_EQ(*state, IFTClient::READY);
821+ ASSERT_EQ (fetched_uris, expected_uris);
856822
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 ();
858826
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 );
865832}
866- */
867833
868834} // namespace ift
0 commit comments