Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Unified Diff: LayoutTests/fast/forms/select/popup-menu-key-operations.html

Issue 736883002: Implement <select> Popup Menu using PagePopup (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed tests for mac Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..db4dfc34fe33552714caf95a3d1e3edd28ab241c
--- /dev/null
+++ b/LayoutTests/fast/forms/select/popup-menu-key-operations.html
@@ -0,0 +1,135 @@
+<!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;
+function openPickerErrorCallback() {
+ testFailed('picker didn\'t open')
+ finishJSTest();
+}
+openPicker(menu, test1, openPickerErrorCallback);
+
+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(menu, test2, openPickerErrorCallback);
+ });
+}
+
+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(menu, test3, openPickerErrorCallback);
+ });
+}
+
+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(menu, test4, openPickerErrorCallback);
+ });
+}
+
+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(menu, test5, openPickerErrorCallback);
+ });
+}
+
+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>
« no previous file with comments | « LayoutTests/fast/forms/select/popup-menu-ax.html ('k') | LayoutTests/fast/forms/select/popup-menu-mouse-operations.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698