fix moving of browser groups and allow to store groups into session

This commit is contained in:
2026-04-09 23:38:00 +02:00
parent eaa86e3f3d
commit c5a4218da0
3 changed files with 226 additions and 21 deletions
+54 -1
View File
@@ -38,9 +38,62 @@ def test_session_remove(browser):
assert SESSION_NAME + "_remove" not in names
def test_session_load_restores_group_metadata(browser):
session_name = SESSION_NAME + "_groups"
group_name = "__session_group_restore__"
group_url = "https://example.com/?session-group=1"
group = browser("group.open", {"name": group_name})
gid = group["id"]
created_ids = set()
try:
added = browser("group.add_tab", {"group": str(gid), "url": group_url})
created_ids.add(added["tabId"])
browser("session.save", {"name": session_name})
original_tabs = browser("group.tabs", {"groupId": gid})
created_ids.update(t["id"] for t in original_tabs)
browser("group.close", {"groupId": gid})
for tab_id in list(created_ids):
try:
browser("tabs.close", {"tabId": tab_id})
except Exception:
pass
baseline_ids = {t["id"] for t in browser("tabs.list")}
browser("session.load", {"name": session_name})
tabs_after = browser("tabs.list")
loaded_ids = {t["id"] for t in tabs_after} - baseline_ids
restored_groups = browser("group.query", {"search": group_name})
assert restored_groups, "Expected saved group to be restored"
restored = next((g for g in restored_groups if g.get("title") == group_name), None)
assert restored is not None
restored_tabs = browser("group.tabs", {"groupId": restored["id"]})
restored_urls = {t["url"] for t in restored_tabs}
assert group_url in restored_urls
browser("group.close", {"groupId": restored["id"]})
for tab_id in loaded_ids:
try:
browser("tabs.close", {"tabId": tab_id})
except Exception:
pass
finally:
try:
browser("session.remove", {"name": session_name})
except Exception:
pass
def teardown_module(module):
"""Clean up test sessions after all tests run."""
for name in [SESSION_NAME, SESSION_NAME + "_a", SESSION_NAME + "_b"]:
for name in [SESSION_NAME, SESSION_NAME + "_a", SESSION_NAME + "_b", SESSION_NAME + "_groups"]:
try:
send_command("session.remove", {"name": name})
except Exception: