Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / css / fontfaceset-add-remove-while-loading.html
1 <html>
2 <head>
3 <script src="../../resources/js-test.js"></script>
4 <script>
5 description('Tests that FontFaceSet is correctly updated when added or removed a FontFace while loading.');
6
7 window.jsTestIsAsync = true;
8
9 function testStep1() {
10     face1 = new FontFace('face1', 'url(../../resources/Ahem.ttf)', {});
11     shouldBeEqualToString('face1.status', 'unloaded');
12
13     face1.load();
14     shouldBeEqualToString('face1.status', 'loading');
15     shouldBeEqualToString('document.fonts.status', 'loaded');
16
17     document.fonts.add(face1);
18     shouldBeEqualToString('document.fonts.status', 'loading');
19     document.fonts.ready().then(testStep2);
20 }
21
22 function testStep2() {
23     shouldBeEqualToString('face1.status', 'loaded');
24     shouldBeEqualToString('document.fonts.status', 'loaded');
25
26     face2 = new FontFace('face2', 'url(../../resources/Ahem.ttf)', {});
27     shouldBeEqualToString('face2.status', 'unloaded');
28
29     document.fonts.add(face2);
30     face2.load();
31     shouldBeEqualToString('document.fonts.status', 'loading');
32
33     document.fonts.delete(face2);
34     shouldBeEqualToString('document.fonts.status', 'loaded');
35     shouldBeEqualToString('face2.status', 'loading');
36
37     face2.ready().then(testStep3);
38 }
39
40 function testStep3() {
41     shouldBeEqualToString('face2.status', 'loaded');
42     shouldBeEqualToString('document.fonts.status', 'loaded');
43
44     face3 = new FontFace('face3', 'url(../../resources/Ahem.ttf)', {});
45     shouldBeEqualToString('face3.status', 'unloaded');
46
47     document.fonts.add(face3);
48     face3.load();
49     shouldBeEqualToString('document.fonts.status', 'loading');
50
51     document.fonts.clear();
52     shouldBeEqualToString('document.fonts.status', 'loaded');
53     shouldBeEqualToString('face3.status', 'loading');
54
55     finishJSTest();
56 }
57
58 if (document.fonts)
59     testStep1();
60 else
61     testFailed('document.fonts does not exist');
62
63 </script>
64 </head>
65 <body>
66 </body>
67 </html>