79 lines
2.9 KiB
HTML
79 lines
2.9 KiB
HTML
<!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>
|