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);
31 shouldBeEqualToString('document.fonts.status', 'loading');
33 document.fonts.delete(face2);
34 shouldBeEqualToString('document.fonts.status', 'loaded');
35 shouldBeEqualToString('face2.status', 'loading');
37 face2.ready().then(testStep3);
40 function testStep3() {
41 shouldBeEqualToString('face2.status', 'loaded');
42 shouldBeEqualToString('document.fonts.status', 'loaded');
44 face3 = new FontFace('face3', 'url(../../resources/Ahem.ttf)', {});
45 shouldBeEqualToString('face3.status', 'unloaded');
47 document.fonts.add(face3);
49 shouldBeEqualToString('document.fonts.status', 'loading');
51 document.fonts.clear();
52 shouldBeEqualToString('document.fonts.status', 'loaded');
53 shouldBeEqualToString('face3.status', 'loading');
61 testFailed('document.fonts does not exist');