summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webdriver/actions/support/keys.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webdriver/actions/support/keys.py')
-rw-r--r--testing/web-platform/tests/webdriver/actions/support/keys.py812
1 files changed, 812 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webdriver/actions/support/keys.py b/testing/web-platform/tests/webdriver/actions/support/keys.py
new file mode 100644
index 000000000..842c3db73
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/actions/support/keys.py
@@ -0,0 +1,812 @@
+# Licensed to the Software Freedom Conservancy (SFC) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The SFC licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+"""
+The Keys implementation.
+"""
+
+from inspect import getmembers
+
+
+class Keys(object):
+ """
+ Set of special keys codes.
+
+ See also https://w3c.github.io/webdriver/webdriver-spec.html#h-keyboard-actions
+ """
+
+ NULL = u"\ue000"
+ CANCEL = u"\ue001" # ^break
+ HELP = u"\ue002"
+ BACKSPACE = u"\ue003"
+ TAB = u"\ue004"
+ CLEAR = u"\ue005"
+ RETURN = u"\ue006"
+ ENTER = u"\ue007"
+ SHIFT = u"\ue008"
+ CONTROL = u"\ue009"
+ ALT = u"\ue00a"
+ PAUSE = u"\ue00b"
+ ESCAPE = u"\ue00c"
+ SPACE = u"\ue00d"
+ PAGE_UP = u"\ue00e"
+ PAGE_DOWN = u"\ue00f"
+ END = u"\ue010"
+ HOME = u"\ue011"
+ LEFT = u"\ue012"
+ UP = u"\ue013"
+ RIGHT = u"\ue014"
+ DOWN = u"\ue015"
+ INSERT = u"\ue016"
+ DELETE = u"\ue017"
+ SEMICOLON = u"\ue018"
+ EQUALS = u"\ue019"
+
+ NUMPAD0 = u"\ue01a" # number pad keys
+ NUMPAD1 = u"\ue01b"
+ NUMPAD2 = u"\ue01c"
+ NUMPAD3 = u"\ue01d"
+ NUMPAD4 = u"\ue01e"
+ NUMPAD5 = u"\ue01f"
+ NUMPAD6 = u"\ue020"
+ NUMPAD7 = u"\ue021"
+ NUMPAD8 = u"\ue022"
+ NUMPAD9 = u"\ue023"
+ MULTIPLY = u"\ue024"
+ ADD = u"\ue025"
+ SEPARATOR = u"\ue026"
+ SUBTRACT = u"\ue027"
+ DECIMAL = u"\ue028"
+ DIVIDE = u"\ue029"
+
+ F1 = u"\ue031" # function keys
+ F2 = u"\ue032"
+ F3 = u"\ue033"
+ F4 = u"\ue034"
+ F5 = u"\ue035"
+ F6 = u"\ue036"
+ F7 = u"\ue037"
+ F8 = u"\ue038"
+ F9 = u"\ue039"
+ F10 = u"\ue03a"
+ F11 = u"\ue03b"
+ F12 = u"\ue03c"
+
+ META = u"\ue03d"
+
+ # More keys from webdriver spec
+ ZENKAKUHANKAKU = u"\uE040"
+ R_SHIFT = u"\uE050"
+ R_CONTROL = u"\uE051"
+ R_ALT = u"\uE052"
+ R_META = u"\uE053"
+ R_PAGEUP = u"\uE054"
+ R_PAGEDOWN = u"\uE055"
+ R_END = u"\uE056"
+ R_HOME = u"\uE057"
+ R_ARROWLEFT = u"\uE058"
+ R_ARROWUP = u"\uE059"
+ R_ARROWRIGHT = u"\uE05A"
+ R_ARROWDOWN = u"\uE05B"
+ R_INSERT = u"\uE05C"
+ R_DELETE = u"\uE05D"
+
+
+ALL_KEYS = getmembers(Keys, lambda x: type(x) == unicode)
+
+ALL_EVENTS = {
+ "ADD": {
+ "code": "",
+ "ctrl": False,
+ "key": "+",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue025",
+ "which": 0,
+ },
+ "ALT": {
+ "code": "AltLeft",
+ "ctrl": False,
+ "key": "Alt",
+ "location": 1,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00a",
+ "which": 0,
+ },
+ "BACKSPACE": {
+ "code": "Backspace",
+ "ctrl": False,
+ "key": "Backspace",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue003",
+ "which": 0,
+ },
+ "CANCEL": {
+ "code": "",
+ "ctrl": False,
+ "key": "Cancel",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue001",
+ "which": 0,
+ },
+ "CLEAR": {
+ "code": "",
+ "ctrl": False,
+ "key": "Clear",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue005",
+ "which": 0,
+ },
+ "CONTROL": {
+ "code": "ControlLeft",
+ "ctrl": True,
+ "key": "Control",
+ "location": 1,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue009",
+ "which": 0,
+ },
+ "DECIMAL": {
+ "code": "NumpadDecimal",
+ "ctrl": False,
+ "key": ".",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue028",
+ "which": 0,
+ },
+ "DELETE": {
+ "code": "Delete",
+ "ctrl": False,
+ "key": "Delete",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue017",
+ "which": 0,
+ },
+ "DIVIDE": {
+ "code": "NumpadDivide",
+ "ctrl": False,
+ "key": "/",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue029",
+ "which": 0,
+ },
+ "DOWN": {
+ "code": "ArrowDown",
+ "ctrl": False,
+ "key": "ArrowDown",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue015",
+ "which": 0,
+ },
+ "END": {
+ "code": "End",
+ "ctrl": False,
+ "key": "End",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue010",
+ "which": 0,
+ },
+ "ENTER": {
+ "code": "NumpadEnter",
+ "ctrl": False,
+ "key": "Enter",
+ "location": 1,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue007",
+ "which": 0,
+ },
+ "EQUALS": {
+ "code": "",
+ "ctrl": False,
+ "key": "=",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue019",
+ "which": 0,
+ },
+ "ESCAPE": {
+ "code": "Escape",
+ "ctrl": False,
+ "key": "Escape",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00c",
+ "which": 0,
+ },
+ "F1": {
+ "code": "F1",
+ "ctrl": False,
+ "key": "F1",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue031",
+ "which": 0,
+ },
+ "F10": {
+ "code": "F10",
+ "ctrl": False,
+ "key": "F10",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue03a",
+ "which": 0,
+ },
+ "F11": {
+ "code": "F11",
+ "ctrl": False,
+ "key": "F11",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue03b",
+ "which": 0,
+ },
+ "F12": {
+ "code": "F12",
+ "ctrl": False,
+ "key": "F12",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue03c",
+ "which": 0,
+ },
+ "F2": {
+ "code": "F2",
+ "ctrl": False,
+ "key": "F2",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue032",
+ "which": 0,
+ },
+ "F3": {
+ "code": "F3",
+ "ctrl": False,
+ "key": "F3",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue033",
+ "which": 0,
+ },
+ "F4": {
+ "code": "F4",
+ "ctrl": False,
+ "key": "F4",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue034",
+ "which": 0,
+ },
+ "F5": {
+ "code": "F5",
+ "ctrl": False,
+ "key": "F5",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue035",
+ "which": 0,
+ },
+ "F6": {
+ "code": "F6",
+ "ctrl": False,
+ "key": "F6",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue036",
+ "which": 0,
+ },
+ "F7": {
+ "code": "F7",
+ "ctrl": False,
+ "key": "F7",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue037",
+ "which": 0,
+ },
+ "F8": {
+ "code": "F8",
+ "ctrl": False,
+ "key": "F8",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue038",
+ "which": 0,
+ },
+ "F9": {
+ "code": "F9",
+ "ctrl": False,
+ "key": "F9",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue039",
+ "which": 0,
+ },
+ "HELP": {
+ "code": "Help",
+ "ctrl": False,
+ "key": "Help",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue002",
+ "which": 0,
+ },
+ "HOME": {
+ "code": "Home",
+ "ctrl": False,
+ "key": "Home",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue011",
+ "which": 0,
+ },
+ "INSERT": {
+ "code": "Insert",
+ "ctrl": False,
+ "key": "Insert",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue016",
+ "which": 0,
+ },
+ "LEFT": {
+ "code": "ArrowLeft",
+ "ctrl": False,
+ "key": "ArrowLeft",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue012",
+ "which": 0,
+ },
+ "META": {
+ "code": "OSLeft",
+ "ctrl": False,
+ "key": "Meta",
+ "location": 1,
+ "meta": True,
+ "shift": False,
+ "value": u"\ue03d",
+ "which": 0,
+ },
+ "MULTIPLY": {
+ "code": "NumpadMultiply",
+ "ctrl": False,
+ "key": "*",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue024",
+ "which": 0,
+ },
+ "NULL": {
+ "code": "",
+ "ctrl": False,
+ "key": "Unidentified",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue000",
+ "which": 0,
+ },
+ "NUMPAD0": {
+ "code": "Numpad0",
+ "ctrl": False,
+ "key": "0",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01a",
+ "which": 0,
+ },
+ "NUMPAD1": {
+ "code": "Numpad1",
+ "ctrl": False,
+ "key": "1",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01b",
+ "which": 0,
+ },
+ "NUMPAD2": {
+ "code": "Numpad2",
+ "ctrl": False,
+ "key": "2",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01c",
+ "which": 0,
+ },
+ "NUMPAD3": {
+ "code": "Numpad3",
+ "ctrl": False,
+ "key": "3",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01d",
+ "which": 0,
+ },
+ "NUMPAD4": {
+ "code": "PageDown",
+ "ctrl": False,
+ "key": "4",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01e",
+ "which": 0,
+ },
+ "NUMPAD5": {
+ "code": "PageUp",
+ "ctrl": False,
+ "key": "5",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue01f",
+ "which": 0,
+ },
+ "NUMPAD6": {
+ "code": "Numpad6",
+ "ctrl": False,
+ "key": "6",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue020",
+ "which": 0,
+ },
+ "NUMPAD7": {
+ "code": "Numpad7",
+ "ctrl": False,
+ "key": "7",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue021",
+ "which": 0,
+ },
+ "NUMPAD8": {
+ "code": "Numpad8",
+ "ctrl": False,
+ "key": "8",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue022",
+ "which": 0,
+ },
+ "NUMPAD9": {
+ "code": "Numpad9",
+ "ctrl": False,
+ "key": "9",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue023",
+ "which": 0,
+ },
+ "PAGE_DOWN": {
+ "code": "",
+ "ctrl": False,
+ "key": "PageDown",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00f",
+ "which": 0,
+ },
+ "PAGE_UP": {
+ "code": "",
+ "ctrl": False,
+ "key": "PageUp",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00e",
+ "which": 0,
+ },
+ "PAUSE": {
+ "code": "",
+ "ctrl": False,
+ "key": "Pause",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00b",
+ "which": 0,
+ },
+ "RETURN": {
+ "code": "Enter",
+ "ctrl": False,
+ "key": "Return",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue006",
+ "which": 0,
+ },
+ "RIGHT": {
+ "code": "ArrowRight",
+ "ctrl": False,
+ "key": "ArrowRight",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue014",
+ "which": 0,
+ },
+ "R_ALT": {
+ "code": "AltRight",
+ "ctrl": False,
+ "key": "Alt",
+ "location": 2,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue052",
+ "which": 0,
+ },
+ "R_ARROWDOWN": {
+ "code": "Numpad2",
+ "ctrl": False,
+ "key": "ArrowDown",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue05b",
+ "which": 0,
+ },
+ "R_ARROWLEFT": {
+ "code": "Numpad4",
+ "ctrl": False,
+ "key": "ArrowLeft",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue058",
+ "which": 0,
+ },
+ "R_ARROWRIGHT": {
+ "code": "Numpad6",
+ "ctrl": False,
+ "key": "ArrowRight",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue05a",
+ "which": 0,
+ },
+ "R_ARROWUP": {
+ "code": "Numpad8",
+ "ctrl": False,
+ "key": "ArrowUp",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue059",
+ "which": 0,
+ },
+ "R_CONTROL": {
+ "code": "ControlRight",
+ "ctrl": True,
+ "key": "Control",
+ "location": 2,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue051",
+ "which": 0,
+ },
+ "R_DELETE": {
+ "code": "NumpadDecimal",
+ "ctrl": False,
+ "key": "Delete",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue05d",
+ "which": 0,
+ },
+ "R_END": {
+ "code": "Numpad1",
+ "ctrl": False,
+ "key": "End",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue056",
+ "which": 0,
+ },
+ "R_HOME": {
+ "code": "Numpad7",
+ "ctrl": False,
+ "key": "Home",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue057",
+ "which": 0,
+ },
+ "R_INSERT": {
+ "code": "Numpad0",
+ "ctrl": False,
+ "key": "Insert",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue05c",
+ "which": 0,
+ },
+ "R_META": {
+ "code": "OSRight",
+ "ctrl": False,
+ "key": "Meta",
+ "location": 2,
+ "meta": True,
+ "shift": False,
+ "value": u"\ue053",
+ "which": 0,
+ },
+ "R_PAGEDOWN": {
+ "code": "Numpad3",
+ "ctrl": False,
+ "key": "PageDown",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue055",
+ "which": 0,
+ },
+ "R_PAGEUP": {
+ "code": "Numpad9",
+ "ctrl": False,
+ "key": "PageUp",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue054",
+ "which": 0,
+ },
+ "R_SHIFT": {
+ "code": "ShiftRight",
+ "ctrl": False,
+ "key": "Shift",
+ "location": 2,
+ "meta": False,
+ "shift": True,
+ "value": u"\ue050",
+ "which": 0,
+ },
+ "SEMICOLON": {
+ "code": "",
+ "ctrl": False,
+ "key": ";",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue018",
+ "which": 0,
+ },
+ "SEPARATOR": {
+ "code": "NumpadSubtract",
+ "ctrl": False,
+ "key": ",",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue026",
+ "which": 0,
+ },
+ "SHIFT": {
+ "code": "ShiftLeft",
+ "ctrl": False,
+ "key": "Shift",
+ "location": 1,
+ "meta": False,
+ "shift": True,
+ "value": u"\ue008",
+ "which": 0,
+ },
+ "SPACE": {
+ "code": "Space",
+ "ctrl": False,
+ "key": " ",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue00d",
+ "which": 0,
+ },
+ "SUBTRACT": {
+ "code": "",
+ "ctrl": False,
+ "key": "-",
+ "location": 3,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue027",
+ "which": 0,
+ },
+ "TAB": {
+ "code": "Tab",
+ "ctrl": False,
+ "key": "Tab",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue004",
+ "which": 0,
+ },
+ "UP": {
+ "code": "ArrowUp",
+ "ctrl": False,
+ "key": "ArrowUp",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue013",
+ "which": 0,
+ },
+ "ZENKAKUHANKAKU": {
+ "code": "",
+ "ctrl": False,
+ "key": "ZenkakuHankaku",
+ "location": 0,
+ "meta": False,
+ "shift": False,
+ "value": u"\ue040",
+ "which": 0,
+ }
+}