--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -619971,17 +619971,17 @@
"8c22860607cb0f3d610888c9816bf2384e2c5445",
"wdspec"
],
"webdriver/tests/close_window/user_prompts.py": [
"e263ab43c4fa2525fc252a887f77e7b3eec60fd8",
"wdspec"
],
"webdriver/tests/conftest.py": [
- "6d40ad141aea1a1ec6458c32694ef72ef5314569",
+ "ab3d9928bc95453d1a624b894333ed7582a538e2",
"support"
],
"webdriver/tests/delete_all_cookies/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/delete_all_cookies/delete.py": [
"1248b2e14b6b690b996f8bf620a6a1f33514256a",
@@ -620319,41 +620319,41 @@
"6274392529489518207961ed5e6b6bb3ff081572",
"wdspec"
],
"webdriver/tests/new_session/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/new_session/conftest.py": [
- "72798e95422e70158c26b60aabc27a480bac8758",
+ "84d255cc36553dd1e539a821477302f3671a760c",
"support"
],
"webdriver/tests/new_session/create_alwaysMatch.py": [
- "d0100b96ccdcc99bccd7bd611bd9df2f51c4a728",
+ "7f0524d63065aa566a85e4a13be23e20fafac1a3",
"wdspec"
],
"webdriver/tests/new_session/create_firstMatch.py": [
- "a3f2156bea16ae9eb270794a2b5a0c1a39c3e631",
+ "dabcb551c4887e1fcff2c592ead0ed2fc4e093a0",
"wdspec"
],
"webdriver/tests/new_session/default_values.py": [
- "596830d45fc6c9f8a5ad1e91f79d580adf32ff54",
+ "5098317d830e827f577662dabcb4388dff776609",
"wdspec"
],
"webdriver/tests/new_session/invalid_capabilities.py": [
- "547c60d0dd9a5596e7f06a026ee04f071c46e4f5",
+ "ead06abab030c160f978e54ce33d4b800fdb6fea",
"wdspec"
],
"webdriver/tests/new_session/merge.py": [
- "5022b2f05cb618167ad7d6a23f886c7f39907212",
+ "4a17fed5d366756420f7cac29696e612f405b2a0",
"wdspec"
],
"webdriver/tests/new_session/response.py": [
- "6093d95910f0994a8189f3d8df223ccc7ef97062",
+ "a9021a93a0355e306a8fdbb1a820bb57562e354f",
"wdspec"
],
"webdriver/tests/new_session/support/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/new_session/support/create.py": [
"4bfb99fd4ba44ab5b4e70e9246cbb200c098ae89",
@@ -620415,17 +620415,17 @@
"5a31a3917a5157516c10951a3b3d5ffb43b992d9",
"support"
],
"webdriver/tests/support/asserts.py": [
"b7424061b41d9bb1b87f147d5b29786695249d10",
"support"
],
"webdriver/tests/support/fixtures.py": [
- "0ae7915e0bcc0cc5960fdc2e47161a3a888a924e",
+ "d24a7f39787d4d950743bafe9910ea21a54b34ec",
"support"
],
"webdriver/tests/support/http_request.py": [
"cb40c781fea2280b98135522def5e6a116d7b946",
"support"
],
"webdriver/tests/support/inline.py": [
"48399821b7abca50df824e37c41829d7a4573be1",
--- a/testing/web-platform/tests/webdriver/tests/conftest.py
+++ b/testing/web-platform/tests/webdriver/tests/conftest.py
@@ -1,12 +1,11 @@
import pytest
from tests.support.fixtures import (
- add_browser_capabilites,
add_event_listeners,
configuration,
create_dialog,
create_frame,
create_window,
current_session,
http,
server_config,
@@ -22,17 +21,16 @@ def capabilities():
def pytest_generate_tests(metafunc):
if "capabilities" in metafunc.fixturenames:
marker = metafunc.definition.get_closest_marker(name="capabilities")
if marker:
metafunc.parametrize("capabilities", marker.args, ids=None)
-pytest.fixture()(add_browser_capabilites)
pytest.fixture()(add_event_listeners)
pytest.fixture(scope="session")(configuration)
pytest.fixture()(create_dialog)
pytest.fixture()(create_frame)
pytest.fixture()(create_window)
pytest.fixture(scope="function")(current_session)
pytest.fixture()(http)
pytest.fixture()(server_config)
--- a/testing/web-platform/tests/webdriver/tests/new_session/conftest.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/conftest.py
@@ -8,16 +8,30 @@ from webdriver.transport import HTTPWire
def product(a, b):
return [(a, item) for item in b]
def flatten(l):
return [item for x in l for item in x]
+@pytest.fixture(name="add_browser_capabilities")
+def fixture_add_browser_capabilities(configuration):
+
+ def add_browser_capabilities(capabilities):
+ # Make sure there aren't keys in common.
+ assert not set(configuration["capabilities"]).intersection(set(capabilities))
+ result = dict(configuration["capabilities"])
+ result.update(capabilities)
+
+ return result
+
+ return add_browser_capabilities
+
+
@pytest.fixture(name="new_session")
def fixture_new_session(request, configuration, current_session):
"""Start a new session for tests which themselves test creating new sessions.
:param body: The content of the body for the new session POST request.
:param delete_existing_session: Allows the fixture to delete an already
created custom session before the new session is getting created. This
--- a/testing/web-platform/tests/webdriver/tests/new_session/create_alwaysMatch.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/create_alwaysMatch.py
@@ -4,13 +4,13 @@ import pytest
from conftest import product, flatten
from tests.support.asserts import assert_success
from tests.new_session.support.create import valid_data
@pytest.mark.parametrize("key,value", flatten(product(*item) for item in valid_data))
-def test_valid(new_session, add_browser_capabilites, key, value):
+def test_valid(new_session, add_browser_capabilities, key, value):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({key: value})}})
+ "alwaysMatch": add_browser_capabilities({key: value})}})
assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/new_session/create_firstMatch.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/create_firstMatch.py
@@ -5,12 +5,12 @@ import pytest
from conftest import product, flatten
from tests.support.asserts import assert_success
from tests.new_session.support.create import valid_data
@pytest.mark.parametrize("key,value", flatten(product(*item) for item in valid_data))
-def test_valid(new_session, add_browser_capabilites, key, value):
+def test_valid(new_session, add_browser_capabilities, key, value):
response, _ = new_session({"capabilities": {
- "firstMatch": [add_browser_capabilites({key: value})]}})
+ "firstMatch": [add_browser_capabilities({key: value})]}})
assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/new_session/default_values.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/default_values.py
@@ -1,55 +1,55 @@
# META: timeout=long
from tests.support.asserts import assert_error, assert_success
-def test_basic(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_basic(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
value = assert_success(response)
assert set(value.keys()) == {"sessionId", "capabilities"}
-def test_repeat_new_session(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_repeat_new_session(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
assert_success(response)
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
assert_error(response, "session not created")
def test_no_capabilites(new_session):
response, _ = new_session({})
assert_error(response, "invalid argument")
-def test_missing_first_match(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_missing_first_match(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
assert_success(response)
-def test_missing_always_match(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"firstMatch": [add_browser_capabilites({})]}})
+def test_missing_always_match(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"firstMatch": [add_browser_capabilities({})]}})
assert_success(response)
-def test_desired(new_session, add_browser_capabilites):
- response, _ = new_session({"desiredCapbilities": add_browser_capabilites({})})
+def test_desired(new_session, add_browser_capabilities):
+ response, _ = new_session({"desiredCapbilities": add_browser_capabilities({})})
assert_error(response, "invalid argument")
-def test_ignore_non_spec_fields_in_capabilities(new_session, add_browser_capabilites):
+def test_ignore_non_spec_fields_in_capabilities(new_session, add_browser_capabilities):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({}),
+ "alwaysMatch": add_browser_capabilities({}),
"desiredCapbilities": {"pageLoadStrategy": "eager"},
}})
value = assert_success(response)
assert value["capabilities"]["pageLoadStrategy"] == "normal"
-def test_valid_but_unmatchable_key(new_session, add_browser_capabilites):
+def test_valid_but_unmatchable_key(new_session, add_browser_capabilities):
response, _ = new_session({"capabilities": {"firstMatch": [
- add_browser_capabilites({"pageLoadStrategy": "eager", "foo:unmatchable": True}),
+ add_browser_capabilities({"pageLoadStrategy": "eager", "foo:unmatchable": True}),
{"pageLoadStrategy": "none"},
]}})
value = assert_success(response)
assert value["capabilities"]["pageLoadStrategy"] == "none"
--- a/testing/web-platform/tests/webdriver/tests/new_session/invalid_capabilities.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/invalid_capabilities.py
@@ -6,26 +6,26 @@ from conftest import product, flatten
@pytest.mark.parametrize("value", [None, 1, "{}", []])
def test_invalid_capabilites(new_session, value):
response, _ = new_session({"capabilities": value})
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [None, 1, "{}", []])
-def test_invalid_always_match(new_session, add_browser_capabilites, value):
- capabilities = {"alwaysMatch": value, "firstMatch": [add_browser_capabilites({})]}
+def test_invalid_always_match(new_session, add_browser_capabilities, value):
+ capabilities = {"alwaysMatch": value, "firstMatch": [add_browser_capabilities({})]}
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [None, 1, "[]", {}])
-def test_invalid_first_match(new_session, add_browser_capabilites, value):
- capabilities = {"alwaysMatch": add_browser_capabilites({}), "firstMatch": value}
+def test_invalid_first_match(new_session, add_browser_capabilities, value):
+ capabilities = {"alwaysMatch": add_browser_capabilities({}), "firstMatch": value}
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
invalid_data = [
("acceptInsecureCerts", [1, [], {}, "false"]),
("browserName", [1, [], {}, False]),
@@ -47,22 +47,22 @@ invalid_data = [
("unhandledPromptBehavior", [1, [], {}, False, "DISMISS", "dismissABC", "Accept",
" dismiss", "dismiss "])
]
@pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
lambda key, value: {"firstMatch": [{key: value}]}])
@pytest.mark.parametrize("key,value", flatten(product(*item) for item in invalid_data))
-def test_invalid_values(new_session, add_browser_capabilites, body, key, value):
+def test_invalid_values(new_session, add_browser_capabilities, body, key, value):
capabilities = body(key, value)
if "alwaysMatch" in capabilities:
- capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
+ capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
- capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
+ capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
invalid_extensions = [
"firefox",
"firefox_binary",
@@ -86,17 +86,17 @@ invalid_extensions = [
"safari.options",
"ensureCleanSession",
]
@pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
lambda key, value: {"firstMatch": [{key: value}]}])
@pytest.mark.parametrize("key", invalid_extensions)
-def test_invalid_extensions(new_session, add_browser_capabilites, body, key):
+def test_invalid_extensions(new_session, add_browser_capabilities, body, key):
capabilities = body(key, {})
if "alwaysMatch" in capabilities:
- capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
+ capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
- capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
+ capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
--- a/testing/web-platform/tests/webdriver/tests/new_session/merge.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/merge.py
@@ -4,22 +4,22 @@ import pytest
from tests.support.asserts import assert_error, assert_success
from conftest import platform_name
@pytest.mark.skipif(platform_name() is None, reason="Unsupported platform")
@pytest.mark.parametrize("body", [lambda key, value: {"alwaysMatch": {key: value}},
lambda key, value: {"firstMatch": [{key: value}]}])
-def test_platform_name(new_session, add_browser_capabilites, platform_name, body):
+def test_platform_name(new_session, add_browser_capabilities, platform_name, body):
capabilities = body("platformName", platform_name)
if "alwaysMatch" in capabilities:
- capabilities["alwaysMatch"] = add_browser_capabilites(capabilities["alwaysMatch"])
+ capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
- capabilities["firstMatch"][0] = add_browser_capabilites(capabilities["firstMatch"][0])
+ capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
value = assert_success(response)
assert value["capabilities"]["platformName"] == platform_name
invalid_merge = [
@@ -27,53 +27,53 @@ invalid_merge = [
("unhandledPromptBehavior", ("accept", "accept")),
("unhandledPromptBehavior", ("accept", "dismiss")),
("timeouts", ({"script": 10}, {"script": 10})),
("timeouts", ({"script": 10}, {"pageLoad": 10})),
]
@pytest.mark.parametrize("key,value", invalid_merge)
-def test_merge_invalid(new_session, add_browser_capabilites, key, value):
+def test_merge_invalid(new_session, add_browser_capabilities, key, value):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({key: value[0]}),
+ "alwaysMatch": add_browser_capabilities({key: value[0]}),
"firstMatch": [{}, {key: value[1]}],
}})
assert_error(response, "invalid argument")
@pytest.mark.skipif(platform_name() is None, reason="Unsupported platform")
-def test_merge_platformName(new_session, add_browser_capabilites, platform_name):
+def test_merge_platformName(new_session, add_browser_capabilities, platform_name):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
+ "alwaysMatch": add_browser_capabilities({"timeouts": {"script": 10}}),
"firstMatch": [{
"platformName": platform_name.upper(),
"pageLoadStrategy": "none",
}, {
"platformName": platform_name,
"pageLoadStrategy": "eager",
}]}})
value = assert_success(response)
assert value["capabilities"]["platformName"] == platform_name
assert value["capabilities"]["pageLoadStrategy"] == "eager"
-def test_merge_browserName(new_session, add_browser_capabilites):
- response, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_merge_browserName(new_session, add_browser_capabilities):
+ response, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
value = assert_success(response)
browser_settings = {
"browserName": value["capabilities"]["browserName"],
"browserVersion": value["capabilities"]["browserVersion"],
}
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({"timeouts": {"script": 10}}),
+ "alwaysMatch": add_browser_capabilities({"timeouts": {"script": 10}}),
"firstMatch": [{
"browserName": browser_settings["browserName"] + "invalid",
"pageLoadStrategy": "none",
}, {
"browserName": browser_settings["browserName"],
"pageLoadStrategy": "eager",
}]}}, delete_existing_session=True)
value = assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/new_session/response.py
+++ b/testing/web-platform/tests/webdriver/tests/new_session/response.py
@@ -1,24 +1,24 @@
# META: timeout=long
import uuid
from tests.support.asserts import assert_success
-def test_sessionid(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_sessionid(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
value = assert_success(response)
assert isinstance(value["sessionId"], basestring)
uuid.UUID(hex=value["sessionId"])
-def test_capabilites(new_session, add_browser_capabilites):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_capabilites(new_session, add_browser_capabilities):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
value = assert_success(response)
assert isinstance(value["capabilities"], dict)
all_capabilities = set(value["capabilities"].keys())
expected_capabilities = {
"browserName",
"browserVersion",
"platformName",
@@ -29,18 +29,18 @@ def test_capabilites(new_session, add_br
"pageLoadStrategy",
}
assert expected_capabilities.issubset(all_capabilities), (
"{0} cannot be found in {1}".format(
list(expected_capabilities - all_capabilities), all_capabilities))
-def test_data(new_session, add_browser_capabilites, platform_name):
- response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
+def test_data(new_session, add_browser_capabilities, platform_name):
+ response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
value = assert_success(response)
assert isinstance(value["capabilities"]["browserName"], basestring)
assert isinstance(value["capabilities"]["browserVersion"], basestring)
if platform_name:
assert value["capabilities"]["platformName"] == platform_name
else:
assert "platformName" in value["capabilities"]
@@ -48,27 +48,27 @@ def test_data(new_session, add_browser_c
assert isinstance(value["capabilities"]["setWindowRect"], bool)
assert value["capabilities"]["timeouts"]["implicit"] == 0
assert value["capabilities"]["timeouts"]["pageLoad"] == 300000
assert value["capabilities"]["timeouts"]["script"] == 30000
assert value["capabilities"]["proxy"] == {}
assert value["capabilities"]["pageLoadStrategy"] == "normal"
-def test_timeouts(new_session, add_browser_capabilites, platform_name):
+def test_timeouts(new_session, add_browser_capabilities, platform_name):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({"timeouts": {"implicit": 1000}}),
+ "alwaysMatch": add_browser_capabilities({"timeouts": {"implicit": 1000}}),
}})
value = assert_success(response)
assert value["capabilities"]["timeouts"] == {
"implicit": 1000,
"pageLoad": 300000,
"script": 30000
}
-def test_pageLoadStrategy(new_session, add_browser_capabilites, platform_name):
+def test_pageLoadStrategy(new_session, add_browser_capabilities, platform_name):
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilites({"pageLoadStrategy": "eager"})}})
+ "alwaysMatch": add_browser_capabilities({"pageLoadStrategy": "eager"})}})
value = assert_success(response)
assert value["capabilities"]["pageLoadStrategy"] == "eager"
--- a/testing/web-platform/tests/webdriver/tests/support/fixtures.py
+++ b/testing/web-platform/tests/webdriver/tests/support/fixtures.py
@@ -220,26 +220,16 @@ def session(capabilities, configuration,
return _current_session
def current_session():
return _current_session
-def add_browser_capabilites(configuration):
- def update_capabilities(capabilities):
- # Make sure there aren't keys in common.
- assert not set(configuration["capabilities"]).intersection(set(capabilities))
- result = dict(configuration["capabilities"])
- result.update(capabilities)
- return result
- return update_capabilities
-
-
def url(server_config):
def inner(path, protocol="http", query="", fragment=""):
port = server_config["ports"][protocol][0]
host = "%s:%s" % (server_config["browser_host"], port)
return urlparse.urlunsplit((protocol, host, path, query, fragment))
inner.__name__ = "url"
return inner