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,54 @@
|
||||
"""Integration tests for storage.get / storage.set — require a live browser."""
|
||||
import time
|
||||
|
||||
_KEY_PREFIX = "__pytest_storage_"
|
||||
|
||||
def test_storage_set_and_get_roundtrip(browser, http_tab):
|
||||
"""Set a localStorage key then read it back."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
key = _KEY_PREFIX + "roundtrip"
|
||||
value = "hello-storage"
|
||||
|
||||
browser("storage.set", {"key": key, "value": value, "type": "local", "tabId": http_tab["id"]})
|
||||
result = browser("storage.get", {"key": key, "type": "local", "tabId": http_tab["id"]})
|
||||
assert result == value
|
||||
|
||||
def test_storage_get_nonexistent_returns_null(browser, http_tab):
|
||||
"""Getting a key that was never set returns None."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
result = browser("storage.get", {
|
||||
"key": _KEY_PREFIX + "no_such_key_zzz",
|
||||
"type": "local",
|
||||
"tabId": http_tab["id"],
|
||||
})
|
||||
assert result is None
|
||||
|
||||
def test_storage_get_all_returns_dict(browser, http_tab):
|
||||
"""Calling storage.get without a key dumps all entries as a dict."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
# Plant at least one key so the dump isn't trivially empty
|
||||
browser("storage.set", {"key": _KEY_PREFIX + "dump", "value": "present", "type": "local", "tabId": http_tab["id"]})
|
||||
|
||||
result = browser("storage.get", {"key": None, "type": "local", "tabId": http_tab["id"]})
|
||||
assert isinstance(result, dict)
|
||||
assert _KEY_PREFIX + "dump" in result
|
||||
|
||||
def test_storage_session_type_roundtrip(browser, http_tab):
|
||||
"""sessionStorage works the same way as localStorage."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
key = _KEY_PREFIX + "session"
|
||||
value = "ses-val"
|
||||
|
||||
browser("storage.set", {"key": key, "value": value, "type": "session", "tabId": http_tab["id"]})
|
||||
result = browser("storage.get", {"key": key, "type": "session", "tabId": http_tab["id"]})
|
||||
assert result == value
|
||||
|
||||
def test_storage_overwrite_updates_value(browser, http_tab):
|
||||
"""Setting the same key twice reflects the latest value."""
|
||||
browser("tabs.active", {"tabId": http_tab["id"]})
|
||||
key = _KEY_PREFIX + "overwrite"
|
||||
|
||||
browser("storage.set", {"key": key, "value": "v1", "type": "local", "tabId": http_tab["id"]})
|
||||
browser("storage.set", {"key": key, "value": "v2", "type": "local", "tabId": http_tab["id"]})
|
||||
result = browser("storage.get", {"key": key, "type": "local", "tabId": http_tab["id"]})
|
||||
assert result == "v2"
|
||||
Reference in New Issue
Block a user