Bug 1415694 - Test webdriver actions keyboard shortcuts; r?ato draft
authorMaja Frydrychowicz <mjzffr@gmail.com>
Wed, 08 Nov 2017 14:19:56 -0500
changeset 695156 25855706344c0452077c201c74a0a980d1d39dfa
parent 694943 f63559d7e6a570e4e73ba367964099394248e18d
child 739546 def0ec2c4c01fb06cc47ae12aa88aec890cc6b66
push id88367
push userbmo:mjzffr@gmail.com
push dateWed, 08 Nov 2017 22:23:24 +0000
reviewersato
bugs1415694
milestone58.0a1
Bug 1415694 - Test webdriver actions keyboard shortcuts; r?ato MozReview-Commit-ID: 7izqD8JLoNv
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/webdriver/tests/actions/key_shortcuts.py
testing/web-platform/tests/webdriver/tests/actions/support/keys.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -384302,16 +384302,22 @@
   },
   "wdspec": {
    "webdriver/tests/actions/key.py": [
     [
      "/webdriver/tests/actions/key.py",
      {}
     ]
    ],
+   "webdriver/tests/actions/key_shortcuts.py": [
+    [
+     "/webdriver/tests/actions/key_shortcuts.py",
+     {}
+    ]
+   ],
    "webdriver/tests/actions/modifier_click.py": [
     [
      "/webdriver/tests/actions/modifier_click.py",
      {
       "timeout": "long"
      }
     ]
    ],
@@ -541906,17 +541912,17 @@
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html": [
    "604c6ee2bd78187a600dd28e03b60caf89580cfe",
    "testharness"
   ],
   "html/browsers/origin/cross-origin-objects/cross-origin-objects.html": [
-   "9202ebf4d640ffccec49451bae23526c24a1053b",
+   "ce27e8e729f434ce3e908a49a1ffd733bcdcd06a",
    "testharness"
   ],
   "html/browsers/origin/cross-origin-objects/frame.html": [
    "7f982fe347ac7fbc14e853d14a2535685a970395",
    "support"
   ],
   "html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html": [
    "37d2be417bbc3b8473c2d4bfaa3b7a9973140ce9",
@@ -586525,16 +586531,20 @@
   "webdriver/tests/actions/conftest.py": [
    "ebdbe326fd2fc53a3522b846505808496407b5b8",
    "support"
   ],
   "webdriver/tests/actions/key.py": [
    "69542dc107d881bf18dfff3203bfd7a9ec31b4ad",
    "wdspec"
   ],
+  "webdriver/tests/actions/key_shortcuts.py": [
+   "dbe27dd0b1625169fc8cc2055f8fb49d5a4a78d2",
+   "wdspec"
+  ],
   "webdriver/tests/actions/modifier_click.py": [
    "2ec22f44973e6da3b9506ad7cc9fd0949f3ef8b5",
    "wdspec"
   ],
   "webdriver/tests/actions/mouse.py": [
    "d7af66e45c8e306b4258b92c54ed86073fd21c8d",
    "wdspec"
   ],
@@ -586546,17 +586556,17 @@
    "3b10143dea60567f30b4ab6c544e005d02f31fc3",
    "wdspec"
   ],
   "webdriver/tests/actions/support/__init__.py": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/actions/support/keys.py": [
-   "636991372c21e52b623ed4ada9dfb675dd7f7e14",
+   "61fc98ac2abeeb82486e6689c9cc16d0aa444b69",
    "support"
   ],
   "webdriver/tests/actions/support/refine.py": [
    "0d244bffe67ef57be68aad99f1cbc7440ff80e27",
    "support"
   ],
   "webdriver/tests/actions/support/test_actions_wdspec.html": [
    "94b6f474bb4417cf2c06cb5fc6042c01bde98aa2",
@@ -586586,25 +586596,25 @@
    "4e846b0f0538bbfc88e7dc6b637f19260a8d3c3e",
    "wdspec"
   ],
   "webdriver/tests/cookies/get_named_cookie.py": [
    "9455d1504590154ad2a540f102455baff602aefb",
    "wdspec"
   ],
   "webdriver/tests/element_click/__init__.py": [
-   "a471e12c9f3a8d87845ffe7c68d95e1991c5f613",
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/element_click/select.py": [
    "5ba51b660c7203bba3ada597c2f56fe094358e1f",
    "wdspec"
   ],
   "webdriver/tests/element_click/stale.py": [
-   "44ddedd4a9dff1b9c1a86f55719fa40f81100fe4",
+   "37af63203540dfe11d36fe05d74694f05c6505f2",
    "wdspec"
   ],
   "webdriver/tests/element_retrieval/get_active_element.py": [
    "41dab8ecf11556f7b1490d515557de659813881e",
    "wdspec"
   ],
   "webdriver/tests/fullscreen_window.py": [
    "6b1e481aac6856b6e858df17731d037997b99f83",
@@ -586634,29 +586644,29 @@
    "11c84957a3177acbbf34597bc0defb3f77c5744c",
    "wdspec"
   ],
   "webdriver/tests/retrieval/__init__.py": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/retrieval/find_element.py": [
-   "a2d29c9c8dd5303d196d0682a19f3f3560b35872",
+   "2a4cdf4c703493f7c90fc3473daa27660ac61e11",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_element_from_element.py": [
-   "78d5e503bf979307f313b72f7578c55264c6e207",
+   "f036ef93adff21a7c83eeb8b131c96b6553b9fcb",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_element_from_elements.py": [
-   "0be0eb0bd904fa8f7e5332d43cef2b36dae1a579",
+   "131c25ffbde611f98e29b778d7c861ae9619b2f6",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_elements.py": [
-   "7df448c94c89bdb9f6818a69a9d52b21faa4b944",
+   "2d5c3c98b00e21a36f91e5797bb97835a8b63f2e",
    "wdspec"
   ],
   "webdriver/tests/sessions/get_timeouts.py": [
    "eaee354d16aa8c3a0fc960198fa4c5d9365bdee5",
    "wdspec"
   ],
   "webdriver/tests/sessions/new_session/conftest.py": [
    "d2df38e506cb9a3e501f03fe03e2a31af42d6f04",
@@ -596618,17 +596628,17 @@
    "f95cceffe7485aac7b53d3f891ad87d50ccc8b1d",
    "testharness"
   ],
   "webrtc/RTCConfiguration-rtcpMuxPolicy.html": [
    "a9beda60053916185106aedac98014123d6f7105",
    "testharness"
   ],
   "webrtc/RTCDTMFSender-helper.js": [
-   "54456b1c74d55552fdad0405f55dcd728205b561",
+   "0c2e8862deffeec71ac925642647bb9ee4ad70ff",
    "support"
   ],
   "webrtc/RTCDTMFSender-insertDTMF.https.html": [
    "50ef787a77512dc7eea7731b9766fda4d1456694",
    "testharness"
   ],
   "webrtc/RTCDTMFSender-ontonechange-long.https.html": [
    "d89602fd655bf032cadfc538291ccea858eb2446",
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/actions/key_shortcuts.py
@@ -0,0 +1,49 @@
+from tests.actions.support.keys import Keys, MODIFIER_KEY
+from tests.actions.support.refine import get_keys
+
+
+def test_mod_a_and_backspace_deletes_all_text(session, key_reporter, key_chain):
+    key_chain.send_keys("abc d") \
+             .key_down(MODIFIER_KEY) \
+             .key_down("a") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("a") \
+             .key_down(Keys.BACKSPACE) \
+             .perform()
+    assert get_keys(key_reporter) == ""
+
+
+def test_mod_a_mod_c_right_mod_v_pastes_text(session, key_reporter, key_chain):
+    initial = "abc d"
+    key_chain.send_keys(initial) \
+             .key_down(MODIFIER_KEY) \
+             .key_down("a") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("a") \
+             .key_down(MODIFIER_KEY) \
+             .key_down("c") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("c") \
+             .send_keys([Keys.RIGHT]) \
+             .key_down(MODIFIER_KEY) \
+             .key_down("v") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("v") \
+             .perform()
+    assert get_keys(key_reporter) == initial * 2
+
+
+def test_mod_a_mod_x_deletes_all_text(session, key_reporter, key_chain):
+    key_chain.send_keys("abc d") \
+             .key_down(MODIFIER_KEY) \
+             .key_down("a") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("a") \
+             .key_down(MODIFIER_KEY) \
+             .key_down("x") \
+             .key_up(MODIFIER_KEY) \
+             .key_up("x") \
+             .perform()
+    assert get_keys(key_reporter) == ""
+
+
--- a/testing/web-platform/tests/webdriver/tests/actions/support/keys.py
+++ b/testing/web-platform/tests/webdriver/tests/actions/support/keys.py
@@ -15,16 +15,17 @@
 # specific language governing permissions and limitations
 # under the License.
 
 """
 The Keys implementation.
 """
 
 from inspect import getmembers
+import sys
 
 
 class Keys(object):
     """
     Set of special keys codes.
 
     See also https://w3c.github.io/webdriver/webdriver-spec.html#h-keyboard-actions
     """
@@ -735,8 +736,13 @@ ALL_EVENTS = {
         "ctrl": False,
         "key": "ZenkakuHankaku",
         "location": 0,
         "meta": False,
         "shift": False,
         "value": u"\ue040",
     }
 }
+
+if sys.platform == 'darwin':
+    MODIFIER_KEY = Keys.META
+else:
+    MODIFIER_KEY = Keys.CONTROL