| /* |
| * Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @description Tests that unicode-range descriptor is used to selectively |
| * download fonts that are used in document. |
| */ |
| import "dart:html"; |
| import "../../testcommon.dart"; |
| import "../../../Utils/async_utils.dart"; |
| import "pwd.dart"; |
| |
| main() { |
| var style = new Element.html(''' |
| <style> |
| @font-face { |
| font-family: TestFont; |
| src: url('$root/../../resources/Ahem.ttf'); |
| unicode-range: U+00-0FF; /* Latin-1 */ |
| } |
| @font-face { |
| font-family: TestFont; |
| src: url('$root/../../resources/Ahem.otf'); |
| unicode-range: U+0400-04FF; /* Cyrillic */ |
| } |
| @font-face { |
| font-family: TestFont; |
| src: url('$root/../../resources/Ahem.woff'); |
| unicode-range: U+0600-06FF; /* Arabic */ |
| } |
| #test { |
| font-family: TestFont; |
| } |
| |
| @font-face { |
| font-family: SingleCharacterOverride; |
| src: url('$root/../../resources/Ahem.woff'); |
| unicode-range: U+E000; |
| } |
| #test2 { |
| font-family: SingleCharacterOverride; |
| } |
| </style> |
| ''', treeSanitizer: new NullTreeSanitizer()); |
| document.head.append(style); |
| |
| document.body.setInnerHtml(''' |
| <p id="test">Проверка</p> |
| <p id="test2">hello</p> |
| ''', treeSanitizer: new NullTreeSanitizer()); |
| |
| var cyrillicLoaded = false; |
| var arabicLoaded = false; |
| var iconLoaded = false; |
| |
| onloadingdone(e) { |
| for (var i = 0; i < e.fontfaces.length; i++) { |
| var range = e.fontfaces[i].unicodeRange; |
| if (range == 'U+400-4FF') |
| cyrillicLoaded = true; |
| if (range == 'U+600-6FF') |
| arabicLoaded = true; |
| if (range == 'U+E000') |
| iconLoaded = true; |
| } |
| |
| shouldBeTrue(cyrillicLoaded); |
| shouldBeFalse(arabicLoaded); |
| shouldBeFalse(iconLoaded); |
| asyncEnd(); |
| } |
| |
| runTests() { |
| asyncStart(); |
| document.fonts.addEventListener('loadingdone', onloadingdone); |
| } |
| |
| if (document.fonts != null) |
| runTests(); |
| else { |
| testFailed('document.fonts does not exist'); |
| } |
| } |