Bug 1381876 - Skip resetting namespaced interfaces in client.Session. r?automatedtester
Resetting these interfaces means they will not be set up again if the
client.Session instance is reused.
MozReview-Commit-ID: 7JW61VrMFpD
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -625006,33 +625006,33 @@
"5ba51b660c7203bba3ada597c2f56fe094358e1f",
"wdspec"
],
"webdriver/tests/get_window_rect.py": [
"2d4c13edc4e659af864750d0341c06ff969a687f",
"wdspec"
],
"webdriver/tests/maximize_window.py": [
- "ba6b9109f5baaf6eb300a3f89f984753e9d5adb9",
+ "827b3a3e1a3ef628dae1480af029fc01ef5e9388",
"wdspec"
],
"webdriver/tests/navigation.py": [
"cec2987258d9c807a247da9e0216b3af1f171484",
"wdspec"
],
"webdriver/tests/set_window_rect.py": [
"8aef7d228fc9c1e8cf1029d8f1f7669602b6e877",
"wdspec"
],
"webdriver/tests/support/__init__.py": [
"5a31a3917a5157516c10951a3b3d5ffb43b992d9",
"support"
],
"webdriver/tests/support/asserts.py": [
- "cf1d298a9dc61b07eb9efe1ff3ed98a318d48bc4",
+ "693c848df03b46e7b4f5e17e49fd0879a29a0d1c",
"support"
],
"webdriver/tests/support/fixtures.py": [
"6ceec11f42cd9be53a92ad88aa07657c78779ce3",
"support"
],
"webdriver/tests/support/http_request.py": [
"cb40c781fea2280b98135522def5e6a116d7b946",
--- a/testing/web-platform/tests/tools/webdriver/webdriver/client.py
+++ b/testing/web-platform/tests/tools/webdriver/webdriver/client.py
@@ -385,20 +385,16 @@ class Session(object):
def end(self):
if self.session_id is None:
return
url = "session/%s" % self.session_id
self.send_command("DELETE", url)
self.session_id = None
- self.timeouts = None
- self.window = None
- self.find = None
- self.extension = None
def send_command(self, method, url, body=None):
"""
Send a command to the remote end and validate its success.
:param method: HTTP method to use in request.
:param uri: "Command part" of the HTTP request URL,
e.g. `window/rect`.
--- a/testing/web-platform/tests/webdriver/tests/maximize_window.py
+++ b/testing/web-platform/tests/webdriver/tests/maximize_window.py
@@ -4,35 +4,72 @@ from tests.support.asserts import assert
alert_doc = inline("<script>window.alert()</script>")
# 10.7.3 Maximize Window
def test_maximize_no_browsing_context(session, create_window):
# Step 1
session.window_handle = create_window()
session.close()
result = session.transport.send("POST", "session/%s/window/maximize" % session.session_id)
-
assert_error(result, "no such window")
-def test_maximize_rect_alert_prompt(session):
+def test_handle_user_prompt(session):
# Step 2
session.url = alert_doc
-
result = session.transport.send("POST", "session/%s/window/maximize" % session.session_id)
-
assert_error(result, "unexpected alert open")
-def test_maximize_payload(session):
- # step 5
+def test_maximize(session):
+ before = session.window.size
+
+ # step 4
+ result = session.transport.send("POST", "session/%s/window/maximize" % session.session_id)
+ assert_success(result)
+
+ after = session.window.size
+ assert before != after
+
+
+def test_payload(session):
+ before = session.window.size
+
result = session.transport.send("POST", "session/%s/window/maximize" % session.session_id)
+ # step 5
assert result.status == 200
assert isinstance(result.body["value"], dict)
- assert "width" in result.body["value"]
- assert "height" in result.body["value"]
- assert "x" in result.body["value"]
- assert "y" in result.body["value"]
- assert isinstance(result.body["value"]["width"], float)
- assert isinstance(result.body["value"]["height"], float)
- assert isinstance(result.body["value"]["x"], float)
- assert isinstance(result.body["value"]["y"], float)
+
+ rect = result.body["value"]
+ assert "width" in rect
+ assert "height" in rect
+ assert "x" in rect
+ assert "y" in rect
+ assert isinstance(rect["width"], float)
+ assert isinstance(rect["height"], float)
+ assert isinstance(rect["x"], float)
+ assert isinstance(rect["y"], float)
+
+ after = session.window.size
+ assert before != after
+
+
+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()
+ available = session.window.maximize()
+ session.end()
+
+ session.window.size = (int(available["width"]), int(available["height"]))
+
+ # 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()
+ after = session.window.size
+ assert before == after