| Index: LayoutTests/fast/forms/select/popup-menu-key-operations.html
|
| diff --git a/LayoutTests/fast/forms/select/popup-menu-key-operations.html b/LayoutTests/fast/forms/select/popup-menu-key-operations.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..31cae40efbbf0e633a3edcaa6a63c225fca0fd9b
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/forms/select/popup-menu-key-operations.html
|
| @@ -0,0 +1,131 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<script src="../../../resources/js-test.js"></script>
|
| +<script src="../resources/common.js"></script>
|
| +<script src="../resources/picker-common.js"></script>
|
| +</head>
|
| +<body>
|
| +<select id="menu">
|
| + <option>foo</option>
|
| + <option selected>bar</option>
|
| + <option hidden>baz</option>
|
| + <optgroup label="qux">
|
| + <option>garply</option>
|
| + </optgroup>
|
| +</select>
|
| +<script>
|
| +var menuElement = document.getElementById('menu');
|
| +var picker = null;
|
| +openPicker(menuElement, test1);
|
| +
|
| +function test1() {
|
| + picker = window.internals.pagePopupWindow.global.picker;
|
| + shouldBeEqualToString('picker._selectElement.value', '1');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('downArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '4');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('downArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '4');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('upArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '1');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('upArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('upArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + eventSender.keyDown('\n');
|
| + shouldBeNull('window.internals.pagePopupWindow');
|
| + shouldBeEqualToString('menuElement.value', 'foo');
|
| +
|
| + waitUntilClosing(function() {
|
| + openPicker(menuElement, test2);
|
| + });
|
| +}
|
| +
|
| +function test2() {
|
| + picker = window.internals.pagePopupWindow.global.picker;
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| +
|
| + eventSender.keyDown('downArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '1');
|
| + shouldBeEqualToString('menuElement.value', 'foo');
|
| +
|
| + // Escape should close the popup and select that keyboard selected item.
|
| + eventSender.keyDown('escape');
|
| + shouldBeNull('window.internals.pagePopupWindow');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + waitUntilClosing(function() {
|
| + openPicker(menuElement, test3);
|
| + });
|
| +}
|
| +
|
| +function test3() {
|
| + picker = window.internals.pagePopupWindow.global.picker;
|
| + shouldBeEqualToString('picker._selectElement.value', '1');
|
| +
|
| + eventSender.keyDown('g');
|
| + shouldBeEqualToString('picker._selectElement.value', '4');
|
| + shouldBeEqualToString('menuElement.value', 'bar');
|
| +
|
| + // Escape should close the popup and select that keyboard selected item.
|
| + eventSender.keyDown('escape');
|
| + shouldBeNull('window.internals.pagePopupWindow');
|
| + shouldBeEqualToString('menuElement.value', 'garply');
|
| +
|
| + waitUntilClosing(function() {
|
| + openPicker(menuElement, test4);
|
| + });
|
| +}
|
| +
|
| +function test4() {
|
| + picker = window.internals.pagePopupWindow.global.picker;
|
| + shouldBeEqualToString('picker._selectElement.value', '4');
|
| +
|
| + hoverOverElement(picker._selectElement.children[0]);
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| + shouldBeEqualToString('menuElement.value', 'garply');
|
| +
|
| + // Escape should close the popup. Simply hovering over an item should not select it.
|
| + eventSender.keyDown('escape');
|
| + shouldBeNull('window.internals.pagePopupWindow');
|
| + shouldBeEqualToString('menuElement.value', 'garply');
|
| +
|
| + waitUntilClosing(function() {
|
| + openPicker(menuElement, test5);
|
| + });
|
| +}
|
| +
|
| +function test5() {
|
| + picker = window.internals.pagePopupWindow.global.picker;
|
| + shouldBeEqualToString('picker._selectElement.value', '4');
|
| +
|
| + hoverOverElement(picker._selectElement.children[0]);
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| + shouldBeEqualToString('menuElement.value', 'garply');
|
| +
|
| + eventSender.keyDown('leftArrow');
|
| + shouldBeEqualToString('picker._selectElement.value', '0');
|
| + shouldBeEqualToString('menuElement.value', 'garply');
|
| +
|
| + // But if you press any key, the highlighted item should be selected.
|
| + eventSender.keyDown('escape');
|
| + shouldBeNull('window.internals.pagePopupWindow');
|
| + shouldBeEqualToString('menuElement.value', 'foo');
|
| +
|
| + finishJSTest();
|
| +}
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|