81 lines
2.2 KiB
HTML
81 lines
2.2 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<style>
|
|
/* Test 1: Invalid font data */
|
|
@font-face {
|
|
font-family: myfont1;
|
|
src: url('resources/invalidfont.png') format(opentype);
|
|
}
|
|
|
|
/* Test 2: Download error */
|
|
@font-face {
|
|
font-family: myfont2;
|
|
src: url('resources/DownLoadErrorAhem.otf');
|
|
}
|
|
|
|
/* Test 3: Empty data url */
|
|
@font-face {
|
|
font-family: myfont3;
|
|
src: url(data:application/x-truetype-font,) format(truetype);
|
|
}
|
|
|
|
/* Test 4: Download error followed by existing local font */
|
|
@font-face {
|
|
font-family: myfont4;
|
|
src: url('resources/DownLoadErrorAhem.otf'), local('Courier New');
|
|
}
|
|
|
|
/* Test 5: Multiple errors */
|
|
@font-face {
|
|
font-family: myfont5;
|
|
src: url('resources/DownLoadErrorAhem.otf'), url(data:application/x-truetype-font,) format(truetype);
|
|
}
|
|
</style>
|
|
<script>
|
|
description('Test download error cases. "load" or "error" events should be fired exactly once for each @font-face rule.');
|
|
|
|
window.jsTestIsAsync = true;
|
|
|
|
var events = {};
|
|
|
|
function logEvent(e) {
|
|
var family = e.fontface.style.getPropertyValue('font-family');
|
|
if (!events[family])
|
|
events[family] = [];
|
|
events[family].push(e.type);
|
|
}
|
|
|
|
function runTests() {
|
|
document.fonts.addEventListener('loadstart', logEvent);
|
|
document.fonts.addEventListener('load', logEvent);
|
|
document.fonts.addEventListener('error', logEvent);
|
|
|
|
document.fonts.notifyWhenFontsReady(function() {
|
|
shouldBe("events['myfont1']", "['loadstart', 'error']");
|
|
shouldBe("events['myfont2']", "['loadstart', 'error']");
|
|
shouldBe("events['myfont3']", "['loadstart', 'error']");
|
|
shouldBe("events['myfont4']", "['loadstart', 'load']");
|
|
shouldBe("events['myfont5']", "['loadstart', 'error']");
|
|
finishJSTest();
|
|
});
|
|
}
|
|
|
|
if (document.fonts)
|
|
runTests();
|
|
else {
|
|
testFailed('document.fonts does not exist');
|
|
finishJSTest();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div style="font-family: myfont1">font1</div>
|
|
<div style="font-family: myfont2">font2</div>
|
|
<div style="font-family: myfont3">font3</div>
|
|
<div style="font-family: myfont4">font4</div>
|
|
<div style="font-family: myfont5">font5</div>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|