| <!DOCTYPE html> |
| <script src="../../../resources/js-test.js"></script> |
| |
| <form name="my_form"> |
| <select name="set_sel"> |
| <option id="opt">======== |
| </select> |
| |
| <select name="get_sel"> |
| <option id="one">option 1 |
| <option id="two">option 2 |
| </select> |
| </form> |
| |
| <script> |
| description('Tests the indexed setter and getter for HTMLOptionsCollection.'); |
| var i = 0; |
| |
| var get_options = document.my_form.get_sel.options; |
| debug((++i) + ') getting options by index or by getElementById'); |
| shouldBe('get_options[0]', 'document.getElementById("one")'); |
| shouldBe('get_options[1]', 'document.getElementById("two")'); |
| |
| var set_options = document.my_form.set_sel.options; |
| debug((++i) + ') setting a few elements to Option values'); |
| set_options[1] = new Option('A'); |
| set_options[2] = new Option('B'); |
| shouldBe('set_options.length', '3'); |
| |
| debug((++i) + ') trying to set an element to a non-Option value: undefined'); |
| set_options[10] = undefined; |
| shouldBe('set_options.length', '3'); |
| |
| debug((++i) + ') trying to set an element to a non-Option value: null'); |
| set_options[10] = null; |
| shouldBe('set_options.length', '3'); |
| |
| debug((++i) + ') trying to set an element to a non-Option value: form (object of incorrect type)'); |
| shouldThrow('set_options[10] = my_form'); |
| shouldBe('set_options.length', '3'); |
| </script> |