84 lines
2.6 KiB
HTML
84 lines
2.6 KiB
HTML
<html>
|
|
<head>
|
|
<script>
|
|
function print(message, color)
|
|
{
|
|
var paragraph = document.createElement("div");
|
|
paragraph.appendChild(document.createTextNode(message));
|
|
paragraph.style.fontFamily = "monospace";
|
|
if (color)
|
|
paragraph.style.color = color;
|
|
document.getElementById("console").appendChild(paragraph);
|
|
}
|
|
|
|
function shouldBe(a, b)
|
|
{
|
|
var evalA;
|
|
try {
|
|
evalA = eval(a);
|
|
} catch(e) {
|
|
evalA = e;
|
|
}
|
|
|
|
if (evalA == b)
|
|
print("PASS: " + a + " should be " + b + " and is.", "green");
|
|
else
|
|
print("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".", "red");
|
|
}
|
|
|
|
function test()
|
|
{
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
shouldBe("Object.prototype.isPrototypeOf(window.DOMException)", true);
|
|
shouldBe("Object.prototype.isPrototypeOf(window.Option)", true);
|
|
|
|
div = document.createElement('div');
|
|
div.style.color = "rgb(0, 0, 0)";
|
|
cssValue = div.style.getPropertyCSSValue('color'); // actually a CSSPrimitiveValue
|
|
shouldBe("Object.prototype.isPrototypeOf(cssValue)", true);
|
|
|
|
rgbColor = div.style.getPropertyCSSValue('color').getRGBColorValue();
|
|
shouldBe("Object.prototype.isPrototypeOf(rgbColor)", true);
|
|
|
|
div.style.clip = "rect(0, 0, 0, 0)";
|
|
rect = div.style.getPropertyCSSValue('clip').getRectValue();
|
|
shouldBe("Object.prototype.isPrototypeOf(rect)", true);
|
|
|
|
styleElement = document.createElement('style');
|
|
styleElement.appendChild(document.createTextNode("* {}"));
|
|
headElement = document.getElementsByTagName('head')[0];
|
|
headElement.appendChild(styleElement);
|
|
styleSheetList = document.styleSheets;
|
|
shouldBe("Object.prototype.isPrototypeOf(styleSheetList)", true);
|
|
|
|
styleSheet = styleSheetList[0];
|
|
shouldBe("Object.prototype.isPrototypeOf(styleSheet)", true);
|
|
|
|
cssRule = styleSheet.cssRules[0];
|
|
shouldBe("Object.prototype.isPrototypeOf(cssRule)", true);
|
|
|
|
nodeList = document.getElementsByTagName('html');
|
|
shouldBe("Object.prototype.isPrototypeOf(nodeList)", true);
|
|
|
|
var form = document.createElement('form');
|
|
form.name = 'myForm';
|
|
document.body.appendChild(form);
|
|
document.body.appendChild(form.cloneNode(true));
|
|
namedNodesCollection = document.forms.myForm;
|
|
shouldBe("Object.prototype.isPrototypeOf(namedNodesCollection)", true);
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="test();">
|
|
<p>This test checks some DOM object prototypes that WebKit has gotten wrong in the past.
|
|
If the test passes, you'll see a series of 'PASS' messages below.</p>
|
|
<hr>
|
|
|
|
<div id='console'></div>
|
|
|
|
</body>
|
|
</html>
|