Bug 1455282 - [wdspec] Add tests for Close Window command.
MozReview-Commit-ID: 13j69lZhr1G
--- 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")