blob: 75143d85ca600b3e3a2d7d5ac3679a26b7d7bf5a [file] [log] [blame]
# META: timeout=long
from tests.release_actions.support.refine import get_events, get_keys
from tests.support.helpers import filter_dict
def test_release_no_actions_sends_no_events(session, key_reporter):
session.actions.release()
assert len(get_keys(key_reporter)) == 0
assert len(get_events(session)) == 0
def test_release_char_sequence_sends_keyup_events_in_reverse(session,
key_reporter,
key_chain):
key_chain \
.key_down("a") \
.key_down("b") \
.perform()
# reset so we only see the release events
session.execute_script("resetEvents();")
session.actions.release()
expected = [
{"code": "KeyB", "key": "b", "type": "keyup"},
{"code": "KeyA", "key": "a", "type": "keyup"},
]
all_events = get_events(session)
events = [filter_dict(e, expected[0]) for e in all_events]
if len(events) > 0 and events[0]["code"] is None:
# Remove 'code' entry if browser doesn't support it
expected = [filter_dict(e, {"key": "", "type": ""}) for e in expected]
events = [filter_dict(e, expected[0]) for e in events]
assert events == expected
def test_release_mouse_sequence_resets_dblclick_state(session,
test_actions_page,
mouse_chain):
reporter = session.find.css("#outer", all=False)
mouse_chain \
.click(element=reporter) \
.perform()
session.actions.release()
mouse_chain \
.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},
]
filtered_events = [filter_dict(e, expected[0]) for e in events]
assert expected == filtered_events[1:]
def test_no_release_mouse_sequence_keeps_dblclick_state(session,
test_actions_page,
mouse_chain):
reporter = session.find.css("#outer", all=False)
mouse_chain \
.click(element=reporter) \
.perform()
mouse_chain \
.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},
{"type": "dblclick", "button": 0},
]
filtered_events = [filter_dict(e, expected[0]) for e in events]
assert expected == filtered_events[1:]