"""Tests for windows.* commands.""" def test_windows_list(browser): windows = browser("windows.list") assert isinstance(windows, list) assert len(windows) >= 1 def test_windows_each_has_required_fields(browser): windows = browser("windows.list") for w in windows: assert "id" in w assert isinstance(w["id"], int) assert "tabCount" in w assert isinstance(w["tabCount"], int) def test_windows_has_state(browser): windows = browser("windows.list") # Every window should report a state (normal, minimized, maximized, fullscreen) for w in windows: assert "state" in w def test_windows_open_and_close(browser): result = browser("windows.open", {}) assert isinstance(result, dict) new_id = result["id"] windows = browser("windows.list") assert any(w["id"] == new_id for w in windows) browser("windows.close", {"windowId": new_id}) windows_after = browser("windows.list") assert new_id not in [w["id"] for w in windows_after] def test_windows_tab_count_positive(browser): windows = browser("windows.list") for w in windows: assert w["tabCount"] >= 0 def test_windows_rename(browser): result = browser("windows.open", {}) new_id = result["id"] try: rename_result = browser("windows.rename", {"windowId": new_id, "name": "__test_alias__"}) assert isinstance(rename_result, dict) windows = browser("windows.list") match = next((w for w in windows if w["id"] == new_id), None) assert match is not None assert match.get("alias") == "__test_alias__" finally: browser("windows.close", {"windowId": new_id})