[wdspec] Add tests for double click when pointer is moved between clicks.
Differential Revision: https://phabricator.services.mozilla.com/D195094
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1681076
gecko-commit: 87d12c4bce4962097d2f6e3adf16c5bb0296767c
gecko-reviewers: webdriver-reviewers, whimboo
diff --git a/webdriver/tests/bidi/input/perform_actions/pointer_mouse_multiclick.py b/webdriver/tests/bidi/input/perform_actions/pointer_mouse_multiclick.py
index 87c2902..3538105 100644
--- a/webdriver/tests/bidi/input/perform_actions/pointer_mouse_multiclick.py
+++ b/webdriver/tests/bidi/input/perform_actions/pointer_mouse_multiclick.py
@@ -69,6 +69,45 @@
assert expected == filtered_events[1:]
+async def test_no_dblclick_when_mouse_moves(
+ bidi_session, top_context, load_static_test_page
+):
+ await load_static_test_page(page="test_actions.html")
+
+ div_point = {
+ "x": 82,
+ "y": 187,
+ }
+ actions = Actions()
+ (
+ actions.add_pointer()
+ .pointer_move(x=div_point["x"], y=div_point["y"])
+ .pointer_down(button=0)
+ .pointer_up(button=0)
+ .pointer_move(x=div_point["x"] + 10, y=div_point["y"] + 10)
+ .pointer_down(button=0)
+ .pointer_up(button=0)
+ )
+
+ await bidi_session.input.perform_actions(
+ actions=actions, context=top_context["context"]
+ )
+
+ events = await get_events(bidi_session, top_context["context"])
+
+ expected = [
+ {"type": "mousedown", "button": 0},
+ {"type": "mouseup", "button": 0},
+ {"type": "click", "button": 0},
+ {"type": "mousedown", "button": 0},
+ {"type": "mouseup", "button": 0},
+ {"type": "click", "button": 0},
+ ]
+
+ filtered_events = [filter_dict(e, expected[0]) for e in events]
+ assert expected == filtered_events[1:]
+
+
lots_of_text = (
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor "
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "
diff --git a/webdriver/tests/classic/perform_actions/pointer_dblclick.py b/webdriver/tests/classic/perform_actions/pointer_dblclick.py
index 659e27b..de83e77 100644
--- a/webdriver/tests/classic/perform_actions/pointer_dblclick.py
+++ b/webdriver/tests/classic/perform_actions/pointer_dblclick.py
@@ -31,3 +31,28 @@
assert len(events) == 8
filtered_events = [filter_dict(e, expected[0]) for e in events]
assert expected == filtered_events[1:]
+
+
+def test_no_dblclick_when_mouse_moves(session, test_actions_page, mouse_chain):
+ div_point = {
+ "x": 82,
+ "y": 187,
+ }
+ mouse_chain \
+ .pointer_move(div_point["x"], div_point["y"]) \
+ .click() \
+ .pointer_move(div_point["x"] + 10, div_point["y"] + 10) \
+ .click() \
+ .perform()
+ events = get_events(session)
+ expected = [
+ {"type": "mousedown", "button": 0},
+ {"type": "mouseup", "button": 0},
+ {"type": "click", "button": 0},
+ {"type": "mousedown", "button": 0},
+ {"type": "mouseup", "button": 0},
+ {"type": "click", "button": 0},
+ ]
+ assert len(events) == 7
+ filtered_events = [filter_dict(e, expected[0]) for e in events]
+ assert expected == filtered_events[1:]