blob: 6620f4df2a8999df28636de7a2121aa691d9d71b [file] [log] [blame]
import pytest
from webdriver.transport import Response
from tests.support.asserts import assert_error, assert_success
def set_timeouts(session, timeouts):
return session.transport.send(
"POST", "session/{session_id}/timeouts".format(**vars(session)),
timeouts)
def test_null_parameter_value(session, http):
path = "/session/{session_id}/timeouts".format(**vars(session))
with http.post(path, None) as response:
assert_error(Response.from_http(response), "invalid argument")
def test_null_response_value(session):
timeouts = {"implicit": 10, "pageLoad": 10, "script": 10}
response = set_timeouts(session, timeouts)
value = assert_success(response)
assert value is None
@pytest.mark.parametrize("value", [1, "{}", False, []])
def test_parameters_invalid(session, value):
response = set_timeouts(session, value)
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [{}, {"a": 42}])
def test_parameters_unknown_fields(session, value):
original = session.timeouts._get()
response = set_timeouts(session, value)
assert_success(response)
assert session.timeouts._get() == original
def test_script_parameter_empty_no_change(session):
original = session.timeouts._get()
response = set_timeouts(session, {"implicit": 100})
assert_success(response)
assert session.timeouts._get()["script"] == original["script"]
@pytest.mark.parametrize("typ", ["implicit", "pageLoad", "script"])
@pytest.mark.parametrize("value", [0, 2.0, 2**53 - 1])
def test_positive_integer(session, typ, value):
response = set_timeouts(session, {typ: value})
assert_success(response)
assert session.timeouts._get(typ) == value
@pytest.mark.parametrize("typ", ["implicit", "pageLoad"])
@pytest.mark.parametrize("value", [None, [], {}, False, "10"])
def test_value_invalid_types(session, typ, value):
response = set_timeouts(session, {typ: value})
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [[], {}, False, "10"])
def test_value_invalid_types_for_script(session, value):
response = set_timeouts(session, {"script": value})
assert_error(response, "invalid argument")
@pytest.mark.parametrize("typ", ["implicit", "pageLoad", "script"])
@pytest.mark.parametrize("value", [-1, 2.5, 2**53])
def test_value_positive_integer(session, typ, value):
response = set_timeouts(session, {typ: value})
assert_error(response, "invalid argument")
def test_set_all_fields(session):
timeouts = {"implicit": 10, "pageLoad": 20, "script": 30}
response = set_timeouts(session, timeouts)
assert_success(response)
assert session.timeouts.implicit == 10
assert session.timeouts.page_load == 20
assert session.timeouts.script == 30
def test_script_value_null(session):
response = set_timeouts(session, {"script": None})
assert_success(response)
assert session.timeouts.script is None