Skip to content

Commit

Permalink
Parametrize capabilities tests.
Browse files Browse the repository at this point in the history
To be able to ignore tests for individual capabilities we need to
parametrize these tests.  geckodriver now supports setWindowRect,
but fails the proxy capability test because it is for some reason
not propagated back.

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1470659
gecko-commit: b5d9ec944fe0e33bdea383a1f0114ada1dcabdc3
gecko-integration-branch: mozilla-inbound
gecko-reviewers: whimboo
  • Loading branch information
andreastt authored and jgraham committed Aug 3, 2018
1 parent c1c2431 commit d0018e6
Showing 1 changed file with 31 additions and 41 deletions.
72 changes: 31 additions & 41 deletions webdriver/tests/new_session/response.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# META: timeout=long

import uuid

import pytest

from tests.support.asserts import assert_success


Expand All @@ -12,42 +12,32 @@ def test_sessionid(new_session, add_browser_capabilities):
uuid.UUID(hex=value["sessionId"])


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",
"acceptInsecureCerts",
"setWindowRect",
"timeouts",
"proxy",
"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_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"]
assert value["capabilities"]["acceptInsecureCerts"] is False
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"
@pytest.mark.parametrize("capability, type", [
("browserName", basestring),
("browserVersion", basestring),
("platformName", basestring),
("acceptInsecureCerts", bool),
("pageLoadStrategy", basestring),
("proxy", dict),
("setWindowRect", bool),
("timeouts", dict),
("unhandledPromptBehavior", basestring),
])
def test_capability_type(session, capability, type):
assert isinstance(session.capabilities, dict)
assert capability in session.capabilities
assert isinstance(session.capabilities[capability], type)


@pytest.mark.parametrize("capability, default_value", [
("acceptInsecureCerts", False),
("pageLoadStrategy", "normal"),
("proxy", {}),
("setWindowRect", True),
("timeouts", {"implicit": 0, "pageLoad": 300000, "script": 30000}),
("unhandledPromptBehavior", "dismiss and notify"),
])
def test_capability_default_value(session, capability, default_value):
assert isinstance(session.capabilities, dict)
assert capability in session.capabilities
assert session.capabilities[capability] == default_value

0 comments on commit d0018e6

Please sign in to comment.