blob: 9864227374e328514d54596f611c474c6f0fe3f3 [file] [log] [blame]
import json
from tests.support.asserts import assert_success
_window_id = "window-fcc6-11e5-b4f8-330a88ab9d7f"
_frame_id = "frame-075b-4da1-b6ba-e579c2d3230a"
def execute_script(session, script, args=None):
if args is None:
args = []
body = {"script": script, "args": args}
return session.transport.send(
"POST", "/session/{session_id}/execute/sync".format(**vars(session)),
body)
def test_initial_window(session):
# non-auxiliary top-level browsing context
response = execute_script(session, "return window;")
raw_json = assert_success(response)
obj = json.loads(raw_json)
assert len(obj) == 1
assert _window_id in obj
handle = obj[_window_id]
assert handle in session.window_handles
def test_window_open(session):
# auxiliary browsing context
session.execute_script("window.foo = window.open()")
response = execute_script(session, "return window.foo;")
raw_json = assert_success(response)
obj = json.loads(raw_json)
assert len(obj) == 1
assert _window_id in obj
handle = obj[_window_id]
assert handle in session.window_handles
def test_frame(session):
# nested browsing context
append = """
window.frame = document.createElement('iframe');
document.body.appendChild(frame);
"""
session.execute_script(append)
response = execute_script(session, "return frame.contentWindow;")
raw_json = assert_success(response)
obj = json.loads(raw_json)
assert len(obj) == 1
assert _frame_id in obj
handle = obj[_frame_id]
assert handle not in session.window_handles