<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../resources/js-test.js"></script>
</head>
<body>
<div style="display: none">
<form id=a>
<input id=x>
<input name=z>
</form>
<form name=z>
<input id=x>
<input name=z>
<select>
<option id=o>a</option>
<option name=z>b</option>
<option>c</option>
</select>
</form>
<a href="http://c.example.org" id=c name=cc></a>
<a href="http://d.example.org" name=z></a>
</div>
<script>
description("HTMLCollection.item() shouldn't fallback to namedItem().");
function runTests(collection, expectedElement) {
shouldBe(collection + ".item(0)", expectedElement);
shouldBe(collection + ".item('0')", expectedElement);
shouldBe(collection + ".item('z')", expectedElement);
shouldBe(collection + ".item(undefined)", expectedElement);
shouldBe(collection + ".item(null)", expectedElement);
shouldBe(collection + ".item({a: 'blah'})", expectedElement);
shouldBe(collection + ".item(false)", expectedElement);
shouldBe(collection + ".item(true)", collection + ".item(1)");
shouldBe(collection + ".item(4294967297)", collection + ".item(1)");
shouldBeNull(collection + ".item(10000)");
shouldBeNull(collection + ".item(-1)");
}
runTests("document.forms", "document.getElementById('a')");
runTests("document.forms[0].elements", "document.getElementById('x')");
runTests("document.forms[1].elements[2].options", "document.getElementById('o')");
runTests("document.anchors", "document.getElementById('c')");
// document.all is an ugly mutant (i.e. not an HTMLCollection).
if ("all" in document) {
shouldBe("document.all.item('z')[0]", "document.forms[0].elements.namedItem('z')");
shouldBe("document.all.item('z')[1]", "document.forms.namedItem('z')");
shouldBe("document.all.item('z')[2]", "document.forms.namedItem('z').elements.namedItem('z')");
}
</script>
</body>
</html>