| <!DOCTYPE html> |
| <html> |
| <head> |
| <link rel="help" href="http://www.w3.org/TR/html51/forms.html#dom-select-item"> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <select id="target"> |
| <option value="a">a</option> |
| <option value="b">b</option> |
| <option value="c">c</option> |
| <option value="d">d</option> |
| </select> |
| |
| <script> |
| description("Tests that the HTMLSelectElement.item() argument is correctly validated."); |
| |
| var select = document.getElementById('target'); |
| shouldBe("select.__proto__", "HTMLSelectElement.prototype"); |
| |
| // getter Node item(unsigned long index); |
| shouldBeEqualToString("select.item(0).value", "a"); |
| shouldBeEqualToString("select.item(1).value", "b"); |
| shouldBeEqualToString("select.item(2).value", "c"); |
| shouldBeEqualToString("select.item(3).value", "d"); |
| shouldBeNull("select.item(4)"); |
| shouldBeNull("select.item(-1)"); // Offset is too large (after wrapping) |
| shouldBeEqualToString("select.item(-4294967294).value", "c"); // Wraps to 2, which is a valid offset. |
| shouldThrow("select.item()", "'TypeError: Not enough arguments'"); |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |