2012-03-20 12:54:38 -07:00
|
|
|
<!doctype html>
|
|
|
|
<!--
|
|
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=737565
|
|
|
|
-->
|
|
|
|
<title>Test for Bug 737565</title>
|
|
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
|
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
|
|
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=737565">Mozilla Bug 737565</a>
|
|
|
|
<script>
|
|
|
|
|
|
|
|
/** Test for Bug 737565 **/
|
|
|
|
var offsets = [-1, 0, 1, 2, 3, 65536, 1 << 31];
|
|
|
|
// This is supposed to be an unsigned long, so adding or subtracting 1 << 32
|
|
|
|
// should have no effect
|
|
|
|
var offsetOffsets = [0, -Math.pow(2, 32), Math.pow(2, 32)];
|
|
|
|
|
|
|
|
for (var i = 0; i < offsets.length; i++) {
|
|
|
|
for (var j = 0; j < offsetOffsets.length; j++) {
|
|
|
|
var offset = offsets[i] + offsetOffsets[j];
|
|
|
|
|
|
|
|
// Doctype always needs to throw
|
|
|
|
var threw = false;
|
|
|
|
try {
|
|
|
|
var range = document.createRange();
|
|
|
|
range.comparePoint(document.doctype, offset);
|
|
|
|
} catch(e) {
|
|
|
|
threw = true;
|
2012-04-26 09:42:26 -07:00
|
|
|
is(e.name, "InvalidNodeTypeError",
|
|
|
|
"comparePoint(document.doctype, " + offset
|
|
|
|
+ ") must throw InvalidNodeTypeError");
|
2012-03-20 12:54:38 -07:00
|
|
|
is(Object.getPrototypeOf(e), DOMException.prototype,
|
|
|
|
"comparePoint(document.doctype, " + offset
|
|
|
|
+ ") must throw DOMException");
|
|
|
|
is(e.code, DOMException.INVALID_NODE_TYPE_ERR,
|
|
|
|
"comparePoint(document.doctype, " + offset
|
|
|
|
+ ") must throw INVALID_NODE_TYPE_ERR");
|
|
|
|
}
|
|
|
|
ok(threw, "comparePoint(document.doctype, " + offset + ") must throw");
|
|
|
|
|
|
|
|
threw = false;
|
|
|
|
// document.documentElement has two children, head and body
|
|
|
|
var expectedThrew = offsets[i] < 0 || offsets[i] > 2;
|
|
|
|
try {
|
|
|
|
var range = document.createRange();
|
|
|
|
range.comparePoint(document.documentElement, offset);
|
|
|
|
} catch(e) {
|
|
|
|
threw = true;
|
2012-04-26 09:42:26 -07:00
|
|
|
is(e.name, "IndexSizeError",
|
|
|
|
"comparePoint(document.documentElement, " + offset
|
|
|
|
+ ") must throw IndexSizeError");
|
2012-03-20 12:54:38 -07:00
|
|
|
is(Object.getPrototypeOf(e), DOMException.prototype,
|
|
|
|
"comparePoint(document.documentElement, " + offset
|
|
|
|
+ ") must throw DOMException");
|
|
|
|
is(e.code, DOMException.INDEX_SIZE_ERR,
|
|
|
|
"comparePoint(document.documentElement, " + offset
|
|
|
|
+ ") must throw INDEX_SIZE_ERR");
|
|
|
|
}
|
|
|
|
is(threw, expectedThrew,
|
|
|
|
"comparePoint(document.documentElement, " + offset
|
|
|
|
+ ") must " + (expectedThrew ? "" : "not ") + "throw");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|