From c15eeb26e9e4a93ef014281a18e027fada97ad88 Mon Sep 17 00:00:00 2001 From: Maja Frydrychowicz Date: Tue, 24 Oct 2017 19:03:30 -0400 Subject: [PATCH] Bug 1397187 - Split webdriver actions sequence tests into two files; r=jgraham MozReview-Commit-ID: IYO7uxcFMzR --HG-- extra : rebase_source : 966c9c7d065788cc97b085978f99240580c6aa17 --- testing/web-platform/meta/MANIFEST.json | 44 +++++++---- .../webdriver/tests/actions/modifier_click.py | 74 +++++++++++++++++++ .../tests/webdriver/tests/actions/sequence.py | 70 ------------------ 3 files changed, 102 insertions(+), 86 deletions(-) create mode 100644 testing/web-platform/tests/webdriver/tests/actions/modifier_click.py diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index 89a494a994ca..e7546a3cd3fb 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -409331,6 +409331,14 @@ {} ] ], + "webdriver/tests/actions/modifier_click.py": [ + [ + "/webdriver/tests/actions/modifier_click.py", + { + "timeout": "long" + } + ] + ], "webdriver/tests/actions/mouse.py": [ [ "/webdriver/tests/actions/mouse.py", @@ -417101,7 +417109,7 @@ "testharness" ], "XMLHttpRequest/open-url-encoding.htm": [ - "ead2b1f6235cdf8e912214ce24f6d23262d2c826", + "a36c7b0e5919af7842883582ef9fc415d8f7ef25", "testharness" ], "XMLHttpRequest/open-url-fragment.htm": [ @@ -614573,7 +614581,7 @@ "support" ], "pointerevents/pointerevent_support.js": [ - "f2ab5ea976ffd62c669fda2db1484a4733ce5b28", + "f3e21bc91b635f59e14c40535ad52b5d9d9df46d", "support" ], "pointerevents/pointerevent_suppress_compat_events_on_click-manual.html": [ @@ -614589,7 +614597,7 @@ "manual" ], "pointerevents/pointerevent_touch-action-button-test_touch-manual.html": [ - "5da2686dec322631f63640e4699431d7581d2f5f", + "a3f832ef68df2d970d74c0ac2f5e45627005b89e", "manual" ], "pointerevents/pointerevent_touch-action-illegal.html": [ @@ -614669,7 +614677,7 @@ "manual" ], "pointerevents/pointerevent_touch-action-span-test_touch-manual.html": [ - "666e92e9be855d1290e97f1c732e021a98c666de", + "b5b3785a0063b605b27ae735190e36a06dcd25c3", "manual" ], "pointerevents/pointerevent_touch-action-svg-test_touch-manual.html": [ @@ -614677,7 +614685,7 @@ "manual" ], "pointerevents/pointerevent_touch-action-table-test_touch-manual.html": [ - "a6a9c6da496d34a2e937ace1424120ee790eba24", + "5a8575522ab6868dc5235ace1e052a3f8320724d", "manual" ], "pointerevents/pointerevent_touch-action-verification.html": [ @@ -631201,7 +631209,7 @@ "testharness" ], "web-animations/interfaces/Animatable/animate.html": [ - "20339be998b601f34e6b4d676c681ce3a16a464e", + "99868d179c69091aa63631a27d98df4ee957a746", "testharness" ], "web-animations/interfaces/Animatable/getAnimations.html": [ @@ -631329,7 +631337,7 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/constructor.html": [ - "d382ddbbd6d9f84322d1a3e7b29e0c93f921e4fe", + "29fec0789ccb59ee62d433056038c14ade0eaa9b", "testharness" ], "web-animations/interfaces/KeyframeEffect/copy-constructor.html": [ @@ -631353,7 +631361,7 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/setKeyframes.html": [ - "8ef313bf46f963a5c0497374a058d05b702e7e11", + "477e983fcef02361c305918d10a67f2909cfa561", "testharness" ], "web-animations/interfaces/KeyframeEffect/setTarget.html": [ @@ -631373,11 +631381,11 @@ "support" ], "web-animations/resources/keyframe-tests.js": [ - "d19e526bb655bc21bbb1434404fa7fc094f3d593", + "52ffc50c4ebf0326db8f4e1d0cc1234f6c860dc2", "support" ], "web-animations/resources/keyframe-utils.js": [ - "486e975e10a00c6e01e9c930ef5581f498a2ddb5", + "08da0c81847809328bda0d6e0581711f7838916e", "support" ], "web-animations/resources/xhr-doc.py": [ @@ -631609,7 +631617,7 @@ "support" ], "webaudio/js/helpers.js": [ - "dff18a7e57adb3847b70fa7f1f3752b591b38d6e", + "3cb468605c1fa8e5005bc8552b15f7a37ee9b935", "support" ], "webaudio/js/lodash.js": [ @@ -631637,19 +631645,19 @@ "support" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html": [ - "c3f5f5969ed0ab58a9df332196e138aef8e693f3", + "e2320e33ef1df0155d5fcf536550e0e398b15407", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html": [ - "cfbeb7283e7375974943ccf689cca73942e6259f", + "26282412113f6298a90a2cac963a2b0de03ef43d", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html": [ - "f27d081b9b3df8af7449f130a455b90c6e93ca7b", + "2d9f397414f8d7b2b4c2da05d4476cd5d2ce9230", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html": [ - "1909a2970f0529ad0433c8e6e75733695d44d3e0", + "cb51b46db5e572c52502dc0dce465927fb3a2b87", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html": [ @@ -631888,12 +631896,16 @@ "69542dc107d881bf18dfff3203bfd7a9ec31b4ad", "wdspec" ], + "webdriver/tests/actions/modifier_click.py": [ + "2ec22f44973e6da3b9506ad7cc9fd0949f3ef8b5", + "wdspec" + ], "webdriver/tests/actions/mouse.py": [ "d7af66e45c8e306b4258b92c54ed86073fd21c8d", "wdspec" ], "webdriver/tests/actions/sequence.py": [ - "4244635ccbab0920eba8a2fa88645fa7333df363", + "970be95892e528c60ace38ea09398019019ca8c7", "wdspec" ], "webdriver/tests/actions/special_keys.py": [ diff --git a/testing/web-platform/tests/webdriver/tests/actions/modifier_click.py b/testing/web-platform/tests/webdriver/tests/actions/modifier_click.py new file mode 100644 index 000000000000..73de161119d8 --- /dev/null +++ b/testing/web-platform/tests/webdriver/tests/actions/modifier_click.py @@ -0,0 +1,74 @@ +# META: timeout=long + +import pytest + +from tests.actions.support.refine import filter_dict, get_events +from tests.actions.support.keys import Keys + + +@pytest.mark.parametrize("modifier, prop", [ + (Keys.CONTROL, "ctrlKey"), + (Keys.ALT, "altKey"), + (Keys.META, "metaKey"), + (Keys.SHIFT, "shiftKey"), + (Keys.R_CONTROL, "ctrlKey"), + (Keys.R_ALT, "altKey"), + (Keys.R_META, "metaKey"), + (Keys.R_SHIFT, "shiftKey"), +]) +def test_modifier_click(session, + test_actions_page, + key_chain, + mouse_chain, + modifier, + prop): + key_chain \ + .pause(0) \ + .key_down(modifier) \ + .pause(200) \ + .key_up(modifier) + outer = session.find.css("#outer", all=False) + mouse_chain.click(element=outer) + session.actions.perform([key_chain.dict, mouse_chain.dict]) + expected = [ + {"type": "mousemove"}, + {"type": "mousedown"}, + {"type": "mouseup"}, + {"type": "click"}, + ] + defaults = { + "altKey": False, + "metaKey": False, + "shiftKey": False, + "ctrlKey": False + } + for e in expected: + e.update(defaults) + if e["type"] != "mousemove": + e[prop] = True + filtered_events = [filter_dict(e, expected[0]) for e in get_events(session)] + assert expected == filtered_events + + +def test_release_control_click(session, key_reporter, key_chain, mouse_chain): + key_chain \ + .pause(0) \ + .key_down(Keys.CONTROL) + mouse_chain \ + .pointer_move(0, 0, origin=key_reporter) \ + .pointer_down() + session.actions.perform([key_chain.dict, mouse_chain.dict]) + session.execute_script(""" + var keyReporter = document.getElementById("keys"); + ["mousedown", "mouseup"].forEach((e) => { + keyReporter.addEventListener(e, recordPointerEvent); + }); + resetEvents(); + """) + session.actions.release() + expected = [ + {"type": "mouseup"}, + {"type": "keyup"}, + ] + events = [filter_dict(e, expected[0]) for e in get_events(session)] + assert events == expected diff --git a/testing/web-platform/tests/webdriver/tests/actions/sequence.py b/testing/web-platform/tests/webdriver/tests/actions/sequence.py index 3e83b15b3531..f80e0506bbf3 100644 --- a/testing/web-platform/tests/webdriver/tests/actions/sequence.py +++ b/testing/web-platform/tests/webdriver/tests/actions/sequence.py @@ -1,7 +1,5 @@ # META: timeout=long -import pytest - from tests.actions.support.refine import get_keys, filter_dict, get_events from tests.actions.support.keys import Keys @@ -36,74 +34,6 @@ def test_release_no_actions_sends_no_events(session, key_reporter): assert len(get_events(session)) == 0 -@pytest.mark.parametrize("modifier, prop", [ - (Keys.CONTROL, "ctrlKey"), - (Keys.ALT, "altKey"), - (Keys.META, "metaKey"), - (Keys.SHIFT, "shiftKey"), - (Keys.R_CONTROL, "ctrlKey"), - (Keys.R_ALT, "altKey"), - (Keys.R_META, "metaKey"), - (Keys.R_SHIFT, "shiftKey"), -]) -def test_control_click(session, - test_actions_page, - key_chain, - mouse_chain, - modifier, - prop): - key_chain \ - .pause(0) \ - .key_down(modifier) \ - .pause(200) \ - .key_up(modifier) - outer = session.find.css("#outer", all=False) - mouse_chain.click(element=outer) - session.actions.perform([key_chain.dict, mouse_chain.dict]) - expected = [ - {"type": "mousemove"}, - {"type": "mousedown"}, - {"type": "mouseup"}, - {"type": "click"}, - ] - defaults = { - "altKey": False, - "metaKey": False, - "shiftKey": False, - "ctrlKey": False - } - for e in expected: - e.update(defaults) - if e["type"] != "mousemove": - e[prop] = True - filtered_events = [filter_dict(e, expected[0]) for e in get_events(session)] - assert expected == filtered_events - - -def test_release_control_click(session, key_reporter, key_chain, mouse_chain): - key_chain \ - .pause(0) \ - .key_down(Keys.CONTROL) - mouse_chain \ - .pointer_move(0, 0, origin=key_reporter) \ - .pointer_down() - session.actions.perform([key_chain.dict, mouse_chain.dict]) - session.execute_script(""" - var keyReporter = document.getElementById("keys"); - ["mousedown", "mouseup"].forEach((e) => { - keyReporter.addEventListener(e, recordPointerEvent); - }); - resetEvents(); - """) - session.actions.release() - expected = [ - {"type": "mouseup"}, - {"type": "keyup"}, - ] - events = [filter_dict(e, expected[0]) for e in get_events(session)] - assert events == expected - - def test_many_modifiers_click(session, test_actions_page, key_chain, mouse_chain): outer = session.find.css("#outer", all=False) key_chain \