test: expand browser command coverage
- Add mocked Click CLI tests across DOM, cookies, page, storage, perf, navigation, tabs, groups, sessions, and windows commands. - Cover integration paths for cookies, page info, performance profiles, and web storage commands. - Extend DOM integration coverage for eval, scrolling, waiting, focus, hover, typing, selection, keyboard, and checkbox interactions. - Add native host unit coverage for message framing, socket helpers, paging guards, timeouts, and profile alias resolution.
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
"""Integration tests for cookies.* commands — require a live browser."""
|
||||
import time
|
||||
|
||||
def test_cookies_list_returns_list(browser, http_tab):
|
||||
"""cookies.list returns a list (may be empty on a plain https://example.com)."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
cookies = browser("cookies.list", {})
|
||||
assert isinstance(cookies, list)
|
||||
|
||||
def test_cookies_list_has_required_fields(browser, http_tab):
|
||||
"""Every cookie returned has at least name, domain and path fields."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
# Set a known cookie so the list is non-empty
|
||||
browser("cookies.set", {
|
||||
"url": "https://example.com",
|
||||
"name": "__pytest_field_check",
|
||||
"value": "1",
|
||||
})
|
||||
cookies = browser("cookies.list", {"url": "https://example.com"})
|
||||
assert isinstance(cookies, list)
|
||||
assert len(cookies) > 0
|
||||
for c in cookies:
|
||||
assert "name" in c
|
||||
assert "domain" in c
|
||||
assert "path" in c
|
||||
|
||||
def test_cookies_set_and_list(browser, http_tab):
|
||||
"""Set a cookie and verify it appears in the list."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
cookie_name = "__pytest_set_test"
|
||||
cookie_value = "hello-pytest"
|
||||
|
||||
browser("cookies.set", {
|
||||
"url": "https://example.com",
|
||||
"name": cookie_name,
|
||||
"value": cookie_value,
|
||||
})
|
||||
|
||||
cookies = browser("cookies.list", {"url": "https://example.com"})
|
||||
found = next((c for c in cookies if c.get("name") == cookie_name), None)
|
||||
assert found is not None, f"Cookie '{cookie_name}' not found after set"
|
||||
assert found["value"] == cookie_value
|
||||
|
||||
def test_cookies_get(browser, http_tab):
|
||||
"""Get a single cookie by URL + name."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
name = "__pytest_get_test"
|
||||
value = "get-value-42"
|
||||
|
||||
browser("cookies.set", {"url": "https://example.com", "name": name, "value": value})
|
||||
|
||||
cookie = browser("cookies.get", {"url": "https://example.com", "name": name})
|
||||
assert cookie is not None
|
||||
assert cookie.get("value") == value
|
||||
|
||||
def test_cookies_get_missing_returns_none(browser, http_tab):
|
||||
"""Getting a non-existent cookie returns None."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
cookie = browser("cookies.get", {
|
||||
"url": "https://example.com",
|
||||
"name": "__pytest_no_such_cookie_zzz",
|
||||
})
|
||||
assert cookie is None
|
||||
|
||||
def test_cookies_list_filter_by_domain(browser, http_tab):
|
||||
"""Filtering by domain only returns matching cookies."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
browser("cookies.set", {
|
||||
"url": "https://example.com",
|
||||
"name": "__pytest_domain_filter",
|
||||
"value": "yes",
|
||||
})
|
||||
cookies = browser("cookies.list", {"domain": "example.com"})
|
||||
assert isinstance(cookies, list)
|
||||
for c in cookies:
|
||||
assert "example.com" in c.get("domain", "")
|
||||
|
||||
def test_cookies_list_filter_by_name(browser, http_tab):
|
||||
"""Filtering by name only returns cookies with that name."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
name = "__pytest_name_filter_unique"
|
||||
browser("cookies.set", {"url": "https://example.com", "name": name, "value": "y"})
|
||||
|
||||
cookies = browser("cookies.list", {"name": name})
|
||||
assert isinstance(cookies, list)
|
||||
assert len(cookies) > 0
|
||||
for c in cookies:
|
||||
assert c["name"] == name
|
||||
|
||||
def test_cookies_set_with_secure_flag(browser, http_tab):
|
||||
"""Setting a cookie with secure=True persists the secure attribute."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
name = "__pytest_secure_cookie"
|
||||
browser("cookies.set", {
|
||||
"url": "https://example.com",
|
||||
"name": name,
|
||||
"value": "secured",
|
||||
"secure": True,
|
||||
})
|
||||
cookies = browser("cookies.list", {"url": "https://example.com", "name": name})
|
||||
found = next((c for c in cookies if c["name"] == name), None)
|
||||
assert found is not None
|
||||
assert found.get("secure") is True
|
||||
Reference in New Issue
Block a user