Bug 1390520 - Improve readability of Set Window Rect test. r?automatedtester draft
authorAndreas Tolfsen <ato@sny.no>
Tue, 15 Aug 2017 16:35:03 +0100
changeset 646601 4d01aa2c21722fc3b8f767fd517c72acf9fe235f
parent 646600 47a1bbc6f9a5d17ed473c57d8d0d1bd0303d2b6d
child 726305 2ad688d66b9deeb11bf10a0d6579bad4ca0519ea
push id74187
push userbmo:ato@sny.no
push dateTue, 15 Aug 2017 15:36:11 +0000
reviewersautomatedtester
bugs1390520
milestone57.0a1
Bug 1390520 - Improve readability of Set Window Rect test. r?automatedtester In addition to readability improvements, it fixes a few small errors where the "x" and "y" field are being mixed up. MozReview-Commit-ID: LP8uAaELadY
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/webdriver/tests/set_window_rect.py.ini
testing/web-platform/tests/webdriver/tests/set_window_rect.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -625084,17 +625084,17 @@
    "55cb76c60c7914bc024f470f6d1f0a47294b6fe3",
    "wdspec"
   ],
   "webdriver/tests/navigation.py": [
    "cec2987258d9c807a247da9e0216b3af1f171484",
    "wdspec"
   ],
   "webdriver/tests/set_window_rect.py": [
-   "061a8569a4c080a62ab9d7a00efa3c01a2223b74",
+   "89b247aae02cf1aee8c7e4832db424840b66d12d",
    "wdspec"
   ],
   "webdriver/tests/support/__init__.py": [
    "5a31a3917a5157516c10951a3b3d5ffb43b992d9",
    "support"
   ],
   "webdriver/tests/support/asserts.py": [
    "c6d7303efd64a6a632a1cd1eef10acf1d7de04cd",
--- a/testing/web-platform/meta/webdriver/tests/set_window_rect.py.ini
+++ b/testing/web-platform/meta/webdriver/tests/set_window_rect.py.ini
@@ -1,10 +1,10 @@
 [set_window_rect.py]
   type: wdspec
-  [set_window_rect.py::test_set_window_rect_prompt_accept]
+  [set_window_rect.py::test_prompt_accept]
     expected: FAIL
 
-  [set_window_rect.py::test_set_window_rect_handle_prompt_missing_value]
+  [set_window_rect.py::test_handle_prompt_missing_value]
     expected: FAIL
 
-  [set_window_rect.py::test_set_window_fullscreen]
+  [set_window_rect.py::test_fullscreened]
     expected: FAIL
--- a/testing/web-platform/tests/webdriver/tests/set_window_rect.py
+++ b/testing/web-platform/tests/webdriver/tests/set_window_rect.py
@@ -1,85 +1,74 @@
 import pytest
 
 from support.inline import inline
 from support.fixtures import create_dialog
 from support.asserts import assert_error, assert_dialog_handled, assert_success
 
+
 alert_doc = inline("<script>window.alert()</script>")
 
+
+def set_window_rect(session, rect):
+    return session.transport.send("POST", "session/%s/window/rect" % session.session_id, rect)
+
+
 # 10.7.2 Set Window Rect
 
-def test_set_window_rect_prompt_accept(new_session):
-    # Step 2
-    _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
-    session.url = inline("<title>WD doc title</title>")
 
-    get_response = session.transport.send("GET", "session/%s/window/rect" % session.session_id)
-    original = get_response.body["value"]
+def test_prompt_accept(new_session):
+    _, session = new_session(
+        {"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
+    session.url = inline("<title>WD doc title</title>")
+    original = session.window.rect
 
+    # step 2
     create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
     assert result.status == 200
     assert_dialog_handled(session, "dismiss #1")
 
     create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
     assert result.status == 200
     assert_dialog_handled(session, "dismiss #2")
 
     create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
-    assert result.status == 200
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
+    assert_success(result)
     assert_dialog_handled(session, "dismiss #3")
 
 
-def test_set_window_rect_handle_prompt_missing_value(session, create_dialog):
-    # Step 2
-    get_response = session.transport.send("GET",
-                                          "session/%s/window/rect" % session.session_id)
-    original = get_response.body["value"]
+def test_handle_prompt_missing_value(session, create_dialog):
+    original = session.window.rect
 
+    # step 2
     session.url = inline("<title>WD doc title</title>")
     create_dialog("alert", text="dismiss #1", result_var="dismiss1")
 
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
-
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
     assert_error(result, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #1")
 
     create_dialog("confirm", text="dismiss #2", result_var="dismiss2")
 
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
-
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
     assert_error(result, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #2")
 
     create_dialog("prompt", text="dismiss #3", result_var="dismiss3")
 
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["y"]),
-                                     "y": int(original["y"])})
-
+    result = set_window_rect(session, {"x": int(original["x"]),
+                                       "y": int(original["y"])})
     assert_error(result, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #3")
 
 
 @pytest.mark.parametrize("data", [
     {"height": None, "width": None, "x": "a", "y": "b"},
     {"height": "a", "width": "b", "x": None, "y": None},
     {"height": None, "width": None, "x": 10.1, "y": 10.1},
@@ -87,194 +76,176 @@ def test_set_window_rect_handle_prompt_m
     {"height": True, "width": False, "x": None, "y": None},
     {"height": None, "width": None, "x": True, "y": False},
     {"height": [], "width": [], "x": None, "y": None},
     {"height": None, "width": None, "x": [], "y": []},
     {"height": [], "width": [], "x": [], "y": []},
     {"height": {}, "width": {}, "x": None, "y": None},
     {"height": None, "width": None, "x": {}, "y": {}},
 ])
-def test_set_window_rect_invalid_params(session, data):
+def test_invalid_params(session, data):
     # step 8-9
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    data)
-
-    assert_error(result, "invalid argument")
+    response = set_window_rect(session, data)
+    assert_error(response, "invalid argument")
 
 
-def test_set_window_fullscreen(session):
+def test_fullscreened(session):
     original = session.window.rect
 
     # step 10
     session.window.fullscreen()
     assert session.window.state == "fullscreen"
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"width": 400, "height": 400})
-    assert_success(result, {"x": original["x"],
-                            "y": original["y"],
-                            "width": 400.0,
-                            "height": 400.0,
-                            "state": "normal"})
+    response = set_window_rect(session, {"width": 400, "height": 400})
+    assert_success(response, {"x": original["x"],
+                              "y": original["y"],
+                              "width": 400.0,
+                              "height": 400.0,
+                              "state": "normal"})
 
 
-def test_set_window_rect_window_minimized(session):
+def test_minimized(session):
     # step 11
     session.window.minimize()
     assert session.window.state == "minimized"
 
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"width": 400, "height": 400})
-    assert not session.execute_script("return document.hidden")
-    rect = assert_success(result)
+    response = set_window_rect(session, {"width": 400, "height": 400})
+    assert session.window.state != "minimized"
+    rect = assert_success(response)
     assert rect["width"] == 400
     assert rect["height"] == 400
     assert rect["state"] == "normal"
 
 
-def test_set_window_height_width(session):
+def test_height_width(session):
     original = session.window.rect
-
-    # step 12
     max = session.execute_script("""
         return {
           width: window.screen.availWidth,
           height: window.screen.availHeight,
         }""")
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"width": max["width"] - 100,
-                                     "height": max["height"] - 100})
+
+    # step 12
+    response = set_window_rect(session, {"width": max["width"] - 100,
+                                         "height": max["height"] - 100})
 
     # step 14
-    assert_success(result, {"x": original["x"],
-                            "y": original["y"],
-                            "width": max["width"] - 100,
-                            "height": max["height"] - 100,
-                            "state": "normal"})
+    assert_success(response, {"x": original["x"],
+                              "y": original["y"],
+                              "width": max["width"] - 100,
+                              "height": max["height"] - 100,
+                              "state": "normal"})
 
 
-def test_set_window_height_width_larger_than_max(session):
-    # step 12
+def test_height_width_larger_than_max(session):
     max = session.execute_script("""
         return {
           width: window.screen.availWidth,
           height: window.screen.availHeight,
         }""")
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"width": max["width"] + 100,
-                                     "height": max["width"] + 100})
 
-    # Step 14
-    assert result.status == 200
-    rect = result.body["value"]
+    # step 12
+    response = set_window_rect(session, {"width": max["width"] + 100,
+                                         "height": max["height"] + 100})
+
+    # step 14
+    rect = assert_success(response)
     assert rect["width"] >= max["width"]
     assert rect["height"] >= max["height"]
     assert rect["state"] == "normal"
 
 
-def test_set_window_height_width_as_current(session):
-    # step 12
+def test_height_width_as_current(session):
     original = session.window.rect
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"width": int(original["width"]),
-                                     "height": int(original["height"])})
+
+    # step 12
+    response = set_window_rect(session, {"width": int(original["width"]),
+                                         "height": int(original["height"])})
 
     # step 14
-    assert_success(result, {"x": original["x"],
-                            "y": original["y"],
-                            "width": original["width"],
-                            "height": original["height"],
-                            "state": original["state"]})
+    assert_success(response, {"x": original["x"],
+                              "y": original["y"],
+                              "width": original["width"],
+                              "height": original["height"],
+                              "state": original["state"]})
 
 
-def test_set_window_rect_x_y(session):
-    # step 13
-    original = session.window.rect
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["x"]) + 10,
-                                     "y": int(original["y"]) + 10})
-    # step 14
-    assert_success(result, {"x": original["x"] + 10,
-                            "y": original["y"] + 10,
-                            "width": original["width"],
-                            "height": original["height"],
-                            "state": original["state"]})
-
-
-def test_set_window_rect_negative_x_y(session):
+def test_x_y(session):
     original = session.window.rect
 
     # step 13
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": - 8,
-                                     "y": - 8})
+    response = set_window_rect(session, {"x": int(original["x"]) + 10,
+                                         "y": int(original["y"]) + 10})
 
     # step 14
+    assert_success(response, {"x": original["x"] + 10,
+                              "y": original["y"] + 10,
+                              "width": original["width"],
+                              "height": original["height"],
+                              "state": original["state"]})
 
+
+def test_negative_x_y(session):
+    original = session.window.rect
+
+    # step 13
+    response = set_window_rect(session, {"x": - 8, "y": - 8})
+
+    # step 14
     os = session.capabilities["platformName"]
     # certain WMs prohibit windows from being moved off-screen
     if os == "linux":
-        rect = assert_success(result)
+        rect = assert_success(response)
         assert rect["x"] <= 0
         assert rect["y"] <= 0
         assert rect["width"] == original["width"]
         assert rect["height"] == original["height"]
         assert rect["state"] == original["state"]
 
     # On macOS, windows can only be moved off the screen on the
     # horizontal axis.  The system menu bar also blocks windows from
     # being moved to (0,0).
     elif os == "darwin":
-        assert_success(result, {"x": -8,
-                                "y": 23,
-                                "width": original["width"],
-                                "height": original["height"],
-                                "state": original["state"]})
+        assert_success(response, {"x": -8,
+                                  "y": 23,
+                                  "width": original["width"],
+                                  "height": original["height"],
+                                  "state": original["state"]})
 
     # It turns out that Windows is the only platform on which the
     # window can be reliably positioned off-screen.
     elif os == "windows_nt":
-        assert_success(result, {"x": -8,
-                                "y": -8,
-                                "width": original["width"],
-                                "height": original["height"],
-                                "state": original["state"]})
+        assert_success(response, {"x": -8,
+                                  "y": -8,
+                                  "width": original["width"],
+                                  "height": original["height"],
+                                  "state": original["state"]})
 
 
-def test_set_window_x_y_as_current(session):
-    # step 13
+def test_x_y_as_current(session):
     original = session.window.rect
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": int(original["x"]),
-                                     "y": int(original["y"])})
+
+    # step 13
+    response = set_window_rect(session, {"x": int(original["x"]),
+                                         "y": int(original["y"])})
+
     # step 14
-    assert_success(result, {"x": original["x"],
-                            "y": original["y"],
-                            "width": original["width"],
-                            "height": original["height"],
-                            "state": original["state"]})
+    assert_success(response, {"x": original["x"],
+                              "y": original["y"],
+                              "width": original["width"],
+                              "height": original["height"],
+                              "state": original["state"]})
 
-def test_set_window_rect_payload(session):
+
+def test_payload(session):
     # step 14
-    result = session.transport.send("POST",
-                                    "session/%s/window/rect" % session.session_id,
-                                    {"x": 400,
-                                     "y": 400})
+    response = set_window_rect(session, {"x": 400, "y": 400})
 
-    assert result.status == 200
-    assert isinstance(result.body["value"], dict)
-    rect = result.body["value"]
+    assert response.status == 200
+    assert isinstance(response.body["value"], dict)
+    rect = response.body["value"]
     assert "width" in rect
     assert "height" in rect
     assert "x" in rect
     assert "y" in rect
     assert "state" in rect
     assert isinstance(rect["width"], (int, float))
     assert isinstance(rect["height"], (int, float))
     assert isinstance(rect["x"], (int, float))