| <!DOCTYPE html> | |
| <html> | |
| <body> | |
| <script src="../../resources/js-test.js"></script> | |
| <select id="testSelect"> | |
| <option type="text" id="selectedIndex" name="selectedIndex"> | |
| <option type="text" id="action" name="action"> | |
| <option type="text" id="testOption" name="testOption"> | |
| </select> | |
| <script> | |
| description("Tests setting properties on HTMLOptionsCollection"); | |
| collection = document.getElementById("testSelect").options; | |
| shouldBe("collection.selectedIndex", "0"); | |
| shouldBe("collection.action", "document.getElementById('action')"); | |
| shouldBe("collection[0]", "document.getElementById('selectedIndex')"); | |
| shouldBe("collection.testOption", "document.getElementById('testOption')"); | |
| shouldBeUndefined("collection.foo"); | |
| evalAndLog("collection.selectedIndex = 1"); | |
| shouldThrowErrorName("collection[0] = 'bar'", "TypeError"); | |
| shouldBe("collection.selectedIndex", "1"); | |
| let firstOption = document.getElementById('selectedIndex'); | |
| evalAndLog("firstOption.id = 'bar'"); | |
| evalAndLog("firstOption.name = 'bar'"); | |
| shouldBe("collection.selectedIndex", "1"); | |
| evalAndLog("collection.action = 'about:blank'"); | |
| shouldBe("collection.action", "document.getElementById('action')"); | |
| evalAndLog("document.getElementById('action').remove()"); | |
| shouldBeUndefined("collection.action"); | |
| evalAndLog("collection.testOption = 'test'"); | |
| shouldBe("collection.testOption", "document.getElementById('testOption')"); | |
| evalAndLog("document.getElementById('testOption').remove()"); | |
| shouldBeUndefined("collection.testOption"); | |
| evalAndLog("collection.foo = 'test'"); | |
| shouldBeEqualToString("collection.foo", "test"); | |
| shouldBe("collection[0]", "firstOption"); | |
| </script> | |
| </body> | |
| </html> |