120 lines
6.3 KiB
HTML
120 lines
6.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).family", "family_name");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).style", "normal");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).weight", "normal");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).stretch", "normal");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).unicodeRange", "U+0-10ffff");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).featureSettings", "normal");
|
|
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'style': 'normal'}).style", "normal");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'style': 'inherit'}).status","error");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'style': 'italic'}).style", "italic");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'style': 'oblique'}).style", "italic");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'style': 'asdf'}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': 'normal'}).weight", "normal");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': '200'}).weight", "200");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': 'bold'}).weight", "bold");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': 'bolder'}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': 'lighter'}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'weight': 'inherit'}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'stretch': 'ultra-expanded'}).stretch", "ultra-expanded");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'unicodeRange': 'U+26'}).unicodeRange", "U+26");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'unicodeRange': 'U+0-7F'}).unicodeRange", "U+0-7f");
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {'featureSettings': '\\'titl\\''}).featureSettings", "\"titl\"");
|
|
|
|
var everything = new FontFace('family_name', 'url(\'asdf\')', {'style': 'italic', 'weight': 'bold', 'stretch': 'extra-expanded', 'unicodeRange': 'U+26', 'featureSettings': '\'titl\''});
|
|
shouldBeEqualToString("everything.style", "italic");
|
|
shouldBeEqualToString("everything.weight", "bold");
|
|
shouldBeEqualToString("everything.stretch", "extra-expanded");
|
|
shouldBeEqualToString("everything.unicodeRange", "U+26");
|
|
shouldBeEqualToString("everything.featureSettings", "\"titl\"");
|
|
|
|
everything.family = "other_family_name";
|
|
shouldBeEqualToString("everything.family", "other_family_name");
|
|
everything.style = "normal";
|
|
shouldBeEqualToString("everything.style", "normal");
|
|
everything.weight = "300";
|
|
shouldBeEqualToString("everything.weight", "300");
|
|
everything.stretch = "condensed";
|
|
shouldBeEqualToString("everything.stretch", "condensed");
|
|
everything.unicodeRange = "U+0-7F";
|
|
shouldBeEqualToString("everything.unicodeRange", "U+0-7f");
|
|
everything.featureSettings = "'smcp'";
|
|
shouldBeEqualToString("everything.featureSettings", "\"smcp\"");
|
|
|
|
shouldNotThrow("new FontFace('family_name', 'url(\\'asdf\\')', {})");
|
|
var newArrayBuffer = new ArrayBuffer(100);
|
|
shouldNotThrow("new FontFace('family_name', newArrayBuffer, {})");
|
|
shouldNotThrow("new FontFace('family_name', new DataView(newArrayBuffer), {})");
|
|
shouldNotThrow("new FontFace('family_name', new Uint8Array(newArrayBuffer), {})");
|
|
shouldBeEqualToString("new FontFace('family_name', 5, {}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', {}, {}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', new Array(), {}).status", "error");
|
|
shouldBeEqualToString("new FontFace('family_name', { toString: function() { return 5; } }, {}).status", "error");
|
|
shouldThrow("new FontFace('family_name', { toString: function() { throw \"Error\"; } }, {})");
|
|
shouldBeEqualToString("new FontFace('family_name', { toString: function() { return \"url(\'asdf\')\"; } }, {}).family", "family_name");
|
|
|
|
shouldBeEqualToString("new FontFace('family_name', 'url(\\'asdf\\')', {}).status", "unloaded");
|
|
|
|
var promiseEqualityCheck = new FontFace('family_name', 'url(\'asdf\')', {});
|
|
var promise1 = promiseEqualityCheck.loaded;
|
|
var promise2 = promiseEqualityCheck.loaded;
|
|
var promise3 = promiseEqualityCheck.load();
|
|
var promise4 = promiseEqualityCheck.loaded;
|
|
var promise5 = promiseEqualityCheck.load();
|
|
shouldBe("promise1", "promise2");
|
|
shouldBe("promise1", "promise3");
|
|
shouldBe("promise1", "promise4");
|
|
shouldBe("promise1", "promise5");
|
|
shouldBeEqualToString("promiseEqualityCheck.status", "loading");
|
|
|
|
var oldFontFace;
|
|
var newFontFace;
|
|
self.jsTestIsAsync = true;
|
|
promiseEqualityCheck.loaded.then(function(x) {
|
|
testFailed("Bogus URL should not load");
|
|
finishJSTest();
|
|
}, function(y) {
|
|
oldFontFace = y;
|
|
shouldBe("oldFontFace.code", "oldFontFace.NETWORK_ERR");
|
|
shouldBeEqualToString("promiseEqualityCheck.status", "error");
|
|
oldFontFace = new FontFace('family_name', 'url(\'../../resources/Ahem.ttf\')', {});
|
|
return oldFontFace.load();
|
|
}).then(function(x) {
|
|
newFontFace = x;
|
|
shouldBe("newFontFace", "oldFontFace");
|
|
shouldBeEqualToString("newFontFace.status", "loaded");
|
|
// Test behavior when the font is in the cache.
|
|
oldFontFace = new FontFace('family_name', 'url(\'../../resources/Ahem.ttf\')', {});
|
|
return oldFontFace.load();
|
|
}, function(y) {
|
|
testFailed("Legit URL should load");
|
|
finishJSTest();
|
|
}).then(function(x) {
|
|
newFontFace = x;
|
|
shouldBe("newFontFace", "oldFontFace");
|
|
shouldBeEqualToString("newFontFace.status", "loaded");
|
|
return (new FontFace('family_name2', 'url(\'../../resources/Ahem.ttf\') format(\'garbage\')', {})).load()
|
|
}, function(y) {
|
|
testFailed("Legit URL should load");
|
|
finishJSTest();
|
|
}).then(function() {
|
|
testFailed("Unknown format should not load successfully.");
|
|
finishJSTest();
|
|
}, function(y) {
|
|
oldFontFace = y;
|
|
shouldBe("oldFontFace.code", "oldFontFace.NETWORK_ERR");
|
|
finishJSTest();
|
|
});
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|