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