blob: 06e4b3f50fb15833d1dcd0d19d8192640d884757 [file] [log] [blame]
description("Test that HTMLLinkElement's disabled attribute is properly cached while set when loading a stylesheet.");
if (window.testRunner)
testRunner.waitUntilDone();
window.jsTestIsAsync = true;
mainSheetLink = document.getElementsByTagName("link")[0];
alternateSheetLink = document.getElementsByTagName("link")[1];
mainSheetLink.disabled = true;
alternateSheetLink.disabled = false;
debug("Testing value of 'disabled' prior to load just after setting them");
shouldBeNonNull("mainSheetLink.sheet");
shouldBeNull("alternateSheetLink.sheet");
shouldBeTrue("mainSheetLink.disabled", true);
shouldBeFalse("alternateSheetLink.disabled");
debug("Testing the values when the alternate sheet is loaded (as this is the only one that has sheet() === null)");
function onSheetLoaded(f, elem, maxtime) {
if (elem.sheet || maxtime <= 0)
f();
else
setTimeout(function () { onSheetLoaded(f, elem, maxtime - 25);}, 25);
}
function testWhenLoaded() {
// Those next 2 lines are a sanity check.
// If the second check fails, it is likely that the test timed out and thus
// you can discard the rest of results as it is not testing what we want
// (namely that the disabled value is passed to the final sheet).
shouldBeNonNull("mainSheetLink.sheet");
shouldBeNonNull("alternateSheetLink.sheet");
shouldBeTrue("mainSheetLink.disabled");
shouldBeFalse("alternateSheetLink.disabled");
finishJSTest();
}
onSheetLoaded(testWhenLoaded, alternateSheetLink, 500);
var successfullyParsed = true;