test_bug737565.html (2362B)
1 <!doctype html> 2 <!-- 3 https://bugzilla.mozilla.org/show_bug.cgi?id=737565 4 --> 5 <title>Test for Bug 737565</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 8 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=737565">Mozilla Bug 737565</a> 9 <script> 10 11 /** Test for Bug 737565 */ 12 var offsets = [-1, 0, 1, 2, 3, 65536, 1 << 31]; 13 // This is supposed to be an unsigned long, so adding or subtracting 1 << 32 14 // should have no effect 15 var offsetOffsets = [0, -Math.pow(2, 32), Math.pow(2, 32)]; 16 17 for (var i = 0; i < offsets.length; i++) { 18 for (var j = 0; j < offsetOffsets.length; j++) { 19 var offset = offsets[i] + offsetOffsets[j]; 20 21 // Doctype always needs to throw 22 var threw = false; 23 try { 24 var range = document.createRange(); 25 range.comparePoint(document.doctype, offset); 26 } catch(e) { 27 threw = true; 28 is(e.name, "InvalidNodeTypeError", 29 "comparePoint(document.doctype, " + offset 30 + ") must throw InvalidNodeTypeError"); 31 is(Object.getPrototypeOf(e), DOMException.prototype, 32 "comparePoint(document.doctype, " + offset 33 + ") must throw DOMException"); 34 is(e.code, DOMException.INVALID_NODE_TYPE_ERR, 35 "comparePoint(document.doctype, " + offset 36 + ") must throw INVALID_NODE_TYPE_ERR"); 37 } 38 ok(threw, "comparePoint(document.doctype, " + offset + ") must throw"); 39 40 threw = false; 41 // document.documentElement has two children, head and body 42 var expectedThrew = offsets[i] < 0 || offsets[i] > 2; 43 try { 44 var range = document.createRange(); 45 range.comparePoint(document.documentElement, offset); 46 } catch(e) { 47 threw = true; 48 is(e.name, "IndexSizeError", 49 "comparePoint(document.documentElement, " + offset 50 + ") must throw IndexSizeError"); 51 is(Object.getPrototypeOf(e), DOMException.prototype, 52 "comparePoint(document.documentElement, " + offset 53 + ") must throw DOMException"); 54 is(e.code, DOMException.INDEX_SIZE_ERR, 55 "comparePoint(document.documentElement, " + offset 56 + ") must throw INDEX_SIZE_ERR"); 57 } 58 is(threw, expectedThrew, 59 "comparePoint(document.documentElement, " + offset 60 + ") must " + (expectedThrew ? "" : "not ") + "throw"); 61 } 62 } 63 64 </script>