Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /webdriver/tests/classic/new_session/invalid_capabilities.py - WPT Dashboard Interop Dashboard
import pytest
from .conftest import product, flatten
from tests.classic.new_session.support.create import invalid_data, invalid_extensions
from tests.support.asserts import assert_error
@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_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_capabilities, value):
capabilities = {"alwaysMatch": add_browser_capabilities({}), "firstMatch": value}
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
@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_capabilities, body, key, value):
capabilities = body(key, value)
if "alwaysMatch" in capabilities:
capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")
@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_capabilities, body, key):
capabilities = body(key, {})
if "alwaysMatch" in capabilities:
capabilities["alwaysMatch"] = add_browser_capabilities(capabilities["alwaysMatch"])
else:
capabilities["firstMatch"][0] = add_browser_capabilities(capabilities["firstMatch"][0])
response, _ = new_session({"capabilities": capabilities})
assert_error(response, "invalid argument")