gecko-dev/dom/base/test/test_declare_stylesheet_obs...

95 строки
3.1 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=713564
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 713564</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<!-- Load the variable stylesheet, which changes the color of #content. -->
<link rel="stylesheet" type="text/css" href="variable_style_sheet.sjs"/>
<script type="application/javascript">
function insertLinkToVarSSAndRun(callback) {
var ss = document.createElement("link");
ss.rel = "stylesheet";
ss.type = "text/css";
ss.href = "variable_style_sheet.sjs";
document.getElementsByTagName("head")[0].appendChild(ss);
ss.addEventListener("load", callback);
}
/** Test for Bug 713564 **/
// Then you link to that sheet, remove the link from the DOM, insert a new link to
// the same url and check that there was no new access, then call our new method,
// insert _another_ <link> to the same url, and check that this time we hit the
// server.
SimpleTest.waitForExplicitFinish();
function do_test() {
var var_sheet = document.getElementsByTagName("link")[1];
var head = document.getElementsByTagName("head")[0];
var content = document.getElementById("content");
var var_sheet_url = var_sheet.href;
var previousBgColor = window.getComputedStyle(content).
getPropertyValue("background-color");
var_sheet.parentNode.removeChild(var_sheet);
insertLinkToVarSSAndRun(function() {
is(window.getComputedStyle(content).getPropertyValue("background-color"),
previousBgColor,
"Sheet should still be the same.");
// Obsolete sheet
try {
SpecialPowers.wrap(document).obsoleteSheet(var_sheet_url);
} catch (e) {
ok(false, "obsoleteSheet should not raise an error on valid URL.");
}
insertLinkToVarSSAndRun(function() {
isnot(window.getComputedStyle(content).getPropertyValue("background-color"),
previousBgColor,
"Sheet should change after obsoleted and reinserted.");
SimpleTest.finish();
});
});
// obsoleteSheet should throw with invalid input:
try {
SpecialPowers.wrap(document).obsoleteSheet("");
ok(false, "obsoleteSheet should throw with empty string.");
} catch (e) {
ok(true, "obsoleteSheet throws with empty string.");
}
try {
SpecialPowers.wrap(document).obsoleteSheet("foo");
ok(false, "obsoleteSheet should throw with invalid URL.");
} catch (e) {
ok(true, "obsoleteSheet throws with invalid URL.");
}
try {
SpecialPowers.wrap(document).obsoleteSheet("http://www.mozilla.org");
ok(true, "obsoleteSheet should not throw with valid URL.");
} catch (e) {
ok(false, "obsoleteSheet throws with valid URL.");
}
}
</script>
</head>
<body onload="do_test();">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=713564">Mozilla Bug 713564</a>
<p id="display"></p>
<div id="content">
<br>
<br>
</div>
<pre id="test">
</pre>
</body>
</html>