--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -300965,26 +300965,36 @@
{}
]
],
"webdriver/tests/add_cookie/__init__.py": [
[
{}
]
],
+ "webdriver/tests/back/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/close_window/__init__.py": [
[
{}
]
],
"webdriver/tests/conftest.py": [
[
{}
]
],
+ "webdriver/tests/delete_all_cookies/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/delete_cookie/__init__.py": [
[
{}
]
],
"webdriver/tests/delete_session/__init__.py": [
[
{}
@@ -301035,16 +301045,21 @@
{}
]
],
"webdriver/tests/find_elements_from_element/__init__.py": [
[
{}
]
],
+ "webdriver/tests/forward/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/fullscreen_window/__init__.py": [
[
{}
]
],
"webdriver/tests/get_active_element/__init__.py": [
[
{}
@@ -301105,16 +301120,21 @@
{}
]
],
"webdriver/tests/minimize_window/__init__.py": [
[
{}
]
],
+ "webdriver/tests/navigate_to/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/new_session/__init__.py": [
[
{}
]
],
"webdriver/tests/new_session/conftest.py": [
[
{}
@@ -301130,21 +301150,31 @@
{}
]
],
"webdriver/tests/page_source/__init__.py": [
[
{}
]
],
+ "webdriver/tests/refresh/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/send_alert_text/__init__.py": [
[
{}
]
],
+ "webdriver/tests/set_timeouts/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/set_window_rect/__init__.py": [
[
{}
]
],
"webdriver/tests/status/__init__.py": [
[
{}
@@ -301180,21 +301210,31 @@
{}
]
],
"webdriver/tests/support/wait.py": [
[
{}
]
],
+ "webdriver/tests/switch_to_frame/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/switch_to_parent_frame/__init__.py": [
[
{}
]
],
+ "webdriver/tests/switch_to_window/__init__.py": [
+ [
+ {}
+ ]
+ ],
"webgl/OWNERS": [
[
{}
]
],
"webgl/common.js": [
[
{}
@@ -401327,28 +401367,40 @@
]
],
"webdriver/tests/add_cookie/add.py": [
[
"/webdriver/tests/add_cookie/add.py",
{}
]
],
+ "webdriver/tests/back/back.py": [
+ [
+ "/webdriver/tests/back/back.py",
+ {}
+ ]
+ ],
"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/delete_all_cookies/delete.py": [
+ [
+ "/webdriver/tests/delete_all_cookies/delete.py",
+ {}
+ ]
+ ],
"webdriver/tests/delete_cookie/delete.py": [
[
"/webdriver/tests/delete_cookie/delete.py",
{}
]
],
"webdriver/tests/delete_cookie/user_prompts.py": [
[
@@ -401377,16 +401429,22 @@
]
],
"webdriver/tests/element_click/bubbling.py": [
[
"/webdriver/tests/element_click/bubbling.py",
{}
]
],
+ "webdriver/tests/element_click/click.py": [
+ [
+ "/webdriver/tests/element_click/click.py",
+ {}
+ ]
+ ],
"webdriver/tests/element_click/select.py": [
[
"/webdriver/tests/element_click/select.py",
{}
]
],
"webdriver/tests/element_click/stale.py": [
[
@@ -401413,16 +401471,22 @@
]
],
"webdriver/tests/element_send_keys/scroll_into_view.py": [
[
"/webdriver/tests/element_send_keys/scroll_into_view.py",
{}
]
],
+ "webdriver/tests/element_send_keys/send_keys.py": [
+ [
+ "/webdriver/tests/element_send_keys/send_keys.py",
+ {}
+ ]
+ ],
"webdriver/tests/execute_async_script/collections.py": [
[
"/webdriver/tests/execute_async_script/collections.py",
{}
]
],
"webdriver/tests/execute_async_script/user_prompts.py": [
[
@@ -401473,16 +401537,22 @@
]
],
"webdriver/tests/find_elements_from_element/find.py": [
[
"/webdriver/tests/find_elements_from_element/find.py",
{}
]
],
+ "webdriver/tests/forward/forward.py": [
+ [
+ "/webdriver/tests/forward/forward.py",
+ {}
+ ]
+ ],
"webdriver/tests/fullscreen_window/fullscreen.py": [
[
"/webdriver/tests/fullscreen_window/fullscreen.py",
{}
]
],
"webdriver/tests/fullscreen_window/user_prompts.py": [
[
@@ -401617,16 +401687,22 @@
]
],
"webdriver/tests/minimize_window/user_prompts.py": [
[
"/webdriver/tests/minimize_window/user_prompts.py",
{}
]
],
+ "webdriver/tests/navigate_to/navigate.py": [
+ [
+ "/webdriver/tests/navigate_to/navigate.py",
+ {}
+ ]
+ ],
"webdriver/tests/new_session/create_alwaysMatch.py": [
[
"/webdriver/tests/new_session/create_alwaysMatch.py",
{
"timeout": "long"
}
]
],
@@ -401671,22 +401747,34 @@
]
],
"webdriver/tests/page_source/source.py": [
[
"/webdriver/tests/page_source/source.py",
{}
]
],
+ "webdriver/tests/refresh/refresh.py": [
+ [
+ "/webdriver/tests/refresh/refresh.py",
+ {}
+ ]
+ ],
"webdriver/tests/send_alert_text/send.py": [
[
"/webdriver/tests/send_alert_text/send.py",
{}
]
],
+ "webdriver/tests/set_timeouts/set.py": [
+ [
+ "/webdriver/tests/set_timeouts/set.py",
+ {}
+ ]
+ ],
"webdriver/tests/set_window_rect/set.py": [
[
"/webdriver/tests/set_window_rect/set.py",
{
"timeout": "long"
}
]
],
@@ -401697,21 +401785,33 @@
]
],
"webdriver/tests/status/status.py": [
[
"/webdriver/tests/status/status.py",
{}
]
],
+ "webdriver/tests/switch_to_frame/switch.py": [
+ [
+ "/webdriver/tests/switch_to_frame/switch.py",
+ {}
+ ]
+ ],
"webdriver/tests/switch_to_parent_frame/switch.py": [
[
"/webdriver/tests/switch_to_parent_frame/switch.py",
{}
]
+ ],
+ "webdriver/tests/switch_to_window/switch.py": [
+ [
+ "/webdriver/tests/switch_to_window/switch.py",
+ {}
+ ]
]
}
},
"paths": {
"./.codecov.yml": [
"e2322808739a5977e90896b4755cfc20f4ab2046",
"support"
],
@@ -616727,41 +616827,41 @@
"b2ebe4b632b1a75e7334b97c3df7075f494dd5c6",
"support"
],
"webdriver/tests/accept_alert/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/accept_alert/accept.py": [
- "840f2ba655688ac1ff7581557f7560f641b61fe8",
+ "528149429fbb7da35a52d4b4c0e6839f170d0fac",
"wdspec"
],
"webdriver/tests/actions/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/actions/conftest.py": [
"f366a25d9d5e35a2897413a265398bc7a54f7c44",
"support"
],
"webdriver/tests/actions/key.py": [
- "d589b53f0096893600e696b43ec19ca84e5ee2ab",
+ "0b70d98a4558427666abbe9629a6cf42d69e2597",
"wdspec"
],
"webdriver/tests/actions/key_shortcuts.py": [
"dbe27dd0b1625169fc8cc2055f8fb49d5a4a78d2",
"wdspec"
],
"webdriver/tests/actions/modifier_click.py": [
"f0ed71cbb6550ef496096541531f3b4fa3f4c6e2",
"wdspec"
],
"webdriver/tests/actions/mouse.py": [
- "edad7693fcd01b418821942edb870191db64ea41",
+ "fb5072172d8524788147bde310d612aae5bee1b1",
"wdspec"
],
"webdriver/tests/actions/mouse_dblclick.py": [
"dd73b09a15b438aaf77cbccdf40678a24bbabd39",
"wdspec"
],
"webdriver/tests/actions/mouse_pause_dblclick.py": [
"d9c173d0c6c4943669dcd6d05472758c7f42b1ed",
@@ -616799,17 +616899,25 @@
"95203777fcc012ab64465287737a89a4ba2c31dc",
"support"
],
"webdriver/tests/add_cookie/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/add_cookie/add.py": [
- "29891e121def1917c47c70efd19b40ed5f2ea61d",
+ "39eb6c33a7c8f7a305cd093b795c0127816ac827",
+ "wdspec"
+ ],
+ "webdriver/tests/back/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/back/back.py": [
+ "0df671f059b0b9064a6a8608163b46042524f7e7",
"wdspec"
],
"webdriver/tests/close_window/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/close_window/close.py": [
"8c22860607cb0f3d610888c9816bf2384e2c5445",
@@ -616818,60 +616926,72 @@
"webdriver/tests/close_window/user_prompts.py": [
"58390344e980306233cd0daedca99fd4ec855cf8",
"wdspec"
],
"webdriver/tests/conftest.py": [
"c812269d034c9ca1b8c4f136dd5d0cea52f4d0f0",
"support"
],
+ "webdriver/tests/delete_all_cookies/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/delete_all_cookies/delete.py": [
+ "1248b2e14b6b690b996f8bf620a6a1f33514256a",
+ "wdspec"
+ ],
"webdriver/tests/delete_cookie/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/delete_cookie/delete.py": [
- "1f0d6b861be1ed682fd87a402908cee186a3987c",
+ "e9b90bac0e666ce82b3c0006830febcef726d688",
"wdspec"
],
"webdriver/tests/delete_cookie/user_prompts.py": [
"65b753bd80a06c3c20b0330f624a4d395fdb7ab2",
"wdspec"
],
"webdriver/tests/delete_session/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/delete_session/delete.py": [
- "6cbfd4c20b548e668d6251df9d0a26b0824e6ae1",
+ "1df6e1bfba0577a591bda8e0e27b96a1abcea1fb",
"wdspec"
],
"webdriver/tests/dismiss_alert/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/dismiss_alert/dismiss.py": [
- "e213f1939ff5cc2fbdebb2bd8e9445e284803a60",
+ "33b32f41d9078f7d317aed837f1fc05f443bd034",
"wdspec"
],
"webdriver/tests/element_clear/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/element_clear/clear.py": [
- "d5a0a37d410f5a748aee5ac5be75acb837e491f8",
+ "cb1a5a8cb6568becf776031bca67079b54b53dc5",
"wdspec"
],
"webdriver/tests/element_click/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/element_click/bubbling.py": [
"492e283b686abe0743d72e31017be149726628f9",
"wdspec"
],
+ "webdriver/tests/element_click/click.py": [
+ "5af8f42f8b31cdc010a7f9e12f4a6814dc92e9de",
+ "wdspec"
+ ],
"webdriver/tests/element_click/select.py": [
"bddc341a0feb0d06e75415b8f98b8e9e0c2a829d",
"wdspec"
],
"webdriver/tests/element_click/stale.py": [
"490b6c17365c5eab24fd4a7ac07be6614a86a934",
"wdspec"
],
@@ -616890,16 +617010,20 @@
"webdriver/tests/element_send_keys/interactability.py": [
"5374827c90845ded660d540d23bb7e07ac84e445",
"wdspec"
],
"webdriver/tests/element_send_keys/scroll_into_view.py": [
"e4a50a53a13c1ab76c6c002bbda1c103f8c32ccf",
"wdspec"
],
+ "webdriver/tests/element_send_keys/send_keys.py": [
+ "90fe1e170efc56699af7af931cd9182abbbcef05",
+ "wdspec"
+ ],
"webdriver/tests/execute_async_script/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/execute_async_script/collections.py": [
"d6c95dfdcbfc3b9cf91cf6f943a17b7cd0fee79d",
"wdspec"
],
@@ -616954,16 +617078,24 @@
"webdriver/tests/find_elements_from_element/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/find_elements_from_element/find.py": [
"2daef29773c98649b04e3d6e97380ba569ec045d",
"wdspec"
],
+ "webdriver/tests/forward/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/forward/forward.py": [
+ "558f686e715eab83f2979c4ac772472b7eb91432",
+ "wdspec"
+ ],
"webdriver/tests/fullscreen_window/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/fullscreen_window/fullscreen.py": [
"8a6e06b2fbd2ec80326ab1145e6ddfb35c6995b4",
"wdspec"
],
@@ -617110,16 +617242,24 @@
"webdriver/tests/minimize_window/minimize.py": [
"8b59610ffcbb4ab41a74f149dc74d415edfaf60f",
"wdspec"
],
"webdriver/tests/minimize_window/user_prompts.py": [
"668c775a0e60b377a5a558a2a38b8887ac2683a0",
"wdspec"
],
+ "webdriver/tests/navigate_to/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/navigate_to/navigate.py": [
+ "6274392529489518207961ed5e6b6bb3ff081572",
+ "wdspec"
+ ],
"webdriver/tests/new_session/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/new_session/conftest.py": [
"d2df38e506cb9a3e501f03fe03e2a31af42d6f04",
"support"
],
@@ -617158,22 +617298,38 @@
"webdriver/tests/page_source/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/page_source/source.py": [
"f5e96dee33de36e3626c3e9bbfdd0014b27c305c",
"wdspec"
],
+ "webdriver/tests/refresh/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/refresh/refresh.py": [
+ "15f800f47dcc793325dbd920b8253648072503cd",
+ "wdspec"
+ ],
"webdriver/tests/send_alert_text/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/send_alert_text/send.py": [
- "743b0285cb404d5a2aafde268f9ba7e574760bd1",
+ "97c85c87bad0a09ec0ac97fb978e049e1b320283",
+ "wdspec"
+ ],
+ "webdriver/tests/set_timeouts/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/set_timeouts/set.py": [
+ "335f9e4ae5c406a90bf6a4431fefb629496ad767",
"wdspec"
],
"webdriver/tests/set_window_rect/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/set_window_rect/set.py": [
"79de443bc251f7effaa7c2ef3b95695f22db01c6",
@@ -617195,17 +617351,17 @@
"5a31a3917a5157516c10951a3b3d5ffb43b992d9",
"support"
],
"webdriver/tests/support/asserts.py": [
"1b839404daaca1d059cba98377edb91691ef7e82",
"support"
],
"webdriver/tests/support/fixtures.py": [
- "126e82c42568c9ecb240e735a2b1361882ecd9ba",
+ "2c96ed59d70421875c31757bbfe1182860437bd9",
"support"
],
"webdriver/tests/support/http_request.py": [
"cb40c781fea2280b98135522def5e6a116d7b946",
"support"
],
"webdriver/tests/support/inline.py": [
"48399821b7abca50df824e37c41829d7a4573be1",
@@ -617214,22 +617370,38 @@
"webdriver/tests/support/merge_dictionaries.py": [
"84a6d3c6f8f4afded0f21264bbaeebec38a7f827",
"support"
],
"webdriver/tests/support/wait.py": [
"511d4ba0ff21325b7503440b4111fac325139edc",
"support"
],
+ "webdriver/tests/switch_to_frame/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/switch_to_frame/switch.py": [
+ "90ab2a8b7bff127afd758b21210baa6b16b2d458",
+ "wdspec"
+ ],
"webdriver/tests/switch_to_parent_frame/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/switch_to_parent_frame/switch.py": [
- "c184952fc8a78f5edc7d573a9f8440b5eec334cc",
+ "df4dab8bd807672599d4b6191464ffdf5a9b7f44",
+ "wdspec"
+ ],
+ "webdriver/tests/switch_to_window/__init__.py": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "webdriver/tests/switch_to_window/switch.py": [
+ "7bb4468fdaf3afb40669e581a3b277b5194c2ee0",
"wdspec"
],
"webgl/OWNERS": [
"0df8e72f3ab70719aac73d3b06f043fac629939b",
"support"
],
"webgl/bufferSubData.html": [
"526612470551a0eb157b310c587d50080087808d",
--- a/testing/web-platform/tests/webdriver/tests/accept_alert/accept.py
+++ b/testing/web-platform/tests/webdriver/tests/accept_alert/accept.py
@@ -2,17 +2,23 @@ from tests.support.asserts import assert
from tests.support.inline import inline
def accept_alert(session):
return session.transport.send(
"POST", "session/{session_id}/alert/accept".format(**vars(session)))
-# 18.2 Accept Alert
+def test_null_response_value(session, url):
+ session.url = inline("<script>window.alert('Hello');</script>")
+
+ response = accept_alert(session)
+ value = assert_success(response)
+ assert value is None
+
def test_no_browsing_context(session, create_window):
# 18.2 step 1
session.window_handle = create_window()
session.close()
response = accept_alert(session)
assert_error(response, "no such window")
--- a/testing/web-platform/tests/webdriver/tests/actions/key.py
+++ b/testing/web-platform/tests/webdriver/tests/actions/key.py
@@ -1,14 +1,22 @@
import pytest
from tests.actions.support.keys import Keys
from tests.actions.support.refine import filter_dict, get_keys, get_events
+def test_null_response_value(session, key_chain):
+ value = key_chain.key_up("a").perform()
+ assert value is None
+
+ value = session.actions.release()
+ assert value is None
+
+
def test_lone_keyup_sends_no_events(session, key_reporter, key_chain):
key_chain.key_up("a").perform()
assert len(get_keys(key_reporter)) == 0
assert len(get_events(session)) == 0
session.actions.release()
assert len(get_keys(key_reporter)) == 0
assert len(get_events(session)) == 0
--- a/testing/web-platform/tests/webdriver/tests/actions/mouse.py
+++ b/testing/web-platform/tests/webdriver/tests/actions/mouse.py
@@ -7,16 +7,24 @@ from tests.support.inline import inline
from tests.support.wait import wait
def link_doc(dest):
content = "<a href=\"{}\" id=\"link\">destination</a>".format(dest)
return inline(content)
+def test_null_response_value(session, mouse_chain):
+ value = mouse_chain.click().perform()
+ assert value is None
+
+ value = session.actions.release()
+ assert value is None
+
+
def test_click_at_coordinates(session, test_actions_page, mouse_chain):
div_point = {
"x": 82,
"y": 187,
}
mouse_chain \
.pointer_move(div_point["x"], div_point["y"], duration=1000) \
.click() \
--- a/testing/web-platform/tests/webdriver/tests/add_cookie/add.py
+++ b/testing/web-platform/tests/webdriver/tests/add_cookie/add.py
@@ -5,16 +5,30 @@ from tests.support.fixtures import clear
def add_cookie(session, cookie):
return session.transport.send(
"POST", "session/{session_id}/cookie".format(**vars(session)),
{"cookie": cookie})
+def test_null_response_value(session, url):
+ new_cookie = {
+ "name": "hello",
+ "value": "world",
+ }
+
+ session.url = url("/common/blank.html")
+ clear_all_cookies(session)
+
+ response = add_cookie(session, new_cookie)
+ value = assert_success(response)
+ assert value is None
+
+
def test_add_domain_cookie(session, url, server_config):
new_cookie = {
"name": "hello",
"value": "world",
"domain": server_config["browser_host"],
"path": "/",
"httpOnly": False,
"secure": False
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/back/back.py
@@ -0,0 +1,16 @@
+from tests.support.inline import inline
+from tests.support.asserts import assert_success
+
+
+def back(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/back".format(**vars(session)))
+
+
+def test_null_response_value(session):
+ session.url = inline("<div>")
+ session.url = inline("<p>")
+
+ response = back(session)
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/delete_all_cookies/delete.py
@@ -0,0 +1,12 @@
+from tests.support.asserts import assert_success
+
+
+def delete_all_cookies(session):
+ return session.transport.send(
+ "DELETE", "/session/{session_id}/cookie".format(**vars(session)))
+
+
+def test_null_response_value(session, url):
+ response = delete_all_cookies(session)
+ value = assert_success(response)
+ assert value is None
--- a/testing/web-platform/tests/webdriver/tests/delete_cookie/delete.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_cookie/delete.py
@@ -3,16 +3,22 @@ from tests.support.asserts import assert
def delete_cookie(session, name):
return session.transport.send(
"DELETE", "/session/{session_id}/cookie/{name}".format(
session_id=session.session_id,
name=name))
+def test_null_response_value(session, url):
+ response = delete_cookie(session, "foo")
+ value = assert_success(response)
+ assert value is None
+
+
def test_no_browsing_context(session, create_window):
session.window_handle = create_window()
session.close()
response = delete_cookie(session, "foo")
assert_error(response, "no such window")
--- a/testing/web-platform/tests/webdriver/tests/delete_session/delete.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_session/delete.py
@@ -4,17 +4,23 @@ from webdriver import error
from tests.support.asserts import assert_success
from tests.support.inline import inline
def delete_session(session):
return session.transport.send("DELETE", "session/{session_id}".format(**vars(session)))
-def test_delete_session_with_dismissed_beforeunload_prompt(session):
+def test_null_response_value(session):
+ response = delete_session(session)
+ value = assert_success(response)
+ assert value is None
+
+
+def test_dismissed_beforeunload_prompt(session):
session.url = inline("""
<input type="text">
<script>
window.addEventListener("beforeunload", function (event) {
event.preventDefault();
});
</script>
""")
--- a/testing/web-platform/tests/webdriver/tests/dismiss_alert/dismiss.py
+++ b/testing/web-platform/tests/webdriver/tests/dismiss_alert/dismiss.py
@@ -2,17 +2,23 @@ from tests.support.asserts import assert
from tests.support.inline import inline
def dismiss_alert(session):
return session.transport.send(
"POST", "session/{session_id}/alert/dismiss".format(**vars(session)))
-# 18.1 Dismiss Alert
+def test_null_response_value(session, url):
+ session.url = inline("<script>window.alert('Hello');</script>")
+
+ response = dismiss_alert(session)
+ value = assert_success(response)
+ assert value is None
+
def test_no_browsing_context(session, create_window):
# 18.1 step 1
session.window_handle = create_window()
session.close()
response = dismiss_alert(session)
assert_error(response, "no such window")
--- a/testing/web-platform/tests/webdriver/tests/element_clear/clear.py
+++ b/testing/web-platform/tests/webdriver/tests/element_clear/clear.py
@@ -36,16 +36,25 @@ def get_events(session):
@pytest.fixture(scope="session")
def text_file(tmpdir_factory):
fh = tmpdir_factory.mktemp("tmp").join("hello.txt")
fh.write("hello")
return fh
+def test_null_response_value(session):
+ session.url = inline("<input>")
+ element = session.find.css("input", all=False)
+
+ response = element_clear(session, element)
+ value = assert_success(response)
+ assert value is None
+
+
def test_closed_context(session, create_window):
new_window = create_window()
session.window_handle = new_window
session.url = inline("<input>")
element = session.find.css("input", all=False)
session.close()
response = element_clear(session, element)
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/element_click/click.py
@@ -0,0 +1,18 @@
+from tests.support.asserts import assert_success
+from tests.support.inline import inline
+
+
+def element_click(session, element):
+ return session.transport.send(
+ "POST", "session/{session_id}/element/{element_id}/click".format(
+ session_id=session.session_id,
+ element_id=element.id))
+
+
+def test_null_response_value(session):
+ session.url = inline("<p>foo")
+ element = session.find.css("p", all=False)
+
+ response = element_click(session, element)
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/send_keys.py
@@ -0,0 +1,19 @@
+from tests.support.asserts import assert_success
+from tests.support.inline import inline
+
+
+def element_send_keys(session, element, text):
+ return session.transport.send(
+ "POST", "/session/{session_id}/element/{element_id}/value".format(
+ session_id=session.session_id,
+ element_id=element.id),
+ {"text": text})
+
+
+def test_null_response_value(session):
+ session.url = inline("<input>")
+ element = session.find.css("input", all=False)
+
+ response = element_send_keys(session, element, "foo")
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/forward/forward.py
@@ -0,0 +1,17 @@
+from tests.support.inline import inline
+from tests.support.asserts import assert_success
+
+
+def forward(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/forward".format(**vars(session)))
+
+
+def test_null_response_value(session):
+ session.url = inline("<div>")
+ session.url = inline("<p>")
+ session.back()
+
+ response = forward(session)
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/navigate_to/navigate.py
@@ -0,0 +1,14 @@
+from tests.support.inline import inline
+from tests.support.asserts import assert_success
+
+
+def navigate_to(session, url):
+ return session.transport.send(
+ "POST", "session/{session_id}/url".format(**vars(session)),
+ {"url": url})
+
+
+def test_null_response_value(session):
+ response = navigate_to(session, inline("<div/>"))
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/refresh/refresh.py
@@ -0,0 +1,15 @@
+from tests.support.inline import inline
+from tests.support.asserts import assert_success
+
+
+def refresh(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/refresh".format(**vars(session)))
+
+
+def test_null_response_value(session):
+ session.url = inline("<div>")
+
+ response = refresh(session)
+ value = assert_success(response)
+ assert value is None
--- a/testing/web-platform/tests/webdriver/tests/send_alert_text/send.py
+++ b/testing/web-platform/tests/webdriver/tests/send_alert_text/send.py
@@ -1,76 +1,83 @@
import pytest
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-def send_alert_text(session, body=None):
+def send_alert_text(session, text=None):
return session.transport.send(
"POST", "session/{session_id}/alert/text".format(**vars(session)),
- body)
+ {"text": text})
-# 18.4 Send Alert Text
+def test_null_response_value(session, url):
+ session.url = inline("<script>window.result = window.prompt('Enter Your Name: ', 'Name');</script>")
+
+ response = send_alert_text(session, "Federer")
+ value = assert_success(response)
+ assert value is None
+
@pytest.mark.parametrize("text", [None, {}, [], 42, True])
def test_invalid_input(session, text):
# 18.4 step 2
session.url = inline("<script>window.result = window.prompt('Enter Your Name: ', 'Name');</script>")
- response = send_alert_text(session, {"text": text})
+ response = send_alert_text(session, text)
assert_error(response, "invalid argument")
def test_no_browsing_context(session, create_window):
# 18.4 step 3
session.window_handle = create_window()
session.close()
- body = {"text": "Federer"}
- response = send_alert_text(session, body)
+
+ response = send_alert_text(session, "Federer")
assert_error(response, "no such window")
def test_no_user_prompt(session):
# 18.4 step 4
- body = {"text": "Federer"}
- response = send_alert_text(session, body)
+ response = send_alert_text(session, "Federer")
assert_error(response, "no such alert")
def test_alert_element_not_interactable(session):
# 18.4 step 5
session.url = inline("<script>window.alert('Hello');</script>")
- body = {"text": "Federer"}
- response = send_alert_text(session, body)
+
+ response = send_alert_text(session, "Federer")
assert_error(response, "element not interactable")
def test_confirm_element_not_interactable(session):
# 18.4 step 5
session.url = inline("<script>window.confirm('Hello');</script>")
- body = {"text": "Federer"}
- response = send_alert_text(session, body)
+
+ response = send_alert_text(session, "Federer")
assert_error(response, "element not interactable")
def test_send_alert_text(session):
# 18.4 step 6
session.url = inline("<script>window.result = window.prompt('Enter Your Name: ', 'Name');</script>")
- body = {"text": "Federer"}
- send_response = send_alert_text(session, body)
+
+ send_response = send_alert_text(session, "Federer")
assert_success(send_response)
+
accept_response = session.transport.send("POST", "session/{session_id}/alert/accept"
.format(session_id=session.session_id))
assert_success(accept_response)
assert session.execute_script("return window.result") == "Federer"
def test_send_alert_text_with_whitespace(session):
# 18.4 step 6
session.url = inline("<script>window.result = window.prompt('Enter Your Name: ', 'Name');</script>")
- body = {"text": " Fed erer "}
- send_response = send_alert_text(session, body)
+
+ send_response = send_alert_text(session, " Fed erer ")
assert_success(send_response)
+
accept_response = session.transport.send("POST", "session/{session_id}/alert/accept"
.format(session_id=session.session_id))
assert_success(accept_response)
assert session.execute_script("return window.result") == " Fed erer "
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/set_timeouts/set.py
@@ -0,0 +1,21 @@
+from tests.support.asserts import assert_success
+
+
+def set_timeouts(session, timeouts):
+ return session.transport.send(
+ "POST", "session/{session_id}/timeouts".format(**vars(session)),
+ timeouts)
+
+
+def test_null_response_value(session):
+ response = set_timeouts(session, {"implicit": 1000})
+ value = assert_success(response)
+ assert value is None
+
+ response = set_timeouts(session, {"pageLoad": 1000})
+ value = assert_success(response)
+ assert value is None
+
+ response = set_timeouts(session, {"script": 1000})
+ value = assert_success(response)
+ assert value is None
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_frame/switch.py
@@ -0,0 +1,21 @@
+import webdriver.protocol as protocol
+
+from tests.support.asserts import assert_success
+from tests.support.inline import inline, iframe
+
+
+def switch_to_frame(session, frame):
+ return session.transport.send(
+ "POST", "session/{session_id}/frame".format(**vars(session)),
+ {"id": frame},
+ encoder=protocol.Encoder, decoder=protocol.Decoder,
+ session=session)
+
+
+def test_null_response_value(session):
+ session.url = inline(iframe("<p>foo"))
+ frame_element = session.find.css("iframe", all=False)
+
+ response = switch_to_frame(session, frame_element)
+ value = assert_success(response)
+ assert value is None
--- a/testing/web-platform/tests/webdriver/tests/switch_to_parent_frame/switch.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_parent_frame/switch.py
@@ -5,16 +5,26 @@ from tests.support.asserts import assert
from tests.support.inline import inline, iframe
def switch_to_parent_frame(session):
return session.transport.send(
"POST", "session/{session_id}/frame/parent".format(**vars(session)))
+def test_null_response_value(session):
+ session.url = inline(iframe("<p>foo"))
+ frame_element = session.find.css("iframe", all=False)
+ session.switch_frame(frame_element)
+
+ response = switch_to_parent_frame(session)
+ value = assert_success(response)
+ assert value is None
+
+
def test_stale_element_from_iframe(session):
session.url = inline(iframe("<p>foo"))
frame_element = session.find.css("iframe", all=False)
session.switch_frame(frame_element)
stale_element = session.find.css("p", all=False)
result = switch_to_parent_frame(session)
assert_success(result)
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_window/switch.py
@@ -0,0 +1,15 @@
+from tests.support.asserts import assert_success
+
+
+def switch_to_window(session, handle):
+ return session.transport.send(
+ "POST", "session/{session_id}/window".format(**vars(session)),
+ {"handle": handle})
+
+
+def test_null_response_value(session, create_window):
+ new_handle = create_window()
+
+ response = switch_to_window(session, new_handle)
+ value = assert_success(response)
+ assert value is None