53 lines
1.6 KiB
HTML
53 lines
1.6 KiB
HTML
<body>
|
|
<p>Test Range.comparePoint and Range.isPointInRange Firefox extensions.</p>
|
|
<div id=log></div>
|
|
<script>
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
var hadError = false;
|
|
function logError(message)
|
|
{
|
|
document.getElementById("log").innerHTML += message + "<br>";
|
|
hadError = true;
|
|
}
|
|
|
|
function shouldThrow(expr, exceptionName)
|
|
{
|
|
try {
|
|
eval(expr);
|
|
logError('<code>' + expr + '</code> didn\'t raise an exception');
|
|
} catch (ex) {
|
|
if (ex.code != ex[exceptionName])
|
|
logError('<code>' + expr +'</code> raised a wrong exception: ' + ex.code + ' vs. ' + ex[exceptionName] + ' (' + exceptionName + ')');
|
|
}
|
|
}
|
|
|
|
function shouldBe(expr, expected)
|
|
{
|
|
try {
|
|
var actual = eval(expr);
|
|
if (actual != expected)
|
|
logError('<code>' + expr + '</code>: actual ' + actual + ", expected " + expected);
|
|
} catch (ex) {
|
|
logError('<code>' + expr +'</code> raised an exception: ' + ex);
|
|
}
|
|
}
|
|
|
|
var ra = document.createRange();
|
|
ra.selectNode(document.getElementsByTagName("p")[0]);
|
|
|
|
shouldThrow("ra.comparePoint(document.createElement('b'), 0)", "WRONG_DOCUMENT_ERR");
|
|
shouldThrow("ra.comparePoint(null, 0)", "HIERARCHY_REQUEST_ERR");
|
|
shouldBe("ra.comparePoint(document.body, 0)", -1);
|
|
shouldBe("ra.comparePoint(document.documentElement, 0)", -1);
|
|
shouldBe("ra.isPointInRange(document.createElement('b'), 0)", false);
|
|
shouldBe("ra.isPointInRange(document.documentElement, 0)", false);
|
|
shouldBe("ra.isPointInRange(document.body, 0)", false);
|
|
shouldThrow("ra.isPointInRange(null, 0)", "HIERARCHY_REQUEST_ERR");
|
|
|
|
if (!hadError)
|
|
document.getElementById("log").innerHTML = "PASS";
|
|
|
|
</script>
|