Bug 1455282 - [wdspec] Add tests for Close Window command. draft
authorHenrik Skupin <mail@hskupin.info>
Fri, 20 Apr 2018 10:50:14 +0200
changeset 787083 1b105a51afee15a6c82fbf1f15d3e349912e4d07
parent 786811 84803e0354ef58cc5005cff97a2b9b43eb29b295
push id107632
push userbmo:hskupin@gmail.com
push dateTue, 24 Apr 2018 07:47:39 +0000
bugs1455282
milestone61.0a1
Bug 1455282 - [wdspec] Add tests for Close Window command. MozReview-Commit-ID: 13j69lZhr1G
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/webdriver/tests/close_window/user_prompts.py.ini
testing/web-platform/tests/webdriver/tests/close_window/close.py
testing/web-platform/tests/webdriver/tests/close_window/user_prompts.py
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -393341,16 +393341,28 @@
    "webdriver/tests/actions/special_keys.py": [
     [
      "/webdriver/tests/actions/special_keys.py",
      {
       "timeout": "long"
      }
     ]
    ],
+   "webdriver/tests/close_window/close.py": [
+    [
+     "/webdriver/tests/close_window/close.py",
+     {}
+    ]
+   ],
+   "webdriver/tests/close_window/user_prompts.py": [
+    [
+     "/webdriver/tests/close_window/user_prompts.py",
+     {}
+    ]
+   ],
    "webdriver/tests/contexts/json_serialize_windowproxy.py": [
     [
      "/webdriver/tests/contexts/json_serialize_windowproxy.py",
      {
       "timeout": "long"
      }
     ]
    ],
@@ -502033,17 +502045,17 @@
    "1cde22de011c102163c14a44ac686e97e075b934",
    "testharness"
   ],
   "css/css-fonts/variations/font-opentype-collections.html": [
    "6ef4e5f8931764e1609a7e2c0ccde63092d7c4fc",
    "testharness"
   ],
   "css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html": [
-   "b9aa593e5fcba0d7af8f66446d473608a7025f1c",
+   "1e116cfb42e4e52fd714ec07c5bce6b9d5dceeda",
    "testharness"
   ],
   "css/css-fonts/variations/font-shorthand.html": [
    "7e193d5e25424699652e64b419e1d1384370e3a4",
    "testharness"
   ],
   "css/css-fonts/variations/font-stretch.html": [
    "b6d7409267cba17569ddd1caa654f3ab515e85eb",
@@ -519133,21 +519145,21 @@
    "0c339b7685280fb87ac68772a2bcc9704b5b4527",
    "reftest"
   ],
   "css/css-transforms/css-transform-3d-transform-style.html": [
    "755aa03cd4767e0874e33bcbe6028dab96c3ffb1",
    "reftest"
   ],
   "css/css-transforms/css-transform-animate-translate-implied-y-ref.html": [
-   "be59175d0020cab7b6eef4473cf4c51695a3101e",
+   "48d0696cd6b9e9b7ae2b95ab9ada46a6437b3419",
    "support"
   ],
   "css/css-transforms/css-transform-animate-translate-implied-y.html": [
-   "f0272619bd352b3870c4a6da1f2a99a6453f10aa",
+   "69be5da747b26e3ce762391dd5997a5bf697cd6e",
    "reftest"
   ],
   "css/css-transforms/css-transform-inherit-rotate.html": [
    "bd9040254b9d7747d86d63b7a6ea706e813bd1a1",
    "visual"
   ],
   "css/css-transforms/css-transform-inherit-scale.html": [
    "1afd10f480afbd37ba7f55daae31003146fd22c1",
@@ -605720,16 +605732,24 @@
   "webdriver/tests/actions/support/refine.py": [
    "0d244bffe67ef57be68aad99f1cbc7440ff80e27",
    "support"
   ],
   "webdriver/tests/actions/support/test_actions_wdspec.html": [
    "95203777fcc012ab64465287737a89a4ba2c31dc",
    "support"
   ],
+  "webdriver/tests/close_window/close.py": [
+   "4138394adbccb06712b22a2f982e8638aa03629a",
+   "wdspec"
+  ],
+  "webdriver/tests/close_window/user_prompts.py": [
+   "6151fb105fafcfb462a580fc725b207eae725f6c",
+   "wdspec"
+  ],
   "webdriver/tests/conftest.py": [
    "c812269d034c9ca1b8c4f136dd5d0cea52f4d0f0",
    "support"
   ],
   "webdriver/tests/contexts/json_serialize_windowproxy.py": [
    "d29c82c48b3bd1e2b07c40798a774eb77d6178a5",
    "wdspec"
   ],
@@ -605953,17 +605973,17 @@
    "5a31a3917a5157516c10951a3b3d5ffb43b992d9",
    "support"
   ],
   "webdriver/tests/support/asserts.py": [
    "1b839404daaca1d059cba98377edb91691ef7e82",
    "support"
   ],
   "webdriver/tests/support/fixtures.py": [
-   "e787c0ef06fcdfc86f337be5af61e492be08ec9c",
+   "126e82c42568c9ecb240e735a2b1361882ecd9ba",
    "support"
   ],
   "webdriver/tests/support/http_request.py": [
    "cb40c781fea2280b98135522def5e6a116d7b946",
    "support"
   ],
   "webdriver/tests/support/inline.py": [
    "ffabd6a12d6e7928176fa00702214e0c8e0a25d7",
@@ -606121,17 +606141,17 @@
    "d870e4e7ca81044bd62ddbf79fb666d02bc5b9ee",
    "support"
   ],
   "webmessaging/broadcastchannel/sandbox.html": [
    "9eeb2cbdcf50727280da1de83f665c6041b7741c",
    "testharness"
   ],
   "webmessaging/broadcastchannel/workers.html": [
-   "483e03e9528f1e80fc1b250caee46f7f256d63c1",
+   "2ca289f36c001c15e64b849098e8f28b21178862",
    "testharness"
   ],
   "webmessaging/event.data.sub.htm": [
    "994c26d63d21f6acabc9e5c2af667e1d557040b3",
    "testharness"
   ],
   "webmessaging/event.origin.sub.htm": [
    "591a0bcef635d7158fe9c04fabfeea030dce9c62",
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/webdriver/tests/close_window/user_prompts.py.ini
@@ -0,0 +1,3 @@
+[user_prompts.py]
+  [test_handle_prompt_accept]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/close_window/close.py
@@ -0,0 +1,38 @@
+from tests.support.asserts import assert_error, assert_success
+
+
+def close(session):
+    return session.transport.send("DELETE", "session/%s/window" % session.session_id)
+
+
+def test_no_browsing_context(session, create_window):
+    new_handle = create_window()
+
+    session.window_handle = new_handle
+    session.close()
+    assert new_handle not in session.handles
+
+    response = close(session)
+    assert_error(response, "no such window")
+
+
+def test_close_browsing_context(session, create_window):
+    handles = session.handles
+
+    new_handle = create_window()
+    session.window_handle = new_handle
+
+    response = close(session)
+    value = assert_success(response, handles)
+    assert session.handles == handles
+    assert new_handle not in value
+
+
+def test_close_last_browsing_context(session):
+    assert len(session.handles) == 1
+    response = close(session)
+
+    assert_success(response, [])
+
+    # With no more open top-level browsing contexts, the session is closed.
+    session.session_id = None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/close_window/user_prompts.py
@@ -0,0 +1,66 @@
+from tests.support.asserts import assert_error, assert_dialog_handled
+from tests.support.fixtures import create_dialog, create_window
+from tests.support.inline import inline
+
+
+def close(session):
+    return session.transport.send("DELETE", "session/%s/window" % session.session_id)
+
+
+def test_handle_prompt_dismiss_and_notify():
+    """TODO"""
+
+
+def test_handle_prompt_accept_and_notify():
+    """TODO"""
+
+
+def test_handle_prompt_ignore():
+    """TODO"""
+
+
+def test_handle_prompt_accept(new_session, add_browser_capabilites):
+    _, session = new_session({"capabilities": {
+        "alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept"})}})
+    session.window_handle = create_window(session)()
+
+    session.url = inline("<title>WD doc title</title>")
+
+    create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
+    response = close(session)
+    assert response.status == 200
+    assert_dialog_handled(session, "dismiss #1")
+
+    create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
+    response = close(session)
+    assert response.status == 200
+    assert_dialog_handled(session, "dismiss #2")
+
+    create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
+    response = close(session)
+    assert response.status == 200
+    assert_dialog_handled(session, "dismiss #3")
+
+
+def test_handle_prompt_missing_value(session, create_dialog, create_window):
+    session.window_handle = create_window()
+
+    session.url = inline("<title>WD doc title</title>")
+    create_dialog("alert", text="dismiss #1", result_var="dismiss1")
+
+    response = close(session)
+
+    assert_error(response, "unexpected alert open")
+    assert_dialog_handled(session, "dismiss #1")
+
+    create_dialog("confirm", text="dismiss #2", result_var="dismiss2")
+
+    response = close(session)
+    assert_error(response, "unexpected alert open")
+    assert_dialog_handled(session, "dismiss #2")
+
+    create_dialog("prompt", text="dismiss #3", result_var="dismiss3")
+
+    response = close(session)
+    assert_error(response, "unexpected alert open")
+    assert_dialog_handled(session, "dismiss #3")