Tools: [EFL] [GTK] Use Latin Modern Math in the jhbuild environments.
[WebKit-https.git] / LayoutTests / mathml / roots-removeChild.html
1 <!doctype html>
2 <html>
3   <head>
4     <title>MathML script elements: removing children</title>
5
6     <!-- This test verifies removal of children from an <mroot>/<msqrt> element using DOM operations. It should not crash and should render the same as the equivalent static page. -->
7
8     <style type="text/css">
9       div { border: 1px solid; margin: .5em; }
10     </style>
11     <script type="text/javascript">
12       var mathmlNS = "http://www.w3.org/1998/Math/MathML";
13
14       function newMn(n)
15       {
16         var t = document.createTextNode(n.toString());
17         var mn = document.createElementNS(mathmlNS, "mn");
18         mn.appendChild(t);
19         return mn;
20       }
21
22       function test1()
23       {
24         var msqrt = document.getElementById("test1").getElementsByTagNameNS(mathmlNS, "msqrt");
25         var mroot = document.getElementById("test1").getElementsByTagNameNS(mathmlNS, "mroot");
26         var i;
27         for (i = 0; i < msqrt.length; i++)
28           msqrt[i].removeChild(msqrt[i].firstChild);
29         for (i = 0; i < mroot.length; i++)
30           mroot[i].removeChild(mroot[i].firstChild);
31       }
32
33       function test2()
34       {
35         var msqrt = document.getElementById("test2").getElementsByTagNameNS(mathmlNS, "msqrt");
36         var mroot = document.getElementById("test2").getElementsByTagNameNS(mathmlNS, "mroot");
37         var i;
38         for (i = 0; i < msqrt.length; i++)
39           msqrt[i].removeChild(msqrt[i].lastChild);
40         for (i = 0; i < mroot.length; i++)
41           mroot[i].removeChild(mroot[i].lastChild);
42       }
43
44       function test3()
45       {
46         var msqrt = document.getElementById("test3").getElementsByTagNameNS(mathmlNS, "msqrt");
47         var mroot = document.getElementById("test3").getElementsByTagNameNS(mathmlNS, "mroot");
48         var i;
49         for (i = 0; i < msqrt.length; i++)
50           msqrt[i].removeChild(msqrt[i].firstChild.nextSibling);
51         for (i = 0; i < mroot.length; i++)
52           mroot[i].removeChild(mroot[i].firstChild.nextSibling);
53       }
54
55       function test4()
56       {
57         var msqrt = document.getElementById("test4").getElementsByTagNameNS(mathmlNS, "msqrt");
58         var mroot = document.getElementById("test4").getElementsByTagNameNS(mathmlNS, "mroot");
59         var i;
60         for (i = 0; i < msqrt.length; i++)
61           msqrt[i].removeChild(msqrt[i].lastChild.previousSibling);
62         for (i = 0; i < mroot.length; i++)
63           mroot[i].removeChild(mroot[i].lastChild.previousSibling);
64       }
65
66       function run()
67       {
68         test1();
69         test2();
70         test3();
71         test4();
72       }
73     </script>
74   </head>
75
76   <body onload="run()">
77
78     <!-- Test 1: remove an element at the first position in an <mroot>/<msqrt> element with various number of children. -->
79     <div id="test1">Test 1:
80       <math><msqrt><mi>X</mi></msqrt></math>
81       <math><msqrt><mi>X</mi><mn>1</mn></msqrt></math>
82       <math><msqrt><mi>X</mi><mn>1</mn><mn>2</mn></msqrt></math>
83       <math><msqrt><mi>X</mi><mn>1</mn><mn>2</mn><mn>3</mn></msqrt></math>
84       <math><mroot><mi>X</mi></mroot></math>
85       <math><mroot><mi>X</mi><mn>1</mn></mroot></math>
86       <math><mroot><mi>X</mi><mn>1</mn><mn>2</mn></mroot></math>
87       <math><mroot><mi>X</mi><mn>1</mn><mn>2</mn><mn>3</mn></mroot></math>
88     </div>
89
90     <!-- Test 2: remove an <mn> element at the last position in an <mroot>/<msqrt> element with various number of children. -->
91     <div id="test2">Test 2:
92       <math><msqrt><mn>1</mn><mi>X</mi></msqrt></math>
93       <math><msqrt><mn>1</mn><mn>2</mn><mi>X</mi></msqrt></math>
94       <math><msqrt><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi></msqrt></math>
95       <math><mroot><mn>1</mn><mi>X</mi></mroot></math>
96       <math><mroot><mn>1</mn><mn>2</mn><mi>X</mi></mroot></math>
97       <math><mroot><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi></mroot></math>
98     </div>
99
100     <!-- Test 3: remove an element at the second position in an <mroot>/<msqrt> element with various number of children. -->
101     <div id="test3">Test 3:
102       <math><msqrt><mn>1</mn><mi>X</mi></msqrt></math>
103       <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn></msqrt></math>
104       <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn></msqrt></math>
105       <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn><mn>4</mn></msqrt></math>
106       <math><mroot><mn>1</mn><mi>X</mi></mroot></math>
107       <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn></mroot></math>
108       <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn></mroot></math>
109       <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn><mn>4</mn></mroot></math>
110     </div>
111
112     <!-- Test 4: remove an element at the penultimate position in an <mroot>/<msqrt> element with various number of children. -->
113     <div id="test4">Test 4:
114       <math><msqrt><mi>X</mi><mn>1</mn></msqrt></math>
115       <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn></msqrt></math>
116       <math><msqrt><mn>1</mn><mn>2</mn><mi>X</mi><mn>3</mn></msqrt></math>
117       <math><msqrt><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi><mn>4</mn></msqrt></math>
118       <math><mroot><mi>X</mi><mn>1</mn></mroot></math>
119       <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn></mroot></math>
120       <math><mroot><mn>1</mn><mn>2</mn><mi>X</mi><mn>3</mn></mroot></math>
121       <math><mroot><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi><mn>4</mn></mroot></math>
122     </div>
123
124   </body>
125 </html>