зеркало из https://github.com/mozilla/gecko-dev.git
Bug 357450. Unit tests for getElementsByClassName. r=jst, sr=peterv
This commit is contained in:
Родитель
92d48575ec
Коммит
c5be689b2c
|
@ -46,6 +46,11 @@ include $(topsrcdir)/config/rules.mk
|
|||
|
||||
_TEST_FILES = test_bug5141.html \
|
||||
test_bug51034.html \
|
||||
test_bug357450.js \
|
||||
test_bug357450.html \
|
||||
test_bug357450.xhtml \
|
||||
test_bug357450.xul \
|
||||
test_bug357450_svg.xhtml \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=357450
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Test for Bug 357450</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="test_bug357450.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
<style type="text/css">
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=357450"
|
||||
target="_blank" >Mozilla Bug 357450</a>
|
||||
|
||||
<p id="display"></p>
|
||||
<span class="classtest">hmm</span>
|
||||
<span class="classtest">hmm</span>
|
||||
<div id="content" style="display: block">
|
||||
<a name="nametest">hmm</a>
|
||||
<b class="foo">hmm</b>
|
||||
<b id="test1" class="test1">hmm</b>
|
||||
<b id="test2" class="test2">hmm</b>
|
||||
<b id="int-class" class="1">hmm</b>
|
||||
<span class="classtest">hmm</span>
|
||||
<div id="example">
|
||||
<p id="p1" class="aaa bbb"/>
|
||||
<p id="p2" class="aaa ccc"/>
|
||||
<p id="p3" class="bbb ccc"/>
|
||||
</div>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,64 @@
|
|||
/** Test for Bug 357450 **/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function testGetElements (root, classtestCount) {
|
||||
|
||||
ok(root.getElementsByClassName, "getElementsByClassName exists");
|
||||
is(typeof(root.getElementsByClassName), "function", "getElementsByClassName is a function");
|
||||
|
||||
var nodes = root.getElementsByClassName("f");
|
||||
|
||||
is(typeof(nodes.item), "function");
|
||||
is(typeof(nodes.length), "number");
|
||||
is(nodes.length, 0, "string with no matching class should get an empty list");
|
||||
|
||||
nodes = root.getElementsByClassName("foo");
|
||||
ok(nodes, "should have nodelist object");
|
||||
|
||||
// HTML5 says ints are allowed in class names
|
||||
// should match int class
|
||||
|
||||
nodes = root.getElementsByClassName("1");
|
||||
is(nodes[0], $('int-class'), "match integer class name");
|
||||
nodes = root.getElementsByClassName([1]);
|
||||
is(nodes[0], $('int-class'), "match integer class name 2");
|
||||
nodes = root.getElementsByClassName(["1 junk"]);
|
||||
|
||||
is(nodes.length, 0, "two classes, but no elements have both");
|
||||
|
||||
nodes = root.getElementsByClassName("test1");
|
||||
is(nodes[0], $('test1'), "Id and class name turn up the same node");
|
||||
nodes = root.getElementsByClassName("test1 test2");
|
||||
is(nodes.length, 0, "two classes, but no elements have both");
|
||||
|
||||
// WHATWG examples
|
||||
nodes = document.getElementById('example').getElementsByClassName('aaa');
|
||||
is(nodes.length, 2, "returns 2 elements");
|
||||
|
||||
nodes = document.getElementById('example').getElementsByClassName('ccc bbb')
|
||||
is(nodes.length, 1, "only match elements that have all the classes specified in that array. tokenize string arg.")
|
||||
is(nodes[0], $('p3'), "matched tokenized string");
|
||||
|
||||
nodes = document.getElementById('example').getElementsByClassName('');
|
||||
is(nodes.length, 0, "class name with empty string shouldn't return nodes");
|
||||
|
||||
nodes = root.getElementsByClassName({});
|
||||
ok(nodes, "bogus arg shouldn't be null");
|
||||
is(typeof(nodes.item), "function");
|
||||
is(typeof(nodes.length), "number");
|
||||
is(nodes.length, 0, "bogus arg should get an empty nodelist");
|
||||
}
|
||||
|
||||
addLoadEvent(function() {
|
||||
if (document.getElementsByName) {
|
||||
var anchorNodes = document.getElementsByName("nametest");
|
||||
is(anchorNodes.length, 1, "getElementsByName still works");
|
||||
is(anchorNodes[0].getAttribute("name"), "nametest",
|
||||
"getElementsByName still works");
|
||||
}
|
||||
//testGetElements($("content"), 1);
|
||||
//testGetElements(document.documentElement, 3);
|
||||
testGetElements(document, 3);
|
||||
});
|
||||
addLoadEvent(SimpleTest.finish);
|
|
@ -0,0 +1,41 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=357450
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Test for Bug 357450</title>
|
||||
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="test_bug357450.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=357450"
|
||||
target="_blank">Mozilla Bug 357450</a>
|
||||
|
||||
<p id="display"></p>
|
||||
<span class="classtest">hmm</span>
|
||||
<span class="classtest">hmm</span>
|
||||
|
||||
<div id="content" style="display: block">
|
||||
<a name="nametest">hmm</a>
|
||||
<b class="foo">hmm</b>
|
||||
<b id="test1" class="test1">hmm</b>
|
||||
<b id="test2" class="test2">hmm</b>
|
||||
<b id="int-class" class="1">hmm</b>
|
||||
<span class="classtest">hmm</span>
|
||||
|
||||
<div id="example">
|
||||
<p id="p1" class="aaa bbb"/>
|
||||
<p id="p2" class="aaa ccc"/>
|
||||
<p id="p3" class="bbb ccc"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=357450
|
||||
-->
|
||||
|
||||
<window title="Mozilla Bug 357450"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<title>Test for Bug 357450</title>
|
||||
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="test_bug357450.js"></script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=357450"
|
||||
target="_blank">Mozilla Bug 357450</a>
|
||||
|
||||
<p id="display"></p>
|
||||
|
||||
<div id="content" style="display: block">
|
||||
<a class="classtest" name="nametest">hmm</a>
|
||||
<b class="foo">hmm</b>
|
||||
<b id="test1" class="test1">hmm</b>
|
||||
<b id="test2" class="test2">hmm</b>
|
||||
<b id="int-class" class="1">hmm</b>
|
||||
<div id="example">
|
||||
<p id="p1" class="aaa bbb"/>
|
||||
<p id="p2" class="aaa ccc"/>
|
||||
<p id="p3" class="bbb ccc"/>
|
||||
</div>
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
height="100" width="100" style="float:left">
|
||||
|
||||
<path d="M38,38c0-12,24-15,23-2c0,9-16,13-16,23v7h11v-4c0-9,17-12,17-27c-2-22-45-22-45,3zM45,70h11v11h-11z" fill="#371"/>
|
||||
|
||||
<circle cx="50" cy="50" r="45" class="classtest"
|
||||
fill="none" stroke="#371" stroke-width="10"/>
|
||||
|
||||
</svg>
|
||||
|
||||
<xul:label class="classtest"
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
hmm
|
||||
</xul:label>
|
||||
|
||||
|
||||
</window>
|
|
@ -0,0 +1,48 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=357450
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Test for Bug 357450</title>
|
||||
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="test_bug357450.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=357450"
|
||||
target="_blank">Mozilla Bug 357450</a>
|
||||
|
||||
<p id="display"></p>
|
||||
<span class="classtest">hmm</span>
|
||||
<span class="classtest">hmm</span>
|
||||
<div id="content" style="display: block">
|
||||
<a name="nametest">hmm</a>
|
||||
<b class="foo">hmm</b>
|
||||
<b id="test1" class="test1">hmm</b>
|
||||
<b id="test2" class="test2">hmm</b>
|
||||
<b id="int-class" class="1">hmm</b>
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
height="100" width="100" style="float:left">
|
||||
<path d="M38,38c0-12,24-15,23-2c0,9-16,13-16,23v7h11v-4c0-9,17-12,17-27c-2-22-45-22-45,3zM45,70h11v11h-11z" fill="#371"/>
|
||||
|
||||
<circle cx="50" cy="50" r="45" class="classtest"
|
||||
fill="none" stroke="#371" stroke-width="10"/>
|
||||
</svg>
|
||||
|
||||
<div id="example">
|
||||
<p id="p1" class="aaa bbb"/>
|
||||
<p id="p2" class="aaa ccc"/>
|
||||
<p id="p3" class="bbb ccc"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче