124 lines
4.0 KiB
HTML
124 lines
4.0 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<select id="selectElement" multiple title="selectElement">
|
|
<option SELECTED>Option 0</option>
|
|
<option>Option 1</option>
|
|
<option>Option 2</option>
|
|
<option DISABLED>Option 3</option>
|
|
</select>
|
|
|
|
<select id="selectElement2" title="selectElement">
|
|
<option SELECTED>Option 0</option>
|
|
<option>Option 1</option>
|
|
<option>Option 2</option>
|
|
<option DISABLED>Option 3</option>
|
|
</select>
|
|
|
|
<p>This tests that we can adjust focus and selection via accessibility API.</p>
|
|
|
|
<p id="notDRT">This test should only be run inside of DumpRenderTree.</p>
|
|
|
|
<p id="console"></p>
|
|
|
|
<script>
|
|
function dumpSelection(element)
|
|
{
|
|
var options = element.options;
|
|
for (var i = 0; i < options.length; ++i)
|
|
debug("Option " + i + " is " + (options[i].selected ? "" : "not ") + "selected.");
|
|
debug("");
|
|
}
|
|
|
|
if (window.testRunner && window.accessibilityController) {
|
|
document.getElementById("notDRT").style.visibility = "hidden";
|
|
|
|
document.body.focus();
|
|
shouldBe('accessibilityController.focusedElement.role', '"document"');
|
|
|
|
var anonymousBlock = accessibilityController.focusedElement.childAtIndex(0);
|
|
|
|
// Focus the select element.
|
|
var select = anonymousBlock.childAtIndex(0);
|
|
select.takeFocus();
|
|
shouldBe('accessibilityController.focusedElement.role', '"AXList"');
|
|
|
|
debug("");
|
|
|
|
var selectElement = document.getElementById("selectElement");
|
|
|
|
// Option 0 selected
|
|
accessibilityController.focusedElement.childAtIndex(0).takeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Option 1 selected
|
|
accessibilityController.focusedElement.childAtIndex(1).takeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Options 1, 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(2).addSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Option 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(1).removeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Option 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(0).removeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Options 0, 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(0).addSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Options 0, 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(0).addSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// Option 2 selected
|
|
accessibilityController.focusedElement.childAtIndex(0).removeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// No options selected
|
|
accessibilityController.focusedElement.childAtIndex(2).removeSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
// No options selected (option at index 3 is disabled)
|
|
accessibilityController.focusedElement.childAtIndex(3).addSelection();
|
|
dumpSelection(selectElement);
|
|
|
|
debug("== single select ==");
|
|
|
|
var selectElement2 = document.getElementById("selectElement2");
|
|
selectElement2.focus();
|
|
|
|
var popupMenu = accessibilityController.focusedElement.childAtIndex(0);
|
|
|
|
// Option 0 is selected
|
|
popupMenu.childAtIndex(0).takeSelection();
|
|
dumpSelection(selectElement2);
|
|
|
|
// Option 1 selected
|
|
popupMenu.childAtIndex(1).takeSelection();
|
|
dumpSelection(selectElement2);
|
|
|
|
// Options 1 selected - addSelection() is not valid for single-select.
|
|
popupMenu.childAtIndex(2).addSelection();
|
|
dumpSelection(selectElement2);
|
|
|
|
// Options 1 selected - removeSelection() is not valid for single-select.
|
|
popupMenu.childAtIndex(1).removeSelection();
|
|
dumpSelection(selectElement2);
|
|
|
|
// Options 1 selected - option at index 3 is disabled
|
|
popupMenu.childAtIndex(3).takeSelection();
|
|
dumpSelection(selectElement2);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|