| OLD | NEW |
| 1 library fontface_loaded_test; | 1 library fontface_loaded_test; |
| 2 | 2 |
| 3 import 'package:unittest/unittest.dart'; | 3 import 'package:unittest/unittest.dart'; |
| 4 import 'package:unittest/html_config.dart'; | 4 import 'package:unittest/html_config.dart'; |
| 5 | 5 |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'dart:isolate'; | 7 import 'dart:isolate'; |
| 8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 | 9 |
| 10 class NullTreeSanitizer implements NodeTreeSanitizer { | 10 class NullTreeSanitizer implements NodeTreeSanitizer { |
| 11 void sanitizeTree(Node node) {} | 11 void sanitizeTree(Node node) {} |
| 12 } | 12 } |
| 13 | 13 |
| 14 main() { | 14 main() { |
| 15 useHtmlConfiguration(); | 15 useHtmlConfiguration(); |
| 16 | 16 |
| 17 var style = new Element.html( | 17 var style = new Element.html(''' |
| 18 ''' | |
| 19 <style> | 18 <style> |
| 20 @font-face { | 19 @font-face { |
| 21 font-family: 'Ahem'; | 20 font-family: 'Ahem'; |
| 22 src: url(/root_dart/tests/html/Ahem.ttf); | 21 src: url(../../resources/Ahem.ttf); |
| 23 font-style: italic; | 22 font-style: italic; |
| 24 font-weight: 300; | 23 font-weight: 300; |
| 25 unicode-range: U+0-3FF; | 24 unicode-range: U+0-3FF; |
| 26 font-variant: small-caps; | 25 font-variant: small-caps; |
| 27 -webkit-font-feature-settings: "dlig" 1; | 26 -webkit-font-feature-settings: "dlig" 1; |
| 28 /* font-stretch property is not supported */ | 27 /* font-stretch property is not supported */ |
| 29 } | 28 } |
| 30 </style> | 29 </style> |
| 31 ''', | 30 ''', treeSanitizer: new NullTreeSanitizer()); |
| 32 treeSanitizer: new NullTreeSanitizer()); | |
| 33 document.head.append(style); | 31 document.head.append(style); |
| 34 | 32 |
| 33 |
| 35 test('document fonts - temporary', () { | 34 test('document fonts - temporary', () { |
| 36 var atLeastOneFont = false; | 35 var atLeastOneFont = false; |
| 37 var loaded = []; | |
| 38 document.fonts.forEach((FontFace fontFace, _, __) { | 36 document.fonts.forEach((FontFace fontFace, _, __) { |
| 39 atLeastOneFont = true; | 37 atLeastOneFont = true; |
| 40 Future f1 = fontFace.loaded; | 38 Future f1 = fontFace.loaded; |
| 41 Future f2 = fontFace.loaded; | 39 Future f2 = fontFace.loaded; |
| 42 loaded.add(fontFace.load()); | 40 expect(f1, equals(f2)); // Repeated calls should answer the same Future. |
| 43 loaded.add(f1); | 41 |
| 44 loaded.add(f2); | 42 expect(fontFace.load(), throws); |
| 45 }); | 43 }); |
| 46 expect(atLeastOneFont, isTrue); | 44 expect(atLeastOneFont, isTrue); |
| 47 return Future.wait(loaded).then(expectAsync((_) { | |
| 48 document.fonts.forEach((fontFace, _, __) { | |
| 49 expect(fontFace.status, 'loaded'); | |
| 50 }); | |
| 51 })); | |
| 52 }); | 45 }); |
| 53 } | 46 } |
| OLD | NEW |