File: test_bug737565.html

package info (click to toggle)
firefox 147.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,683,484 kB
  • sloc: cpp: 7,607,246; javascript: 6,533,185; ansic: 3,775,227; python: 1,415,393; xml: 634,561; asm: 438,951; java: 186,241; sh: 62,752; makefile: 18,079; objc: 13,092; perl: 12,808; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (64 lines) | stat: -rw-r--r-- 2,362 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!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;
      is(e.name, "InvalidNodeTypeError",
         "comparePoint(document.doctype, " + offset
         + ") must throw InvalidNodeTypeError");
      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;
      is(e.name, "IndexSizeError",
         "comparePoint(document.documentElement, " + offset
         + ") must throw IndexSizeError");
      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>