Bug 1405325 - Test deleting a cookie that does not exist. r?maja_zf
This patch contains a basic test for deleting a cookie that does
not exist. More tests for this command is still needed.
MozReview-Commit-ID: AhSmbacEKOL
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -409294,16 +409294,22 @@
]
],
"webdriver/tests/contexts/resizing_and_positioning.py": [
[
"/webdriver/tests/contexts/resizing_and_positioning.py",
{}
]
],
+ "webdriver/tests/delete_cookie.py": [
+ [
+ "/webdriver/tests/delete_cookie.py",
+ {}
+ ]
+ ],
"webdriver/tests/element_click/select.py": [
[
"/webdriver/tests/element_click/select.py",
{}
]
],
"webdriver/tests/fullscreen_window.py": [
[
@@ -631787,16 +631793,20 @@
"webdriver/tests/contexts/maximize_window.py": [
"904dd1db0e9731148a1793065b1d38acf0ac094b",
"wdspec"
],
"webdriver/tests/contexts/resizing_and_positioning.py": [
"479379109115668183643e8a050396219332887d",
"wdspec"
],
+ "webdriver/tests/delete_cookie.py": [
+ "4e846b0f0538bbfc88e7dc6b637f19260a8d3c3e",
+ "wdspec"
+ ],
"webdriver/tests/element_click/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/element_click/select.py": [
"5ba51b660c7203bba3ada597c2f56fe094358e1f",
"wdspec"
],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/webdriver/tests/delete_cookie.py.ini
@@ -0,0 +1,7 @@
+[delete_cookie.py]
+ type: wdspec
+ [delete_cookie.py::test_handle_prompt_accept]
+ expected: FAIL
+
+ [delete_cookie.py::test_handle_prompt_missing_value]
+ expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/delete_cookie.py
@@ -0,0 +1,123 @@
+from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
+from tests.support.fixtures import create_dialog
+from tests.support.inline import inline
+
+
+def delete_cookie(session, name):
+ return session.transport.send("DELETE", "/session/%s/cookie/%s" % (session.session_id, name))
+
+
+# 16.4 Delete Cookie
+
+
+def test_no_browsing_context(session, create_window):
+ """
+ 1. If the current top-level browsing context is no longer open,
+ return error with error code no such window.
+
+ """
+ session.window_handle = create_window()
+ session.close()
+ response = delete_cookie(session, "foo")
+ assert_error(response, "no such window")
+
+
+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):
+ """
+ 2. Handle any user prompts and return its value if it is an error.
+
+ [...]
+
+ In order to handle any user prompts a remote end must take the
+ following steps:
+
+ [...]
+
+ 2. Perform the following substeps based on the current session's
+ user prompt handler:
+
+ [...]
+
+ - accept state
+ Accept the current user prompt.
+
+ """
+ _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
+ session.url = inline("<title>WD doc title</title>")
+
+ create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
+ response = delete_cookie(session, "foo")
+ assert response.status == 200
+ assert_dialog_handled(session, "dismiss #1")
+
+ create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
+ response = delete_cookie(session, "foo")
+ assert response.status == 200
+ assert_dialog_handled(session, "dismiss #2")
+
+ create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
+ response = delete_cookie(session, "foo")
+ assert response.status == 200
+ assert_dialog_handled(session, "dismiss #3")
+
+
+def test_handle_prompt_missing_value(session, create_dialog):
+ """
+ 2. Handle any user prompts and return its value if it is an error.
+
+ [...]
+
+ In order to handle any user prompts a remote end must take the
+ following steps:
+
+ [...]
+
+ 2. Perform the following substeps based on the current session's
+ user prompt handler:
+
+ [...]
+
+ - missing value default state
+ 1. Dismiss the current user prompt.
+ 2. Return error with error code unexpected alert open.
+
+ """
+ session.url = inline("<title>WD doc title</title>")
+ create_dialog("alert", text="dismiss #1", result_var="dismiss1")
+
+ response = delete_cookie(session, "foo")
+
+ assert_error(response, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #1")
+
+ create_dialog("confirm", text="dismiss #2", result_var="dismiss2")
+
+ response = delete_cookie(session, "foo")
+ assert_error(response, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #2")
+
+ create_dialog("prompt", text="dismiss #3", result_var="dismiss3")
+
+ response = delete_cookie(session, "foo")
+ assert_error(response, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #3")
+
+
+def test_unknown_cookie(session):
+ response = delete_cookie(session, "stilton")
+ assert response.status == 200
+ assert "value" in response.body
+ assert isinstance(response.body["value"], dict)
+ assert response.body["value"] == {}