3 <script src="../../resources/js-test.js"></script>
5 description('Tests that FontFaceSet is correctly updated when added or removed a FontFace while loading.');
7 window.jsTestIsAsync = true;
10 face1 = new FontFace('face1', 'url(../../resources/Ahem.ttf)', {});
11 shouldBeEqualToString('face1.status', 'unloaded');
14 shouldBeEqualToString('face1.status', 'loading');
15 shouldBeEqualToString('document.fonts.status', 'loaded');
17 document.fonts.add(face1);
18 shouldBeEqualToString('document.fonts.status', 'loading');
19 document.fonts.ready().then(testStep2);
22 function testStep2() {
23 shouldBeEqualToString('face1.status', 'loaded');
24 shouldBeEqualToString('document.fonts.status', 'loaded');
26 face2 = new FontFace('face2', 'url(../../resources/Ahem.ttf)', {});
27 shouldBeEqualToString('face2.status', 'unloaded');
29 document.fonts.add(face2);
30 face2.load().then(testStep3);
31 shouldBeEqualToString('document.fonts.status', 'loading');
33 document.fonts.delete(face2);
34 shouldBeEqualToString('document.fonts.status', 'loaded');
35 shouldBeEqualToString('face2.status', 'loading');
38 function testStep3() {
39 shouldBeEqualToString('face2.status', 'loaded');
40 shouldBeEqualToString('document.fonts.status', 'loaded');
42 face3 = new FontFace('face3', 'url(../../resources/Ahem.ttf)', {});
43 shouldBeEqualToString('face3.status', 'unloaded');
45 document.fonts.add(face3);
47 shouldBeEqualToString('document.fonts.status', 'loading');
49 document.fonts.clear();
50 shouldBeEqualToString('document.fonts.status', 'loaded');
51 shouldBeEqualToString('face3.status', 'loading');
59 testFailed('document.fonts does not exist');