82 lines
2.8 KiB
HTML
82 lines
2.8 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test.js"></script>
|
|
</head>
|
|
|
|
<body id="body">
|
|
|
|
<select id="selectElement" title="selectElement">
|
|
<option SELECTED>Option 1</option>
|
|
<option>Option 2</option>
|
|
<option DISABLED>Option 3</option>
|
|
</select>
|
|
|
|
<p>This tests that non-multiple select elements expose their list options.</p>
|
|
|
|
<p id="notDRT">This test should only be run inside of DumpRenderTree.</p>
|
|
|
|
<p id="console"></p>
|
|
|
|
<script>
|
|
function dumpListOptionAttributes(list) {
|
|
for (var i = 0; i < list.childrenCount; ++i) {
|
|
var option = list.childAtIndex(i);
|
|
debug('option.title: ' + option.title);
|
|
debug('option.role: ' + option.role);
|
|
debug('option.width: ' + option.width);
|
|
debug('option.height: ' + option.height);
|
|
debug('option.x: ' + option.x);
|
|
debug('option.y: ' + option.y);
|
|
debug('option.isOffScreen: ' + option.isOffScreen);
|
|
debug('option.isEnabled: ' + option.isEnabled);
|
|
debug('option.isVisible: ' + option.isVisible);
|
|
debug('option.isSelected: ' + option.isSelected);
|
|
debug('option.isSelectable: ' + option.isSelectable);
|
|
debug("");
|
|
}
|
|
debug("---\n");
|
|
}
|
|
if (window.testRunner && window.accessibilityController) {
|
|
document.getElementById("notDRT").style.visibility = "hidden";
|
|
|
|
document.getElementById("selectElement").focus();
|
|
var selectElement = accessibilityController.focusedElement;
|
|
shouldBe('selectElement.role', '"AXRole: combo box"');
|
|
shouldBeFalse('selectElement.isMultiSelectable');
|
|
shouldBeTrue('selectElement.isCollapsed');
|
|
shouldBeTrue('selectElement.hasPopup');
|
|
debug("");
|
|
|
|
var list = accessibilityController.focusedElement.childAtIndex(0);
|
|
shouldBe('list.role', '"AXRole: list"');
|
|
shouldBeFalse('list.isVisible');
|
|
shouldBeTrue('list.isOffScreen');
|
|
debug("");
|
|
|
|
dumpListOptionAttributes(list);
|
|
|
|
document.getElementById("selectElement").selectedIndex = 1;
|
|
dumpListOptionAttributes(list);
|
|
|
|
document.getElementById("selectElement").selectedIndex = 0;
|
|
document.getElementById("selectElement").disabled = true;
|
|
dumpListOptionAttributes(list);
|
|
|
|
document.getElementById("selectElement").disabled = false;
|
|
selectElement.showMenu();
|
|
shouldBeFalse('selectElement.isCollapsed');
|
|
shouldBeFalse('list.isOffScreen');
|
|
debug("");
|
|
|
|
dumpListOptionAttributes(list);
|
|
|
|
// Test that accessing a detached <option> does not crash.
|
|
var option = list.childAtIndex(0);
|
|
shouldBeTrue('option.width != 0');
|
|
document.getElementById("selectElement").options[0] = null;
|
|
shouldBeTrue('option.width == 0');
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|