content/base/test/test_bug454326.html

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:a1fb174f1624
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=454326
5 -->
6 <head>
7 <title>Test for Bug 454326</title>
8 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
10 </head>
11 <body>
12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=454326">Mozilla Bug 454326</a>
13 <p id="display"></p>
14 <div id="content" style="display: none">
15 </div>
16
17 <div id="partial-text-selection">Hello Hello <div></div>World!</div>
18 <div id="partial-element-selection"><div id="begin">Hello Hello </div><div></div><div id="end">World!</div></div>
19 <pre id="test">
20 <script class="testbody" type="text/javascript">
21
22 /** Test for Bug 454326 **/
23
24 function reinitPartialTextSelection() {
25 var pts = document.getElementById("partial-text-selection");
26 pts.textContent = null;
27 pts.appendChild(document.createTextNode("Hello Hello "));
28 pts.appendChild(document.createElement("div"));
29 pts.appendChild(document.createTextNode("World!"));
30 }
31
32
33 function doTest() {
34 var pts = document.getElementById("partial-text-selection");
35 var ex = null;
36 try {
37 var r1 = document.createRange();
38 r1.setStart(pts.firstChild, 6);
39 r1.setEnd(pts.lastChild, 6);
40 is(r1.toString(), "Hello World!", "Wrong range!");
41 r1.surroundContents(document.createElement("div"));
42 is(r1.toString(), "Hello World!", "Wrong range!");
43 } catch(e) {
44 ex = e;
45 }
46 is(ex, null, "Unexpected exception!");
47
48 reinitPartialTextSelection();
49 ex = null;
50 try {
51 var r2 = document.createRange();
52 r2.setStart(pts.firstChild, 6);
53 r2.setEnd(pts, 2);
54 is(r2.toString(), "Hello ", "Wrong range!");
55 r2.surroundContents(document.createElement("div"));
56 is(r2.toString(), "Hello ", "Wrong range!");
57 } catch(e) {
58 ex = e;
59 }
60 is(ex, null, "Unexpected exception!");
61
62 reinitPartialTextSelection();
63 ex = null;
64 try {
65 var r3 = document.createRange();
66 r3.setStart(pts, 1);
67 r3.setEnd(pts.lastChild, 6);
68 is(r3.toString(), "World!", "Wrong range!");
69 r3.surroundContents(document.createElement("div"));
70 is(r3.toString(), "World!", "Wrong range!");
71 } catch(e) {
72 ex = e;
73 }
74 is(ex, null, "Unexpected exception!");
75
76 reinitPartialTextSelection();
77 ex = null;
78 try {
79 var r3 = document.createRange();
80 r3.setStart(pts.firstChild, 6);
81 r3.setEnd(pts.firstChild.nextSibling, 0);
82 is(r3.toString(), "Hello ", "Wrong range!");
83 r3.surroundContents(document.createElement("div"));
84 is(r3.toString(), "Hello ", "Wrong range!");
85 } catch(e) {
86 ex = e;
87 is(e.name, "InvalidStateError", "Didn't get InvalidStateError exception!");
88 is(Object.getPrototypeOf(e), DOMException.prototype, "Didn't get DOMException!");
89 is(e.code, 11, "Didn't get INVALID_STATE_ERR exception!");
90 }
91 ok(ex, "There should have been an exception!");
92
93 reinitPartialTextSelection();
94 ex = null;
95 try {
96 var r3 = document.createRange();
97 r3.setStart(pts.firstChild.nextSibling, 0);
98 r3.setEnd(pts.lastChild, 6);
99 is(r3.toString(), "World!", "Wrong range!");
100 r3.surroundContents(document.createElement("div"));
101 is(r3.toString(), "World!", "Wrong range!");
102 } catch(e) {
103 ex = e;
104 is(e.name, "InvalidStateError", "Didn't get InvalidStateError exception!");
105 is(Object.getPrototypeOf(e), DOMException.prototype, "Didn't get DOMException!");
106 is(e.code, 11, "Didn't get INVALID_STATE_ERR exception!");
107 }
108 ok(ex, "There should have been an exception!");
109
110 ex = null;
111 try {
112 var pes = document.getElementById("partial-element-selection");
113 var r4 = document.createRange();
114 r4.setStart(pes.firstChild.firstChild, 6);
115 r4.setEnd(pes.lastChild.firstChild, 6);
116 is(r4.toString(), "Hello World!", "Wrong range!");
117 r4.surroundContents(document.createElement("div"));
118 is(r4.toString(), "Hello World!", "Wrong range!");
119 } catch(e) {
120 ex = e;
121 is(e.name, "InvalidStateError", "Didn't get InvalidStateError exception!");
122 is(Object.getPrototypeOf(e), DOMException.prototype, "Didn't get DOMException!");
123 is(e.code, 11, "Didn't get INVALID_STATE_ERR exception!");
124 }
125 ok(ex, "There should have been an exception!");
126 }
127
128 SimpleTest.waitForExplicitFinish();
129 addLoadEvent(doTest);
130 addLoadEvent(SimpleTest.finish);
131 </script>
132 </pre>
133 </body>
134 </html>
135

mercurial