blob: 4527c64a28844b009f33b8051194a6f624899ba5 [file] [log] [blame]
# META: timeout=long
import time
import pytest
from tests.support.asserts import assert_success
from tests.support.helpers import document_hidden
def maximize_window(session):
response = session.transport.send(
"POST", "session/{session_id}/window/maximize".format(**vars(session)))
rect = assert_success(response)
return (rect["width"], rect["height"])
@pytest.mark.parametrize("i", range(5))
def test_stress(session, i):
"""
Without defining the heuristics of each platform WebDriver runs on,
the best we can do is to test that maximization occurs synchronously.
Not all systems and window managers support maximizing the window,
but they are expected to do their best. The minimum requirement
is that the maximized window is larger than its original size.
To ensure the maximization happened synchronously, we test
that the size hasn't changed after a short amount of time,
using a thread suspend. This is not ideal, but the best we
can do given the level of platform ambiguity implied by WebDriver.
"""
session.window.size = (100, 100)
session.window.position = (0, 0)
original_size = session.window.size
size_after_maximize = maximize_window(session)
assert size_after_maximize > original_size
t_end = time.time() + 3
while time.time() < t_end:
assert session.window.size == size_after_maximize
time.sleep(.1)