HTMLOptionsCollection's namedItem and name getter should return the first item
[WebKit-https.git] / LayoutTests / fast / dom / HTMLSelectElement / script-tests / named-options.js
1 description("This tests that option elements are accessible using namedItem from both HTMLSelectElement and HTMLOptionsCollection as well as using the getter from the HTMLOptionsCollection");
2
3 var select1 = document.createElement("select");
4 document.body.appendChild(select1);
5 select1.innerHTML = '<option value="Value" name="test">';
6
7 var select2 = document.createElement("select");
8 document.body.appendChild(select2);
9 select2.innerHTML = '<option value="Value1" name="test"><option value="Value2" name="test">';
10
11 debug("Confirm that the option named 'test' is accessible from the select element");
12 shouldBeEqualToString("select1.namedItem('test').toString()", "[object HTMLOptionElement]");
13 shouldBeEqualToString("select1.namedItem('test').value", "Value");
14
15 debug("Confirm that the option named 'test' is accessible from the options collection");
16 shouldBeEqualToString("select1.options.namedItem('test').toString()", "[object HTMLOptionElement]");
17 shouldBeEqualToString("select1.options.namedItem('test').value", "Value");
18
19 debug("Confirm that the options collection returns the first option when there are multiple options named 'test'");
20 shouldBeEqualToString("select2.namedItem('test').toString()", "[object HTMLOptionElement]");
21 shouldBeEqualToString("select2.namedItem('test').value", "Value1");
22
23 shouldBeEqualToString("select2.options.test.toString()", "[object HTMLOptionElement]");
24 shouldBeEqualToString("select2.options.test.value", "Value1");
25
26 // Clean up after ourselves
27 document.body.removeChild(select1);
28 document.body.removeChild(select2);