| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../resources/js-test-pre.js"></script> |
| </head> |
| <body id="body"> |
| |
| <select id="group" multiple="multiple"> |
| <option>Option 1</option> |
| <option>Option 2</option> |
| <option>Option 3</option> |
| <option>Option 4</option> |
| </select> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| |
| description("Tests that checks whether setting selection at the given index works correctly"); |
| |
| if (window.accessibilityController) { |
| document.getElementById("group").focus(); |
| var selectElement = accessibilityController.focusedElement; |
| |
| shouldBe("selectElement.selectedChildrenCount", "0"); |
| |
| var option1 = selectElement.childAtIndex(0); |
| var option2 = selectElement.childAtIndex(1); |
| var option3 = selectElement.childAtIndex(2); |
| var option4 = selectElement.childAtIndex(3); |
| |
| selectElement.setSelectedChildAtIndex(0); |
| shouldBe("selectElement.selectedChildrenCount", "1"); |
| shouldBeTrue("option1.isSelected"); |
| shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option1)"); |
| |
| selectElement.setSelectedChildAtIndex(1); |
| shouldBe("selectElement.selectedChildrenCount", "2"); |
| shouldBeTrue("option2.isSelected"); |
| shouldBeTrue("selectElement.selectedChildAtIndex(1).isEqual(option2)"); |
| |
| shouldBeFalse("option3.isSelected"); |
| |
| selectElement.setSelectedChildAtIndex(3); |
| shouldBe("selectElement.selectedChildrenCount", "3"); |
| shouldBeTrue("option4.isSelected"); |
| |
| // The index expected by selectedChildAtIndex is with respect to the array of |
| // selected children; not the array of all children. The element whose text is |
| // "Option 4" is the third of three selected items, thus the index should be 2. |
| shouldBeTrue("selectElement.selectedChildAtIndex(2).isEqual(option4)"); |
| |
| // atk_selection_remove_selection() works like atk_selection_ref_selection() |
| // in that the index is with respect to the array of selected children; not |
| // the array of all children. Thus to remove the selection from "Option 4" |
| // in ATK, we again need to specify an index of 2. |
| if (accessibilityController.platformName == "atk") |
| selectElement.removeSelectionAtIndex(2); |
| else |
| selectElement.removeSelectionAtIndex(3); |
| shouldBeFalse("option4.isSelected"); |
| shouldBe("selectElement.selectedChildrenCount", "2"); |
| |
| selectElement.removeSelectionAtIndex(1); |
| shouldBeFalse("option2.isSelected"); |
| shouldBe("selectElement.selectedChildrenCount", "1"); |
| |
| selectElement.removeSelectionAtIndex(0); |
| shouldBeFalse("option1.isSelected"); |
| shouldBe("selectElement.selectedChildrenCount", "0"); |
| } |
| |
| </script> |
| |
| <script src="../resources/js-test-post.js"></script> |
| </body> |
| </html> |