Bug 1392274 - Add Refresh wdspec tests r?whimboo
These are the wdspec tests for testing the refresh command in
https://w3c.github.io/webdriver/webdriver-spec.html#refresh
MozReview-Commit-ID: HHd6sU7P8hp
--- a/testing/web-platform/tests/webdriver/tests/refresh/refresh.py
+++ b/testing/web-platform/tests/webdriver/tests/refresh/refresh.py
@@ -1,15 +1,53 @@
+
from tests.support.inline import inline
-from tests.support.asserts import assert_success
+from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
+
+alert_doc = inline("<script>window.alert()</script>")
def refresh(session):
- return session.transport.send(
- "POST", "session/{session_id}/refresh".format(**vars(session)))
+ return session.transport.send("POST",
+ "session/%s/refresh" % session.session_id)
+
+# 9.5 Refresh
+
+
+def test_no_browsing_context(session, create_window):
+ # 9.5 step 1
+ session.window_handle = create_window()
+ session.close()
+
+ result = refresh(session)
+
+ assert_error(result, "no such window")
-def test_null_response_value(session):
- session.url = inline("<div>")
+def test_basic(session):
+ session.url = inline("<title>WD doc title</title>")
+ url = session.url
+
+ session.execute_script("""
+ let elem = window.document.createElement('div');
+ elem.id = 'someDiv';
+ window.document.body.appendChild(elem);
+ """)
+ session.find.css("#someDiv")
+
+ result = refresh(session)
+ assert_success(result)
+ assert url == session.url
- response = refresh(session)
- value = assert_success(response)
- assert value is None
+ response = session.find.css("#someDiv")
+ assert response == []
+
+
+def test_refresh_switches_to_parent_browsing_context(session, create_frame):
+ session.url = inline("<title>Parent</title>")
+
+ session.switch_frame(create_frame())
+ response = session.execute_script("return document.title")
+ assert response == ""
+
+ refresh(session)
+ response = session.execute_script("return document.title")
+ assert response == "Parent"
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/refresh/user_prompts.py
@@ -0,0 +1,90 @@
+from tests.support.inline import inline
+from tests.support.fixtures import create_dialog
+from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
+
+alert_doc = inline("<script>window.alert()</script>")
+
+
+def test_get_current_url_alert_prompt(session):
+ # 9.5 step 2
+ session.url = alert_doc
+
+ result = refresh(session)
+
+ assert_error(result, "unexpected alert open")
+
+
+def test_prompt_accept(new_session):
+ _, session = new_session(
+ {"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
+ session.url = inline("<title>WD doc title</title>")
+
+ # step 2
+ create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
+ result = refresh(session)
+
+ assert result.status == 200
+ assert_dialog_handled(session, "dismiss #1")
+
+ create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
+ result = refresh(session)
+
+ assert result.status == 200
+ assert_dialog_handled(session, "dismiss #2")
+
+ create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
+ result = refresh(session)
+
+ assert_success(result)
+ assert_dialog_handled(session, "dismiss #3")
+
+
+def test_prompt_dismiss(new_session):
+ _, session = new_session(
+ {"alwaysMatch": {"unhandledPromptBehavior": "dismiss"}})
+ session.url = inline("<title>WD doc title</title>")
+
+ # step 2
+ create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
+ result = refresh(session)
+
+ assert result.status == 200
+ assert_dialog_handled(session, "dismiss #1")
+
+ create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
+ result = refresh(session)
+
+ assert result.status == 200
+ assert_dialog_handled(session, "dismiss #2")
+
+ create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
+ result = refresh(session)
+
+ assert_success(result)
+ assert_dialog_handled(session, "dismiss #3")
+
+
+def test_handle_prompt_missing_value(session, create_dialog):
+
+ # step 2
+ session.url = inline("<title>WD doc title</title>")
+ create_dialog("alert", text="dismiss #1", result_var="dismiss1")
+
+ result = refresh(session)
+
+ assert_error(result, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #1")
+
+ create_dialog("confirm", text="dismiss #2", result_var="dismiss2")
+
+ result = refresh(session)
+
+ assert_error(result, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #2")
+
+ create_dialog("prompt", text="dismiss #3", result_var="dismiss3")
+
+ result = refresh(session)
+
+ assert_error(result, "unexpected alert open")
+ assert_dialog_handled(session, "dismiss #3")