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