[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:]