4 https://bugzilla.mozilla.org/show_bug.cgi?id=276037
7 <title>Test for Bug
276037</title>
8 <script type=
"text/javascript" src=
"/MochiKit/MochiKit.js"></script>
9 <script type=
"text/javascript" src=
"/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css" />
13 <a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=276037">Mozilla Bug
276037</a>
15 <div id=
"content" style=
"display: none">
19 <script class=
"testbody" type=
"text/javascript">
20 /** Test for Bug
276037 **/
21 function countElements (node, namespaceURI, tagName) {
23 for (var i =
0; i < node.childNodes.length; i++) {
24 var child = node.childNodes[i];
25 if (child.nodeType == Node.ELEMENT_NODE && child.tagName == tagName &&
26 child.namespaceURI == namespaceURI) {
29 if (child.hasChildNodes()) {
30 count += countElements(child, namespaceURI, tagName);
36 function checkElements(namespaceURI, tagName) {
37 var elementsNS = document.getElementsByTagNameNS(namespaceURI, tagName);
38 var elements = document.getElementsByTagName(tagName);
39 var elementCount = countElements(document, namespaceURI, tagName);
40 const gEBTN = 'document.getElementsByTagName(\'' + tagName + '\').length: ' + elements.length;
41 const gEBTNNS = '; document.getElementsByTagNameNS(\'' + namespaceURI + '\', \'' + tagName + '\').length: ' + elementsNS.length;
43 text1 = gEBTN + '; element count: ' + elementCount;
44 text2 = gEBTNNS + '; element count: ' + elementCount;
46 is(elements.length, elementCount, text1);
47 is(elementsNS.length, elementCount, text2);
48 is(global.gEBTN[namespaceURI][tagName].length, elementCount, text1);
49 is(global.gEBTNNS[namespaceURI][tagName].length, elementCount, text2);
54 function checkSpansAndScripts () {
55 checkElements(xhtmlNS, 'SPAN');
56 checkElements(xhtmlNS, 'SCRIPT');
59 SimpleTest.waitForExplicitFinish();
60 addLoadEvent(function() { checkSpansAndScripts() });
61 addLoadEvent(SimpleTest.finish);
63 // Init our global lists
66 global.gEBTN[xhtmlNS] = {};
68 global.gEBTNNS[xhtmlNS] = {};
70 global.gEBTN[xhtmlNS].SPAN = document.getElementsByTagName(
"span");
71 global.gEBTNNS[xhtmlNS].SPAN = document.getElementsByTagNameNS(xhtmlNS,
"span");
72 global.gEBTN[xhtmlNS].SCRIPT = document.getElementsByTagName(
"script");
73 global.gEBTNNS[xhtmlNS].SCRIPT = document.getElementsByTagNameNS(xhtmlNS,
"script");
75 <p><span>Static text in span.
</span></p>
76 <script type=
"text/javascript">
77 checkSpansAndScripts();
79 <p><span>Static text in span.
</span></p>
80 <script type=
"text/javascript">
81 checkSpansAndScripts();
83 <p><span>Static text in span.
</span></p>
84 <script type=
"text/javascript">
85 checkSpansAndScripts();
87 <p><span>Static text in span.
</span></p>
88 <script type=
"text/javascript">
89 checkSpansAndScripts();
91 <p><span>Static text in span.
</span></p>
92 <script type=
"text/javascript">
93 checkSpansAndScripts();
95 <p><span>Static text in span.
</span></p>
96 <script type=
"text/javascript">
97 checkSpansAndScripts();
99 <p><span>Static text in span.
</span></p>
100 <script type=
"text/javascript">
101 checkSpansAndScripts();