blob: c073d03e70ecc5e2b783cec4a79ac475609467db [file] [log] [blame]
from os.path import join, dirname
import pytest
from wptserve.config import ConfigBuilder
from ..base import active_products
from wptrunner import environment, products
test_paths = {"/": {"tests_path": join(dirname(__file__), "..", "..", "..", "..", "..")}} # repo root
environment.do_delayed_imports(None, test_paths)
@active_products("product")
def test_webkitgtk_certificate_domain_list(product):
def domain_is_inside_certificate_list_cert(domain_to_find, webkitgtk_certificate_list, cert_file):
for domain in webkitgtk_certificate_list:
if domain["host"] == domain_to_find and domain["certificateFile"] == cert_file:
return True
return False
if product not in ["epiphany", "webkit", "webkitgtk_minibrowser"]:
pytest.skip("%s doesn't support certificate_domain_list" % product)
(check_args,
target_browser_cls, get_browser_kwargs,
executor_classes, get_executor_kwargs,
env_options, get_env_extras, run_info_extras) = products.load_product({}, product)
cert_file = "/home/user/wpt/tools/certs/cacert.pem"
valid_domains_test = ["a.example.org", "b.example.org", "example.org",
"a.example.net", "b.example.net", "example.net"]
invalid_domains_test = ["x.example.org", "y.example.org", "example.it",
"x.example.net", "y.example.net", "z.example.net"]
kwargs = {}
kwargs["timeout_multiplier"] = 1
kwargs["debug_info"] = None
kwargs["host_cert_path"] = cert_file
kwargs["webkit_port"] = "gtk"
kwargs["binary"] = None
kwargs["webdriver_binary"] = None
kwargs["pause_after_test"] = False
kwargs["pause_on_unexpected"] = False
with ConfigBuilder(browser_host="example.net",
alternate_hosts={"alt": "example.org"},
subdomains={"a", "b"},
not_subdomains={"x", "y"}) as env_config:
executor_args = get_executor_kwargs(None, None, env_config, None, None, **kwargs)
assert('capabilities' in executor_args)
assert('webkitgtk:browserOptions' in executor_args['capabilities'])
assert('certificates' in executor_args['capabilities']['webkitgtk:browserOptions'])
cert_list = executor_args['capabilities']['webkitgtk:browserOptions']['certificates']
for valid_domain in valid_domains_test:
assert(domain_is_inside_certificate_list_cert(valid_domain, cert_list, cert_file))
assert(not domain_is_inside_certificate_list_cert(valid_domain, cert_list, cert_file + ".backup_non_existent"))
for invalid_domain in invalid_domains_test:
assert(not domain_is_inside_certificate_list_cert(invalid_domain, cert_list, cert_file))
assert(not domain_is_inside_certificate_list_cert(invalid_domain, cert_list, cert_file + ".backup_non_existent"))