blob: 6903eece70d02a47498586f0eca4e7bd75d469c0 [file] [log] [blame]
# META: timeout=long
from tests.support.asserts import assert_error, assert_success
from tests.support.helpers import document_hidden, is_fullscreen
def maximize(session):
return session.transport.send(
"POST", "session/{session_id}/window/maximize".format(**vars(session)))
def test_no_top_browsing_context(session, closed_window):
response = maximize(session)
assert_error(response, "no such window")
def test_no_browsing_context(session, closed_frame):
response = maximize(session)
assert_success(response)
def test_fully_exit_fullscreen(session):
session.window.fullscreen()
assert is_fullscreen(session)
response = maximize(session)
assert_success(response)
assert not is_fullscreen(session)
def test_restore_the_window(session):
session.window.minimize()
assert document_hidden(session)
response = maximize(session)
assert_success(response)
def test_maximize(session):
before_size = session.window.size
response = maximize(session)
assert_success(response)
assert before_size != session.window.size
def test_payload(session):
before_size = session.window.size
response = maximize(session)
assert response.status == 200
assert isinstance(response.body["value"], dict)
value = response.body["value"]
assert "width" in value
assert "height" in value
assert "x" in value
assert "y" in value
assert isinstance(value["width"], int)
assert isinstance(value["height"], int)
assert isinstance(value["x"], int)
assert isinstance(value["y"], int)
assert before_size != session.window.size
def test_maximize_twice_is_idempotent(session):
first_response = maximize(session)
assert_success(first_response)
max_size = session.window.size
second_response = maximize(session)
assert_success(second_response)
assert session.window.size == max_size
def test_maximize_when_resized_to_max_size(session):
# Determine the largest available window size by first maximising
# the window and getting the window rect dimensions.
#
# Then resize the window to the maximum available size.
session.end()
session.window.maximize()
available = session.window.size
session.end()
session.window.size = available
# In certain window managers a window extending to the full available
# dimensions of the screen may not imply that the window is maximised,
# since this is often a special state. If a remote end expects a DOM
# resize event, this may not fire if the window has already reached
# its expected dimensions.
before = session.window.size
session.window.maximize()
assert session.window.size == before