Bug 1432105 - Stop pointer action tests from restarting Firefox; r=whimboo

MozReview-Commit-ID: 29P3Uit7U7V

--HG--
extra : rebase_source : 91bed0fa38cf5330d4058b0fe03829f33ec73a3c
This commit is contained in:
Maja Frydrychowicz 2018-02-12 10:48:31 -05:00
Родитель 23c32a1748
Коммит b3bb56d8ba
3 изменённых файлов: 23 добавлений и 85 удалений

Просмотреть файл

@ -384935,9 +384935,7 @@
"webdriver/tests/actions/modifier_click.py": [
[
"/webdriver/tests/actions/modifier_click.py",
{
"timeout": "long"
}
{}
]
],
"webdriver/tests/actions/mouse.py": [
@ -485294,7 +485292,7 @@
"support"
],
"css/css-fonts/font-feature-settings-serialization-001.html": [
"d1032e08aee1e9a7d1309ad94bd5633535ce9315",
"bf557e7f93663a36dab3ea358401b16c2e88811a",
"testharness"
],
"css/css-fonts/font-features-across-space-1-ref.html": [
@ -563110,7 +563108,7 @@
"support"
],
"interfaces/dom.idl": [
"52236516620dac45213fa06dc169f0c02e63a0c5",
"773c449a2f9a6bd9e35d0dd8a4c2e1eaa0266150",
"support"
],
"interfaces/fullscreen.idl": [
@ -592274,7 +592272,7 @@
"wdspec"
],
"webdriver/tests/actions/modifier_click.py": [
"88a384182fdd9df1515b9d8cfda8f56aed138ec7",
"f0ed71cbb6550ef496096541531f3b4fa3f4c6e2",
"wdspec"
],
"webdriver/tests/actions/mouse.py": [
@ -592282,7 +592280,7 @@
"wdspec"
],
"webdriver/tests/actions/mouse_dblclick.py": [
"f6afcb8c0fa017d58a9fcdd3cc474e0c8fd52db5",
"9ab61ed4fd678c04bdcc929466b4a867e5a2048e",
"wdspec"
],
"webdriver/tests/actions/pointer_origin.py": [

Просмотреть файл

@ -1,39 +1,9 @@
# META: timeout=long
import pytest
from tests.actions.support.refine import filter_dict, get_events
from tests.actions.support.keys import Keys
# Using local fixtures because we want to start a new session between
# each test, otherwise the clicks in each test interfere with each other.
@pytest.fixture(autouse=True)
def release_actions(mod_click_session, request):
request.addfinalizer(mod_click_session.actions.release)
@pytest.fixture
def mod_click_session(new_session, url, add_browser_capabilites):
_, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
session.url = url("/webdriver/tests/actions/support/test_actions_wdspec.html")
return session
@pytest.fixture
def key_chain(mod_click_session):
return mod_click_session.actions.sequence("key", "keyboard_id")
@pytest.fixture
def mouse_chain(mod_click_session):
return mod_click_session.actions.sequence(
"pointer",
"pointer_id",
{"pointerType": "mouse"})
@pytest.mark.parametrize("modifier, prop", [
(Keys.ALT, "altKey"),
(Keys.R_ALT, "altKey"),
@ -42,19 +12,15 @@ def mouse_chain(mod_click_session):
(Keys.SHIFT, "shiftKey"),
(Keys.R_SHIFT, "shiftKey"),
])
def test_modifier_click(mod_click_session,
key_chain,
mouse_chain,
modifier,
prop):
def test_modifier_click(session, test_actions_page, key_chain, mouse_chain, modifier, prop):
key_chain \
.pause(200) \
.key_down(modifier) \
.pause(200) \
.key_up(modifier)
outer = mod_click_session.find.css("#outer", all=False)
outer = session.find.css("#outer", all=False)
mouse_chain.click(element=outer)
mod_click_session.actions.perform([key_chain.dict, mouse_chain.dict])
session.actions.perform([key_chain.dict, mouse_chain.dict])
expected = [
{"type": "mousemove"},
{"type": "mousedown"},
@ -71,12 +37,12 @@ def test_modifier_click(mod_click_session,
e.update(defaults)
if e["type"] != "mousemove":
e[prop] = True
filtered_events = [filter_dict(e, expected[0]) for e in get_events(mod_click_session)]
filtered_events = [filter_dict(e, expected[0]) for e in get_events(session)]
assert expected == filtered_events
def test_many_modifiers_click(mod_click_session, key_chain, mouse_chain):
outer = mod_click_session.find.css("#outer", all=False)
def test_many_modifiers_click(session, test_actions_page, key_chain, mouse_chain):
outer = session.find.css("#outer", all=False)
key_chain \
.pause(0) \
.key_down(Keys.CONTROL) \
@ -92,7 +58,7 @@ def test_many_modifiers_click(mod_click_session, key_chain, mouse_chain):
.pause(0) \
.pause(0) \
.pointer_down()
mod_click_session.actions.perform([key_chain.dict, mouse_chain.dict])
session.actions.perform([key_chain.dict, mouse_chain.dict])
expected = [
{"type": "mousemove"},
# shift and ctrl presses
@ -113,5 +79,5 @@ def test_many_modifiers_click(mod_click_session, key_chain, mouse_chain):
for e in expected[1:4]:
e["shiftKey"] = True
e["ctrlKey"] = True
events = [filter_dict(e, expected[0]) for e in get_events(mod_click_session)]
events = [filter_dict(e, expected[0]) for e in get_events(session)]
assert events == expected

Просмотреть файл

@ -4,37 +4,11 @@ from tests.actions.support.mouse import get_inview_center, get_viewport_rect
from tests.actions.support.refine import get_events, filter_dict
from tests.support.asserts import assert_move_to_coordinates
_DBLCLICK_INTERVAL = 640
# Using local fixtures because we want to start a new session between
# each test, otherwise the clicks in each test interfere with each other.
@pytest.fixture(autouse=True)
def release_actions(dblclick_session, request):
# release all actions after each test
# equivalent to a teardown_function, but with access to session fixture
request.addfinalizer(dblclick_session.actions.release)
@pytest.fixture
def dblclick_session(new_session, url, add_browser_capabilites):
_, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
session.url = url("/webdriver/tests/actions/support/test_actions_wdspec.html")
return session
@pytest.fixture
def mouse_chain(dblclick_session):
return dblclick_session.actions.sequence(
"pointer",
"pointer_id",
{"pointerType": "mouse"})
@pytest.mark.parametrize("click_pause", [0, 200])
def test_dblclick_at_coordinates(dblclick_session, mouse_chain, click_pause):
def test_dblclick_at_coordinates(session, test_actions_page, mouse_chain, click_pause):
div_point = {
"x": 82,
"y": 187,
@ -45,7 +19,7 @@ def test_dblclick_at_coordinates(dblclick_session, mouse_chain, click_pause):
.pause(click_pause) \
.click() \
.perform()
events = get_events(dblclick_session)
events = get_events(session)
assert_move_to_coordinates(div_point, "outer", events)
expected = [
{"type": "mousedown", "button": 0},
@ -61,9 +35,9 @@ def test_dblclick_at_coordinates(dblclick_session, mouse_chain, click_pause):
assert expected == filtered_events[1:]
def test_dblclick_with_pause_after_second_pointerdown(dblclick_session, mouse_chain):
outer = dblclick_session.find.css("#outer", all=False)
center = get_inview_center(outer.rect, get_viewport_rect(dblclick_session))
def test_dblclick_with_pause_after_second_pointerdown(session, test_actions_page, mouse_chain):
outer = session.find.css("#outer", all=False)
center = get_inview_center(outer.rect, get_viewport_rect(session))
mouse_chain \
.pointer_move(int(center["x"]), int(center["y"])) \
.click() \
@ -71,7 +45,7 @@ def test_dblclick_with_pause_after_second_pointerdown(dblclick_session, mouse_ch
.pause(_DBLCLICK_INTERVAL + 10) \
.pointer_up() \
.perform()
events = get_events(dblclick_session)
events = get_events(session)
expected = [
{"type": "mousedown", "button": 0},
{"type": "mouseup", "button": 0},
@ -86,16 +60,16 @@ def test_dblclick_with_pause_after_second_pointerdown(dblclick_session, mouse_ch
assert expected == filtered_events[1:]
def test_no_dblclick(dblclick_session, mouse_chain):
outer = dblclick_session.find.css("#outer", all=False)
center = get_inview_center(outer.rect, get_viewport_rect(dblclick_session))
def test_no_dblclick(session, test_actions_page, mouse_chain):
outer = session.find.css("#outer", all=False)
center = get_inview_center(outer.rect, get_viewport_rect(session))
mouse_chain \
.pointer_move(int(center["x"]), int(center["y"])) \
.click() \
.pause(_DBLCLICK_INTERVAL + 10) \
.click() \
.perform()
events = get_events(dblclick_session)
events = get_events(session)
expected = [
{"type": "mousedown", "button": 0},
{"type": "mouseup", "button": 0},