Bug 1391661 - Add Minimize Window test to wdspec; r=ato draft
authorYangyi Peng<yangyi_peng@htc.com>
Fri, 18 Aug 2017 23:07:00 +0800
changeset 649068 102f44b068e2a393944cf5b2af1dfd243ef810e4
parent 648573 a6a1f5c1d971dbee67ba6eec7ead7902351ddca2
child 726990 bccbe37b56784dab4f4c00c3405fe7c52e3baae5
push id74936
push userbmo:yangyi_peng@htc.com
push dateFri, 18 Aug 2017 15:07:49 +0000
reviewersato
bugs1391661
milestone57.0a1
Bug 1391661 - Add Minimize Window test to wdspec; r=ato MozReview-Commit-ID: LLJ6EXd2aKR
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/webdriver/tests/minimize_window.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -405140,16 +405140,22 @@
     ]
    ],
    "webdriver/tests/maximize_window.py": [
     [
      "/webdriver/tests/maximize_window.py",
      {}
     ]
    ],
+   "webdriver/tests/minimize_window.py": [
+    [
+     "/webdriver/tests/minimize_window.py",
+     {}
+    ]
+   ],
    "webdriver/tests/navigation.py": [
     [
      "/webdriver/tests/navigation.py",
      {}
     ]
    ],
    "webdriver/tests/set_window_rect.py": [
     [
@@ -624316,17 +624322,17 @@
    "55100f7d505bc8cbc966ced0d1337ed78534a553",
    "testharness"
   ],
   "web-animations/animation-model/animation-types/property-list.js": [
    "31ad7b4aa12e4485f95545b087779cabb56c696c",
    "support"
   ],
   "web-animations/animation-model/animation-types/property-types.js": [
-   "80be6cea9cc4d5986abbdf2823e013b8e5b4bcab",
+   "f7947653d8668f236117913217d808e690476059",
    "support"
   ],
   "web-animations/animation-model/combining-effects/effect-composition.html": [
    "8ac06085132d822e908d48de4c1109b66323f19f",
    "testharness"
   ],
   "web-animations/animation-model/keyframe-effects/effect-value-context.html": [
    "10d9ee521240475a1729c2facfcea8b50342614e",
@@ -625079,16 +625085,20 @@
   "webdriver/tests/get_window_rect.py": [
    "2d4c13edc4e659af864750d0341c06ff969a687f",
    "wdspec"
   ],
   "webdriver/tests/maximize_window.py": [
    "55cb76c60c7914bc024f470f6d1f0a47294b6fe3",
    "wdspec"
   ],
+  "webdriver/tests/minimize_window.py": [
+   "99fa058dd78c2f3a2d2c34dc7096edb9ca12ac4f",
+   "wdspec"
+  ],
   "webdriver/tests/navigation.py": [
    "cec2987258d9c807a247da9e0216b3af1f171484",
    "wdspec"
   ],
   "webdriver/tests/set_window_rect.py": [
    "89b247aae02cf1aee8c7e4832db424840b66d12d",
    "wdspec"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/minimize_window.py
@@ -0,0 +1,56 @@
+from tests.support.inline import inline
+from tests.support.asserts import assert_error, assert_success
+
+alert_doc = inline("<script>window.alert()</script>")
+
+# 10.7.4 Minimize Window
+def test_minimize_no_browsing_context(session, create_window):
+    # Step 1
+    session.window_handle = create_window()
+    session.close()
+    result = session.transport.send("POST", "session/%s/window/minimize" % session.session_id)
+    assert_error(result, "no such window")
+
+
+def test_handle_user_prompt(session):
+    # Step 2
+    session.url = alert_doc
+    result = session.transport.send("POST", "session/%s/window/minimize" % session.session_id)
+    assert_error(result, "unexpected alert open")
+
+
+def test_minimize(session):
+    before_size = session.window.size
+    assert session.window.state == "normal"
+
+    # step 4
+    result = session.transport.send("POST", "session/%s/window/minimize" % session.session_id)
+    assert_success(result)
+
+    assert session.window.state == "minimized"
+
+
+def test_payload(session):
+    before_size = session.window.size
+    assert session.window.state == "normal"
+
+    result = session.transport.send("POST", "session/%s/window/minimize" % session.session_id)
+
+    # step 5
+    assert result.status == 200
+    assert isinstance(result.body["value"], dict)
+
+    resp = result.body["value"]
+    assert "width" in resp
+    assert "height" in resp
+    assert "x" in resp
+    assert "y" in resp
+    assert "state" in resp
+    assert isinstance(resp["width"], (int, float))
+    assert isinstance(resp["height"], (int, float))
+    assert isinstance(resp["x"], (int, float))
+    assert isinstance(resp["y"], (int, float))
+    assert isinstance(resp["state"], basestring)
+
+    assert session.window.state == "minimized"
+