Bug 1405325 - Test deleting a cookie that does not exist. r?maja_zf draft
authorAndreas Tolfsen <ato@sny.no>
Tue, 03 Oct 2017 16:26:17 +0100
changeset 675520 724b996dfd6649cc14311446ea97d79a1d106e96
parent 675519 dde719852e32d1a8fb2662f739d0aea003773d52
child 734617 f86e35810f33d3eac87f481fa21adc6a5df7ae1f
push id83145
push userbmo:ato@sny.no
push dateThu, 05 Oct 2017 10:51:32 +0000
reviewersmaja_zf
bugs1405325
milestone58.0a1
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
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/webdriver/tests/delete_cookie.py.ini
testing/web-platform/tests/webdriver/tests/delete_cookie.py
--- 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"] == {}