--- a/testing/web-platform/tests/webdriver/tests/accept_alert/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/accept_alert/__init__.py
@@ -0,0 +1,3 @@
+def accept_alert(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/alert/accept".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/accept_alert/accept.py
+++ b/testing/web-platform/tests/webdriver/tests/accept_alert/accept.py
@@ -1,15 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def accept_alert(session):
- return session.transport.send(
- "POST", "session/{session_id}/alert/accept".format(**vars(session)))
+from . import 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
--- a/testing/web-platform/tests/webdriver/tests/add_cookie/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/add_cookie/__init__.py
@@ -0,0 +1,4 @@
+def add_cookie(session, cookie):
+ return session.transport.send(
+ "POST", "session/{session_id}/cookie".format(**vars(session)),
+ {"cookie": cookie})
--- a/testing/web-platform/tests/webdriver/tests/add_cookie/add.py
+++ b/testing/web-platform/tests/webdriver/tests/add_cookie/add.py
@@ -1,18 +1,14 @@
from datetime import datetime, timedelta
from tests.support.asserts import assert_error, assert_success
from tests.support.fixtures import clear_all_cookies
-
-def add_cookie(session, cookie):
- return session.transport.send(
- "POST", "session/{session_id}/cookie".format(**vars(session)),
- {"cookie": cookie})
+from . import add_cookie
def test_null_response_value(session, url):
new_cookie = {
"name": "hello",
"value": "world",
}
--- a/testing/web-platform/tests/webdriver/tests/back/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/back/__init__.py
@@ -0,0 +1,3 @@
+def back(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/back".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/back/back.py
+++ b/testing/web-platform/tests/webdriver/tests/back/back.py
@@ -1,15 +1,12 @@
from tests.support.inline import inline
from tests.support.asserts import assert_error, assert_success
-
-def back(session):
- return session.transport.send(
- "POST", "session/{session_id}/back".format(**vars(session)))
+from . import back
def test_null_response_value(session):
session.url = inline("<div>")
session.url = inline("<p>")
response = back(session)
value = assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/back/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/back/user_prompts.py
@@ -1,19 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
from tests.support.inline import inline
-
-def back(session):
- return session.transport.send(
- "POST", "session/{session_id}/back".format(**vars(session)))
+from . import back
@pytest.fixture
def pages(session):
pages = [
inline("<p id=1>"),
inline("<p id=2>"),
]
--- a/testing/web-platform/tests/webdriver/tests/close_window/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/close_window/__init__.py
@@ -0,0 +1,3 @@
+def close(session):
+ return session.transport.send(
+ "DELETE", "session/{session_id}/window".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/close_window/close.py
+++ b/testing/web-platform/tests/webdriver/tests/close_window/close.py
@@ -1,18 +1,15 @@
import pytest
from webdriver import error
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def close(session):
- return session.transport.send(
- "DELETE", "session/{session_id}/window".format(**vars(session)))
+from . import close
def test_no_browsing_context(session, closed_window):
response = close(session)
assert_error(response, "no such window")
def test_close_browsing_context(session, create_window):
--- a/testing/web-platform/tests/webdriver/tests/close_window/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/close_window/user_prompts.py
@@ -1,18 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def close(session):
- return session.transport.send(
- "DELETE", "session/{session_id}/window".format(**vars(session)))
+from . import close
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog, create_window):
def check_user_prompt_closed_without_exception(dialog_type, retval):
original_handle = session.window_handle
new_handle = create_window()
session.window_handle = new_handle
--- a/testing/web-platform/tests/webdriver/tests/delete_all_cookies/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_all_cookies/__init__.py
@@ -0,0 +1,3 @@
+def delete_all_cookies(session):
+ return session.transport.send(
+ "DELETE", "/session/{session_id}/cookie".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/delete_all_cookies/delete.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_all_cookies/delete.py
@@ -1,14 +1,11 @@
from tests.support.asserts import assert_error, assert_success
-
-def delete_all_cookies(session):
- return session.transport.send(
- "DELETE", "/session/{session_id}/cookie".format(**vars(session)))
+from . import delete_all_cookies
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/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_cookie/__init__.py
@@ -0,0 +1,5 @@
+def delete_cookie(session, name):
+ return session.transport.send(
+ "DELETE", "/session/{session_id}/cookie/{name}".format(
+ session_id=session.session_id,
+ name=name))
--- a/testing/web-platform/tests/webdriver/tests/delete_cookie/delete.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_cookie/delete.py
@@ -1,16 +1,11 @@
from tests.support.asserts import assert_error, assert_success
-
-def delete_cookie(session, name):
- return session.transport.send(
- "DELETE", "/session/{session_id}/cookie/{name}".format(
- session_id=session.session_id,
- name=name))
+from . import delete_cookie
def test_null_response_value(session, url):
response = delete_cookie(session, "foo")
value = assert_success(response)
assert value is None
--- a/testing/web-platform/tests/webdriver/tests/delete_cookie/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_cookie/user_prompts.py
@@ -1,19 +1,17 @@
# META: timeout=long
import pytest
from webdriver.error import NoSuchCookieException
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def delete_cookie(session, name):
- return session.transport.send("DELETE", "/session/%s/cookie/%s" % (session.session_id, name))
+from . import delete_cookie
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog, create_cookie):
def check_user_prompt_closed_without_exception(dialog_type, retval):
create_cookie("foo", value="bar", path="/common/blank.html")
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/delete_session/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_session/__init__.py
@@ -0,0 +1,3 @@
+def delete_session(session):
+ return session.transport.send(
+ "DELETE", "session/{session_id}".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/delete_session/delete.py
+++ b/testing/web-platform/tests/webdriver/tests/delete_session/delete.py
@@ -1,17 +1,15 @@
import pytest
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)))
+from . import delete_session
def test_null_response_value(session):
response = delete_session(session)
value = assert_success(response)
assert value is None
# Need an explicit call to session.end() to notify the test harness
# that a new session needs to be created for subsequent tests.
--- a/testing/web-platform/tests/webdriver/tests/dismiss_alert/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/dismiss_alert/__init__.py
@@ -0,0 +1,3 @@
+def dismiss_alert(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/alert/dismiss".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/dismiss_alert/dismiss.py
+++ b/testing/web-platform/tests/webdriver/tests/dismiss_alert/dismiss.py
@@ -1,15 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def dismiss_alert(session):
- return session.transport.send(
- "POST", "session/{session_id}/alert/dismiss".format(**vars(session)))
+from . import 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
--- a/testing/web-platform/tests/webdriver/tests/element_clear/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/element_clear/__init__.py
@@ -0,0 +1,5 @@
+def element_clear(session, element):
+ return session.transport.send(
+ "POST", "/session/{session_id}/element/{element_id}/clear".format(
+ session_id=session.session_id,
+ element_id=element.id))
--- a/testing/web-platform/tests/webdriver/tests/element_clear/clear.py
+++ b/testing/web-platform/tests/webdriver/tests/element_clear/clear.py
@@ -8,33 +8,28 @@ from tests.support.asserts import (
assert_element_has_focus,
assert_error,
assert_events_equal,
assert_in_events,
assert_success,
)
from tests.support.inline import inline
+from . import element_clear
+
@pytest.fixture
def tracked_events():
return [
"blur",
"change",
"focus",
]
-def element_clear(session, element):
- return session.transport.send(
- "POST", "/session/{session_id}/element/{element_id}/clear".format(
- session_id=session.session_id,
- element_id=element.id))
-
-
@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):
--- a/testing/web-platform/tests/webdriver/tests/element_click/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/__init__.py
@@ -0,0 +1,5 @@
+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))
--- a/testing/web-platform/tests/webdriver/tests/element_click/bubbling.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/bubbling.py
@@ -1,17 +1,12 @@
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))
+from . import element_click
def test_click_event_bubbles_to_parents(session):
session.url = inline("""
<style>
body * {
margin: 10px;
padding: 10px;
--- a/testing/web-platform/tests/webdriver/tests/element_click/click.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/click.py
@@ -1,19 +1,14 @@
from webdriver import Element
from tests.support.asserts import assert_error, 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))
+from . import element_click
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)
--- a/testing/web-platform/tests/webdriver/tests/element_click/file_upload.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/file_upload.py
@@ -1,16 +1,12 @@
from tests.support.asserts import assert_error, 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))
+from . import element_click
def test_file_upload_state(session):
session.url = inline("<input type=file>")
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "invalid argument")
--- a/testing/web-platform/tests/webdriver/tests/element_click/interactability.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/interactability.py
@@ -1,18 +1,14 @@
import pytest
from tests.support.asserts import assert_error, 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))
+from . import element_click
@pytest.mark.parametrize("transform", ["translate(-100px, -100px)", "rotate(50deg)"])
def test_element_not_interactable_css_transform(session, transform):
session.url = inline("""
<div style="width: 500px; height: 100px;
background-color: blue; transform: {transform};">
<input type=button>
--- a/testing/web-platform/tests/webdriver/tests/element_click/navigate.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/navigate.py
@@ -1,18 +1,12 @@
-import pytest
-
-from tests.support.asserts import assert_error, assert_success
+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))
+from . import element_click
def test_numbers_link(session, server_config):
link = "/webdriver/tests/element_click/support/input.html"
session.url = inline("<a href={url}>123456</a>".format(url=link))
element = session.find.css("a", all=False)
response = element_click(session, element)
assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/element_click/scroll_into_view.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/scroll_into_view.py
@@ -1,18 +1,12 @@
-import pytest
-
-from tests.support.asserts import assert_error, assert_success
+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))
+from . import element_click
def test_scroll_into_view(session):
session.url = inline("""
<input type=text value=Federer
style="position: absolute; left: 0vh; top: 500vh">""")
element = session.find.css("input", all=False)
--- a/testing/web-platform/tests/webdriver/tests/element_click/stale.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/stale.py
@@ -1,17 +1,12 @@
from tests.support.asserts import assert_error
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))
+from . import element_click
def test_is_stale(session):
session.url = inline("<button>foo</button>")
button = session.find.css("button", all=False)
session.url = inline("<button>bar</button>")
response = element_click(session, button)
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/__init__.py
@@ -1,2 +1,10 @@
+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 map_files_to_multiline_text(files):
return "\n".join(map(lambda f: str(f), files))
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/content_editable.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/content_editable.py
@@ -1,23 +1,24 @@
-import pytest
+from tests.support.asserts import assert_success
+from tests.support.inline import inline
-from tests.support.inline import inline
+from . import element_send_keys
def test_sets_insertion_point_to_end(session):
session.url = inline('<div contenteditable=true>Hello,</div>')
input = session.find.css("div", all=False)
- input.send_keys(' world!')
- text = session.execute_script('return arguments[0].innerText', args=[input])
- assert "Hello, world!" == text.strip()
+
+ response = element_send_keys(session, input, " world!")
+ assert_success(response)
+
+ assert input.property("innerText").strip() == "Hello, world!"
-# 12. Let current text length be the element's length.
-#
-# 13. Set the text insertion caret using set selection range using current
-# text length for both the start and end parameters.
def test_sets_insertion_point_to_after_last_text_node(session):
session.url = inline('<div contenteditable=true>Hel<span>lo</span>,</div>')
input = session.find.css("div", all=False)
- input.send_keys(" world!")
- text = session.execute_script("return arguments[0].innerText", args=[input])
- assert "Hello, world!" == text.strip()
+
+ response = element_send_keys(session, input, " world!")
+ assert_success(response)
+
+ assert input.property("innerText").strip() == "Hello, world!"
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/events.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/events.py
@@ -2,40 +2,32 @@ import pytest
from tests.support.asserts import (
assert_element_has_focus,
assert_events_equal,
assert_success,
)
from tests.support.inline import inline
-from . import map_files_to_multiline_text
+from . import element_send_keys, map_files_to_multiline_text
@pytest.fixture
def tracked_events():
return [
"blur",
"change",
"focus",
"input",
"keydown",
"keypress",
"keyup",
]
-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_file_upload(session, create_files, add_event_listeners, tracked_events):
expected_events = [
"input",
"change",
]
files = create_files(["foo", "bar"])
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/file_upload.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/file_upload.py
@@ -1,20 +1,12 @@
from tests.support.asserts import assert_error, assert_files_uploaded, assert_success
from tests.support.inline import inline
-from . import map_files_to_multiline_text
-
-
-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})
+from . import element_send_keys, map_files_to_multiline_text
def test_empty_text(session):
session.url = inline("<input type=file>")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, "")
assert_error(response, "invalid argument")
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/interactability.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/interactability.py
@@ -1,18 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import iframe, 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})
+from . import element_send_keys
def test_body_is_interactable(session):
session.url = inline("""
<body onkeypress="document.querySelector('input').value += event.key">
<input>
</body>
""")
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/scroll_into_view.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/scroll_into_view.py
@@ -1,19 +1,13 @@
from tests.support.asserts import assert_success
from tests.support.fixtures import is_element_in_viewport
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})
+from . import element_send_keys
def test_element_outside_of_not_scrollable_viewport(session):
session.url = inline("<input style=\"position: relative; left: -9999px;\">")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, "foo")
assert_success(response)
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/send_keys.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/send_keys.py
@@ -1,22 +1,16 @@
import pytest
from webdriver import Element
from tests.support.asserts import assert_error, 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})
+from . import element_send_keys
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)
--- a/testing/web-platform/tests/webdriver/tests/element_send_keys/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/element_send_keys/user_prompts.py
@@ -1,22 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, 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})
+from . import element_send_keys
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input type=text>")
element = session.find.css("input", all=False)
--- a/testing/web-platform/tests/webdriver/tests/execute_async_script/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_async_script/__init__.py
@@ -0,0 +1,8 @@
+def execute_async_script(session, script, args=None):
+ if args is None:
+ args = []
+ body = {"script": script, "args": args}
+
+ return session.transport.send(
+ "POST", "/session/{session_id}/execute/async".format(**vars(session)),
+ body)
--- a/testing/web-platform/tests/webdriver/tests/execute_async_script/collections.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_async_script/collections.py
@@ -1,22 +1,14 @@
import os
from tests.support.asserts import assert_same_element, assert_success
from tests.support.inline import inline
-
-def execute_async_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/async".format(**vars(session)),
- body)
+from . import execute_async_script
def test_arguments(session):
response = execute_async_script(session, """
let resolve = arguments[0];
function func() {
return arguments;
}
--- a/testing/web-platform/tests/webdriver/tests/execute_async_script/execute_async.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_async_script/execute_async.py
@@ -1,21 +1,13 @@
import pytest
from tests.support.asserts import assert_error, assert_success
-
-def execute_async_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/async".format(**vars(session)),
- body)
+from . import execute_async_script
def test_no_browsing_context(session, closed_window):
response = execute_async_script(session, "argument[0](1);")
assert_error(response, "no such window")
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
--- a/testing/web-platform/tests/webdriver/tests/execute_async_script/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_async_script/user_prompts.py
@@ -1,23 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def execute_async_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/async".format(**vars(session)),
- body)
+from . import execute_async_script
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
create_dialog(dialog_type, text=dialog_type)
response = execute_async_script(session, "window.result = 1; arguments[0](1);")
--- a/testing/web-platform/tests/webdriver/tests/execute_script/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/__init__.py
@@ -0,0 +1,8 @@
+def execute_script(session, script, args=None):
+ if args is None:
+ args = []
+ body = {"script": script, "args": args}
+
+ return session.transport.send(
+ "POST", "/session/{session_id}/execute/sync".format(**vars(session)),
+ body)
--- a/testing/web-platform/tests/webdriver/tests/execute_script/collections.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/collections.py
@@ -1,22 +1,14 @@
import os
from tests.support.asserts import assert_same_element, assert_success
from tests.support.inline import inline
-
-def execute_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/sync".format(**vars(session)),
- body)
+from . import execute_script
def test_arguments(session):
response = execute_script(session, """
function func() {
return arguments;
}
return func("foo", "bar");
--- a/testing/web-platform/tests/webdriver/tests/execute_script/cyclic.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/cyclic.py
@@ -1,21 +1,12 @@
from tests.support.asserts import assert_error, assert_same_element, assert_success
from tests.support.inline import inline
-
-def execute_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/sync".format(
- session_id=session.session_id),
- body)
+from . import execute_script
def test_array(session):
response = execute_script(session, """
let arr = [];
arr.push(arr);
return arr;
""")
--- a/testing/web-platform/tests/webdriver/tests/execute_script/execute.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/execute.py
@@ -1,22 +1,13 @@
import pytest
from tests.support.asserts import assert_error, assert_success
-
-def execute_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/sync".format(
- session_id=session.session_id),
- body)
+from . import execute_script
def test_no_browsing_context(session, closed_window):
response = execute_script(session, "return 1;")
assert_error(response, "no such window")
def test_ending_comment(session):
--- a/testing/web-platform/tests/webdriver/tests/execute_script/json_serialize_windowproxy.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/json_serialize_windowproxy.py
@@ -1,27 +1,19 @@
import json
from tests.support.asserts import assert_success
+from . import execute_script
+
_window_id = "window-fcc6-11e5-b4f8-330a88ab9d7f"
_frame_id = "frame-075b-4da1-b6ba-e579c2d3230a"
-def execute_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/sync".format(**vars(session)),
- body)
-
-
def test_initial_window(session):
# non-auxiliary top-level browsing context
response = execute_script(session, "return window;")
raw_json = assert_success(response)
obj = json.loads(raw_json)
assert len(obj) == 1
assert _window_id in obj
--- a/testing/web-platform/tests/webdriver/tests/execute_script/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/execute_script/user_prompts.py
@@ -1,24 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def execute_script(session, script, args=None):
- if args is None:
- args = []
- body = {"script": script, "args": args}
-
- return session.transport.send(
- "POST", "/session/{session_id}/execute/sync".format(
- session_id=session.session_id),
- body)
+from . import execute_script
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
create_dialog(dialog_type, text=dialog_type)
response = execute_script(session, "window.result = 1; return 1;")
--- a/testing/web-platform/tests/webdriver/tests/find_element/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/find_element/__init__.py
@@ -0,0 +1,4 @@
+def find_element(session, using, value):
+ return session.transport.send(
+ "POST", "session/{session_id}/element".format(**vars(session)),
+ {"using": using, "value": value})
--- a/testing/web-platform/tests/webdriver/tests/find_element/find.py
+++ b/testing/web-platform/tests/webdriver/tests/find_element/find.py
@@ -1,18 +1,14 @@
import pytest
from tests.support.asserts import assert_error, assert_same_element, assert_success
from tests.support.inline import inline
-
-def find_element(session, using, value):
- return session.transport.send(
- "POST", "session/{session_id}/element".format(**vars(session)),
- {"using": using, "value": value})
+from . import find_element
def test_no_browsing_context(session, closed_window):
response = find_element(session, "css selector", "foo")
assert_error(response, "no such window")
@pytest.mark.parametrize("using", ["a", True, None, 1, [], {}])
--- a/testing/web-platform/tests/webdriver/tests/find_element_from_element/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/find_element_from_element/__init__.py
@@ -0,0 +1,6 @@
+def find_element_from_element(session, element_id, using, value):
+ return session.transport.send(
+ "POST", "session/{session_id}/element/{element_id}/element".format(
+ session_id=session.session_id,
+ element_id=element_id),
+ {"using": using, "value": value})
--- a/testing/web-platform/tests/webdriver/tests/find_element_from_element/find.py
+++ b/testing/web-platform/tests/webdriver/tests/find_element_from_element/find.py
@@ -1,124 +1,112 @@
import pytest
from tests.support.asserts import assert_error, assert_same_element, assert_success
from tests.support.inline import inline
-
-def find_element(session, element_id, using, value):
- return session.transport.send(
- "POST", "session/{session_id}/element/{element_id}/element".format(
- session_id=session.session_id,
- element_id=element_id),
- {"using": using, "value": value})
+from . import find_element_from_element
def test_no_browsing_context(session, closed_window):
- response = find_element(session, "notReal", "css selector", "foo")
+ response = find_element_from_element(session, "notReal", "css selector", "foo")
assert_error(response, "no such window")
@pytest.mark.parametrize("using", ["a", True, None, 1, [], {}])
def test_invalid_using_argument(session, using):
- # Step 1 - 2
- response = find_element(session, "notReal", using, "value")
+ response = find_element_from_element(session, "notReal", using, "value")
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [None, [], {}])
def test_invalid_selector_argument(session, value):
- # Step 3 - 4
- response = find_element(session, "notReal", "css selector", value)
+ response = find_element_from_element(session, "notReal", "css selector", value)
assert_error(response, "invalid argument")
@pytest.mark.parametrize("using,value",
[("css selector", "#linkText"),
("link text", "full link text"),
("partial link text", "link text"),
("tag name", "a"),
("xpath", "//a")])
def test_find_element(session, using, value):
- # Step 8 - 9
session.url = inline("<div><a href=# id=linkText>full link text</a></div>")
element = session.find.css("div", all=False)
- response = find_element(session, element.id, using, value)
+ response = find_element_from_element(session, element.id, using, value)
assert_success(response)
@pytest.mark.parametrize("document,value", [
("<a href=#>link text</a>", "link text"),
("<a href=#> link text </a>", "link text"),
("<a href=#>link<br>text</a>", "link\ntext"),
("<a href=#>link&text</a>", "link&text"),
("<a href=#>LINK TEXT</a>", "LINK TEXT"),
("<a href=# style='text-transform: uppercase'>link text</a>", "LINK TEXT"),
])
def test_find_element_link_text(session, document, value):
- # Step 8 - 9
session.url = inline("<div>{0}</div>".format(document))
element = session.find.css("div", all=False)
- response = find_element(session, element.id, "link text", value)
+ response = find_element_from_element(session, element.id, "link text", value)
assert_success(response)
@pytest.mark.parametrize("document,value", [
("<a href=#>partial link text</a>", "link"),
("<a href=#> partial link text </a>", "link"),
("<a href=#>partial link text</a>", "k t"),
("<a href=#>partial link<br>text</a>", "k\nt"),
("<a href=#>partial link&text</a>", "k&t"),
("<a href=#>PARTIAL LINK TEXT</a>", "LINK"),
("<a href=# style='text-transform: uppercase'>partial link text</a>", "LINK"),
])
def test_find_element_partial_link_text(session, document, value):
- # Step 8 - 9
session.url = inline("<div>{0}</div>".format(document))
element = session.find.css("div", all=False)
- response = find_element(session, element.id, "partial link text", value)
+ response = find_element_from_element(session, element.id, "partial link text", value)
assert_success(response)
-@pytest.mark.parametrize("using,value",[("css selector", "#wontExist")])
+@pytest.mark.parametrize("using,value", [("css selector", "#wontExist")])
def test_no_element(session, using, value):
- # Step 8 - 9
session.url = inline("<div></div>")
element = session.find.css("div", all=False)
- response = find_element(session, element.id, using, value)
+ response = find_element_from_element(session, element.id, using, value)
assert_error(response, "no such element")
@pytest.mark.parametrize("using,value",
[("css selector", "#linkText"),
("link text", "full link text"),
("partial link text", "link text"),
("tag name", "a"),
("xpath", "//*[name()='a']")])
def test_xhtml_namespace(session, using, value):
session.url = inline("""<p><a href="#" id="linkText">full link text</a></p>""",
doctype="xhtml")
from_element = session.execute_script("""return document.querySelector("p")""")
expected = session.execute_script("return document.links[0]")
- response = find_element(session, from_element.id, using, value)
+ response = find_element_from_element(session, from_element.id, using, value)
value = assert_success(response)
assert_same_element(session, value, expected)
def test_parent_htmldocument(session):
session.url = inline("")
from_element = session.execute_script("""return document.querySelector("body")""")
expected = session.execute_script("return document.documentElement")
- response = find_element(session, from_element.id, "xpath", "..")
+ response = find_element_from_element(session, from_element.id, "xpath", "..")
value = assert_success(response)
assert_same_element(session, value, expected)
def test_parent_of_document_node_errors(session):
session.url = inline("")
from_element = session.execute_script("return document.documentElement")
- response = find_element(session, from_element.id, "xpath", "..")
+ response = find_element_from_element(session, from_element.id, "xpath", "..")
assert_error(response, "invalid selector")
--- a/testing/web-platform/tests/webdriver/tests/find_elements/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/find_elements/__init__.py
@@ -0,0 +1,4 @@
+def find_elements(session, using, value):
+ return session.transport.send(
+ "POST", "session/{session_id}/elements".format(**vars(session)),
+ {"using": using, "value": value})
--- a/testing/web-platform/tests/webdriver/tests/find_elements/find.py
+++ b/testing/web-platform/tests/webdriver/tests/find_elements/find.py
@@ -1,18 +1,14 @@
import pytest
from tests.support.asserts import assert_error, assert_same_element, assert_success
from tests.support.inline import inline
-
-def find_elements(session, using, value):
- return session.transport.send(
- "POST", "session/{session_id}/elements".format(**vars(session)),
- {"using": using, "value": value})
+from . import find_elements
def test_no_browsing_context(session, closed_window):
response = find_elements(session, "css selector", "foo")
assert_error(response, "no such window")
@pytest.mark.parametrize("using", ["a", True, None, 1, [], {}])
--- a/testing/web-platform/tests/webdriver/tests/find_elements_from_element/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/find_elements_from_element/__init__.py
@@ -0,0 +1,6 @@
+def find_elements_from_element(session, element_id, using, value):
+ return session.transport.send(
+ "POST", "session/{session_id}/element/{element_id}/elements".format(
+ session_id=session.session_id,
+ element_id=element_id),
+ {"using": using, "value": value})
--- a/testing/web-platform/tests/webdriver/tests/find_elements_from_element/find.py
+++ b/testing/web-platform/tests/webdriver/tests/find_elements_from_element/find.py
@@ -1,70 +1,60 @@
import pytest
from tests.support.asserts import assert_error, assert_same_element, assert_success
from tests.support.inline import inline
-
-def find_elements(session, element_id, using, value):
- return session.transport.send(
- "POST", "session/{session_id}/element/{element_id}/elements".format(
- session_id=session.session_id,
- element_id=element_id),
- {"using": using, "value": value})
+from . import find_elements_from_element
def test_no_browsing_context(session, closed_window):
- response = find_elements(session, "notReal", "css selector", "foo")
+ response = find_elements_from_element(session, "notReal", "css selector", "foo")
assert_error(response, "no such window")
@pytest.mark.parametrize("using", [("a"), (True), (None), (1), ([]), ({})])
def test_invalid_using_argument(session, using):
- # Step 1 - 2
- response = find_elements(session, "notReal", using, "value")
+ response = find_elements_from_element(session, "notReal", using, "value")
assert_error(response, "invalid argument")
@pytest.mark.parametrize("value", [None, [], {}])
def test_invalid_selector_argument(session, value):
- # Step 3 - 4
- response = find_elements(session, "notReal", "css selector", value)
+ response = find_elements_from_element(session, "notReal", "css selector", value)
assert_error(response, "invalid argument")
@pytest.mark.parametrize("using,value",
[("css selector", "#linkText"),
("link text", "full link text"),
("partial link text", "link text"),
("tag name", "a"),
("xpath", "//a")])
def test_find_elements(session, using, value):
- # Step 8 - 9
session.url = inline("<div><a href=# id=linkText>full link text</a></div>")
element = session.find.css("div", all=False)
- response = find_elements(session, element.id, using, value)
+ response = find_elements_from_element(session, element.id, using, value)
assert_success(response)
@pytest.mark.parametrize("document,value", [
("<a href=#>link text</a>", "link text"),
("<a href=#> link text </a>", "link text"),
("<a href=#>link<br>text</a>", "link\ntext"),
("<a href=#>link&text</a>", "link&text"),
("<a href=#>LINK TEXT</a>", "LINK TEXT"),
("<a href=# style='text-transform: uppercase'>link text</a>", "LINK TEXT"),
])
def test_find_elements_link_text(session, document, value):
- # Step 8 - 9
session.url = inline("<div><a href=#>not wanted</a><br/>{0}</div>".format(document))
element = session.find.css("div", all=False)
expected = session.execute_script("return document.links[1];")
- response = find_elements(session, element.id, "link text", value)
+ response = find_elements_from_element(session, element.id, "link text", value)
value = assert_success(response)
assert isinstance(value, list)
assert len(value) == 1
found_element = value[0]
assert_same_element(session, found_element, expected)
@@ -73,72 +63,70 @@ def test_find_elements_link_text(session
("<a href=#> partial link text </a>", "link"),
("<a href=#>partial link text</a>", "k t"),
("<a href=#>partial link<br>text</a>", "k\nt"),
("<a href=#>partial link&text</a>", "k&t"),
("<a href=#>PARTIAL LINK TEXT</a>", "LINK"),
("<a href=# style='text-transform: uppercase'>partial link text</a>", "LINK"),
])
def test_find_elements_partial_link_text(session, document, value):
- # Step 8 - 9
session.url = inline("<div><a href=#>not wanted</a><br/>{0}</div>".format(document))
element = session.find.css("div", all=False)
expected = session.execute_script("return document.links[1];")
- response = find_elements(session, element.id, "partial link text", value)
+ response = find_elements_from_element(session, element.id, "partial link text", value)
value = assert_success(response)
assert isinstance(value, list)
assert len(value) == 1
found_element = value[0]
assert_same_element(session, found_element, expected)
@pytest.mark.parametrize("using,value", [("css selector", "#wontExist")])
def test_no_element(session, using, value):
- # Step 8 - 9
session.url = inline("<div></div>")
element = session.find.css("div", all=False)
- response = find_elements(session, element.id, using, value)
+ response = find_elements_from_element(session, element.id, using, value)
assert response.body["value"] == []
@pytest.mark.parametrize("using,value",
[("css selector", "#linkText"),
("link text", "full link text"),
("partial link text", "link text"),
("tag name", "a"),
("xpath", "//*[name()='a']")])
def test_xhtml_namespace(session, using, value):
session.url = inline("""<p><a href="#" id="linkText">full link text</a></p>""",
doctype="xhtml")
from_element = session.execute_script("""return document.querySelector("p")""")
expected = session.execute_script("return document.links[0]")
- response = find_elements(session, from_element.id, using, value)
+ response = find_elements_from_element(session, from_element.id, using, value)
value = assert_success(response)
assert isinstance(value, list)
assert len(value) == 1
found_element = value[0]
assert_same_element(session, found_element, expected)
def test_parent_htmldocument(session):
session.url = inline("")
from_element = session.execute_script("""return document.querySelector("body")""")
expected = session.execute_script("return document.documentElement")
- response = find_elements(session, from_element.id, "xpath", "..")
+ response = find_elements_from_element(session, from_element.id, "xpath", "..")
value = assert_success(response)
assert isinstance(value, list)
assert len(value) == 1
found_element = value[0]
assert_same_element(session, found_element, expected)
def test_parent_of_document_node_errors(session):
session.url = inline("")
from_element = session.execute_script("return document.documentElement")
- response = find_elements(session, from_element.id, "xpath", "..")
+ response = find_elements_from_element(session, from_element.id, "xpath", "..")
assert_error(response, "invalid selector")
--- a/testing/web-platform/tests/webdriver/tests/forward/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/forward/__init__.py
@@ -0,0 +1,3 @@
+def forward(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/forward".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/forward/forward.py
+++ b/testing/web-platform/tests/webdriver/tests/forward/forward.py
@@ -1,15 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def forward(session):
- return session.transport.send(
- "POST", "session/{session_id}/forward".format(**vars(session)))
+from . import forward
def test_null_response_value(session):
session.url = inline("<div>")
session.url = inline("<p>")
session.back()
response = forward(session)
--- a/testing/web-platform/tests/webdriver/tests/forward/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/forward/user_prompts.py
@@ -1,19 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
from tests.support.inline import inline
-
-def forward(session):
- return session.transport.send(
- "POST", "session/{session_id}/forward".format(**vars(session)))
+from . import forward
@pytest.fixture
def pages(session):
pages = [
inline("<p id=1>"),
inline("<p id=2>"),
]
--- a/testing/web-platform/tests/webdriver/tests/fullscreen_window/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/fullscreen_window/__init__.py
@@ -0,0 +1,14 @@
+def fullscreen(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/window/fullscreen".format(**vars(session)))
+
+
+def is_fullscreen(session):
+ # At the time of writing, WebKit does not conform to the
+ # Fullscreen API specification.
+ #
+ # Remove the prefixed fallback when
+ # https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
+ return session.execute_script("""
+ return !!(window.fullScreen || document.webkitIsFullScreen)
+ """)
--- a/testing/web-platform/tests/webdriver/tests/fullscreen_window/fullscreen.py
+++ b/testing/web-platform/tests/webdriver/tests/fullscreen_window/fullscreen.py
@@ -1,25 +1,11 @@
from tests.support.asserts import assert_error, assert_success
-
-def fullscreen(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/fullscreen".format(**vars(session)))
-
-
-def is_fullscreen(session):
- # At the time of writing, WebKit does not conform to the
- # Fullscreen API specification.
- #
- # Remove the prefixed fallback when
- # https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
- return session.execute_script("""
- return !!(window.fullScreen || document.webkitIsFullScreen)
- """)
+from . import fullscreen, is_fullscreen
def test_no_browsing_context(session, closed_window):
response = fullscreen(session)
assert_error(response, "no such window")
def test_fullscreen(session):
--- a/testing/web-platform/tests/webdriver/tests/fullscreen_window/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/fullscreen_window/user_prompts.py
@@ -1,29 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def fullscreen(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/fullscreen".format(**vars(session)))
-
-
-def is_fullscreen(session):
- # At the time of writing, WebKit does not conform to the
- # Fullscreen API specification.
- #
- # Remove the prefixed fallback when
- # https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
- return session.execute_script("""
- return !!(window.fullScreen || document.webkitIsFullScreen)
- """)
+from . import fullscreen, is_fullscreen
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
assert is_fullscreen(session) is False
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/get_active_element/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_active_element/__init__.py
@@ -0,0 +1,3 @@
+def get_active_element(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/active".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_active_element/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_active_element/get.py
@@ -1,19 +1,12 @@
from tests.support.asserts import assert_error, assert_same_element
from tests.support.inline import inline
-
-def read_global(session, name):
- return session.execute_script("return %s;" % name)
-
-
-def get_active_element(session):
- return session.transport.send(
- "GET", "session/{session_id}/element/active".format(**vars(session)))
+from . import get_active_element
def assert_is_active_element(session, response):
"""Ensure that the provided object is a successful WebDriver
response describing an element reference and that the referenced
element matches the element returned by the `activeElement`
attribute of the current browsing context's active document.
--- a/testing/web-platform/tests/webdriver/tests/get_alert_text/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_alert_text/__init__.py
@@ -0,0 +1,3 @@
+def get_alert_text(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/alert/text".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_alert_text/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_alert_text/get.py
@@ -1,15 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def get_alert_text(session):
- return session.transport.send(
- "GET", "session/{session_id}/alert/text".format(**vars(session)))
+from . import get_alert_text
def test_no_browsing_context(session, closed_window):
response = get_alert_text(session)
assert_error(response, "no such window")
def test_no_user_prompt(session):
--- a/testing/web-platform/tests/webdriver/tests/get_current_url/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_current_url/__init__.py
@@ -0,0 +1,3 @@
+def get_current_url(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/url".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_current_url/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_current_url/get.py
@@ -1,27 +1,20 @@
-import json
-import pytest
-import types
-
from tests.support.inline import inline
from tests.support.asserts import assert_error, assert_success
from tests.support.wait import wait
-alert_doc = inline("<script>window.alert()</script>")
+from . import get_current_url
+
+
frame_doc = inline("<p>frame")
one_frame_doc = inline("<iframe src='%s'></iframe>" % frame_doc)
two_frames_doc = inline("<iframe src='%s'></iframe>" % one_frame_doc)
-def get_current_url(session):
- return session.transport.send(
- "GET", "session/{session_id}/url".format(**vars(session)))
-
-
def test_no_browsing_context(session, closed_window):
response = get_current_url(session)
assert_error(response, "no such window")
def test_get_current_url_matches_location(session):
url = session.execute_script("return window.location.href")
@@ -61,33 +54,36 @@ def test_get_current_url_file_protocol(s
def test_set_malformed_url(session):
result = session.transport.send("POST",
"session/%s/url" % session.session_id,
{"url": "foo"})
assert_error(result, "invalid argument")
+
def test_get_current_url_after_modified_location(session):
start = get_current_url(session)
session.execute_script("window.location.href = 'about:blank#wd_test_modification'")
wait(session,
lambda _: get_current_url(session).body["value"] != start.body["value"],
"URL did not change")
result = get_current_url(session)
assert_success(result, "about:blank#wd_test_modification")
+
def test_get_current_url_nested_browsing_context(session, create_frame):
session.url = "about:blank#wd_from_within_frame"
session.switch_frame(create_frame())
result = get_current_url(session)
assert_success(result, "about:blank#wd_from_within_frame")
+
def test_get_current_url_nested_browsing_contexts(session):
session.url = two_frames_doc
top_level_url = session.url
outer_frame = session.find.css("iframe", all=False)
session.switch_frame(outer_frame)
inner_frame = session.find.css("iframe", all=False)
--- a/testing/web-platform/tests/webdriver/tests/get_current_url/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/get_current_url/user_prompts.py
@@ -1,18 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
from tests.support.inline import inline
-
-def get_current_url(session):
- return session.transport.send("GET", "session/%s/url" % session.session_id)
+from . import get_current_url
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<p id=1>")
expected_url = session.url
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webdriver/tests/get_element_attribute/__init__.py
@@ -0,0 +1,6 @@
+def get_element_attribute(session, element, attr):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/{element_id}/attribute/{attr}".format(
+ session_id=session.session_id,
+ element_id=element,
+ attr=attr))
--- a/testing/web-platform/tests/webdriver/tests/get_element_attribute/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_attribute/get.py
@@ -1,43 +1,35 @@
import pytest
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def get_element_attribute(session, element, attr):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/attribute/{attr}".format(
- session_id=session.session_id,
- element_id=element,
- attr=attr))
+from . import get_element_attribute
def test_no_browsing_context(session, closed_window):
response = get_element_attribute(session, "foo", "id")
assert_error(response, "no such window")
def test_element_not_found(session):
- # 13.2 Step 3
result = get_element_attribute(session, "foo", "id")
assert_error(result, "no such element")
def test_element_stale(session):
session.url = inline("<input id=foo>")
element = session.find.css("input", all=False)
session.refresh()
result = get_element_attribute(session, element.id, "id")
assert_error(result, "stale element reference")
def test_normal(session):
- # 13.2 Step 5
session.url = inline("<input type=checkbox>")
element = session.find.css("input", all=False)
result = get_element_attribute(session, element.id, "input")
assert_success(result, None)
# Check we are not returning the property which will have a different value
assert session.execute_script("return document.querySelector('input').checked") is False
element.click()
--- a/testing/web-platform/tests/webdriver/tests/get_element_property/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_property/__init__.py
@@ -0,0 +1,6 @@
+def get_element_property(session, element_id, prop):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/{element_id}/property/{prop}".format(
+ session_id=session.session_id,
+ element_id=element_id,
+ prop=prop))
--- a/testing/web-platform/tests/webdriver/tests/get_element_property/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_property/get.py
@@ -1,29 +1,23 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-_input = inline("<input id=i1>")
+from . import get_element_property
-def get_element_property(session, element_id, prop):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/property/{prop}".format(
- session_id=session.session_id,
- element_id=element_id,
- prop=prop))
+_input = inline("<input id=i1>")
def test_no_browsing_context(session, closed_window):
response = get_element_property(session, "foo", "id")
assert_error(response, "no such window")
def test_element_not_found(session):
- # 13.3 Step 3
result = get_element_property(session, "foo", "id")
assert_error(result, "no such element")
def test_element_stale(session):
session.url = _input
element = session.find.css("input", all=False)
session.refresh()
--- a/testing/web-platform/tests/webdriver/tests/get_element_property/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_property/user_prompts.py
@@ -1,20 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_error, assert_success, assert_dialog_handled
from tests.support.inline import inline
-
-def get_element_property(session, element_id, name):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/property/{name}".format(
- session_id=session.session_id, element_id=element_id, name=name))
+from . import get_element_property
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input id=foo>")
element = session.find.css("#foo", all=False)
--- a/testing/web-platform/tests/webdriver/tests/get_element_tag_name/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_tag_name/__init__.py
@@ -0,0 +1,5 @@
+def get_element_tag_name(session, element_id):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/{element_id}/name".format(
+ session_id=session.session_id,
+ element_id=element_id))
--- a/testing/web-platform/tests/webdriver/tests/get_element_tag_name/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_tag_name/get.py
@@ -1,17 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def get_element_tag_name(session, element_id):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/name".format(
- session_id=session.session_id,
- element_id=element_id))
+from . import get_element_tag_name
def test_no_browsing_context(session, closed_window):
response = get_element_tag_name(session, "foo")
assert_error(response, "no such window")
def test_element_not_found(session):
--- a/testing/web-platform/tests/webdriver/tests/get_element_tag_name/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_tag_name/user_prompts.py
@@ -1,19 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_error, assert_success, assert_dialog_handled
from tests.support.inline import inline
-
-def get_element_tag_name(session, element_id):
- return session.transport.send("GET", "session/{session_id}/element/{element_id}/name".format(
- session_id=session.session_id, element_id=element_id))
+from . import get_element_tag_name
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input id=foo>")
element = session.find.css("#foo", all=False)
--- a/testing/web-platform/tests/webdriver/tests/get_element_text/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_text/__init__.py
@@ -0,0 +1,5 @@
+def get_element_text(session, element_id):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/{element_id}/text".format(
+ session_id=session.session_id,
+ element_id=element_id))
--- a/testing/web-platform/tests/webdriver/tests/get_element_text/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_element_text/get.py
@@ -1,17 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def get_element_text(session, element_id):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/text".format(
- session_id=session.session_id,
- element_id=element_id))
+from . import get_element_text
def test_no_browsing_context(session, closed_window):
response = get_element_text(session, "foo")
assert_error(response, "no such window")
def test_getting_text_of_a_non_existant_element_is_an_error(session):
--- a/testing/web-platform/tests/webdriver/tests/get_named_cookie/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_named_cookie/__init__.py
@@ -0,0 +1,5 @@
+def get_named_cookie(session, name):
+ return session.transport.send(
+ "GET", "session/{session_id}/cookie/{name}".format(
+ session_id=session.session_id,
+ name=name))
--- a/testing/web-platform/tests/webdriver/tests/get_named_cookie/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_named_cookie/get.py
@@ -1,20 +1,15 @@
from datetime import datetime, timedelta
from tests.support.asserts import assert_error, assert_success
from tests.support.fixtures import clear_all_cookies
from tests.support.inline import inline
-
-def get_named_cookie(session, name):
- return session.transport.send(
- "GET", "session/{session_id}/cookie/{name}".format(
- session_id=session.session_id,
- name=name))
+from . import get_named_cookie
def test_no_browsing_context(session, closed_window):
response = get_named_cookie(session, "foo")
assert_error(response, "no such window")
def test_get_named_session_cookie(session, url):
--- a/testing/web-platform/tests/webdriver/tests/get_timeouts/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_timeouts/__init__.py
@@ -0,0 +1,3 @@
+def get_timeouts(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/timeouts".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_timeouts/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_timeouts/get.py
@@ -1,14 +1,11 @@
from tests.support.asserts import assert_success
-
-def get_timeouts(session):
- return session.transport.send(
- "GET", "session/{session_id}/timeouts".format(**vars(session)))
+from . import get_timeouts
def test_get_timeouts(session):
response = get_timeouts(session)
assert_success(response)
assert "value" in response.body
assert isinstance(response.body["value"], dict)
--- a/testing/web-platform/tests/webdriver/tests/get_title/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_title/__init__.py
@@ -0,0 +1,3 @@
+def get_title(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/title".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_title/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_title/get.py
@@ -1,22 +1,19 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
from tests.support.wait import wait
+from . import get_title
+
def read_global(session, name):
return session.execute_script("return %s;" % name)
-def get_title(session):
- return session.transport.send(
- "GET", "session/{session_id}/title".format(**vars(session)))
-
-
def test_no_browsing_context(session, closed_window):
response = get_title(session)
assert_error(response, "no such window")
def test_title_from_top_context(session):
session.url = inline("<title>Foobar</title><h2>Hello</h2>")
--- a/testing/web-platform/tests/webdriver/tests/get_title/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/get_title/user_prompts.py
@@ -1,19 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
from tests.support.inline import inline
-
-def get_title(session):
- return session.transport.send(
- "GET", "session/{session_id}/title".format(**vars(session)))
+from . import get_title
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<title>Foo</title>")
expected_title = session.title
--- a/testing/web-platform/tests/webdriver/tests/get_window_rect/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/get_window_rect/__init__.py
@@ -0,0 +1,3 @@
+def get_window_rect(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/window/rect".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/get_window_rect/get.py
+++ b/testing/web-platform/tests/webdriver/tests/get_window_rect/get.py
@@ -1,18 +1,12 @@
from tests.support.asserts import assert_error
from tests.support.inline import inline
-
-alert_doc = inline("<script>window.alert()</script>")
-
-
-def get_window_rect(session):
- return session.transport.send(
- "GET", "session/{session_id}/window/rect".format(**vars(session)))
+from . import get_window_rect
def test_no_browsing_context(session, closed_window):
response = get_window_rect(session)
assert_error(response, "no such window")
def test_payload(session):
--- a/testing/web-platform/tests/webdriver/tests/get_window_rect/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/get_window_rect/user_prompts.py
@@ -1,18 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def get_window_rect(session):
- return session.transport.send(
- "GET", "session/{session_id}/window/rect".format(**vars(session)))
+from . import get_window_rect
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
original_rect = session.window.rect
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/is_element_selected/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/is_element_selected/__init__.py
@@ -0,0 +1,5 @@
+def is_element_selected(session, element_id):
+ return session.transport.send(
+ "GET", "session/{session_id}/element/{element_id}/selected".format(
+ session_id=session.session_id,
+ element_id=element_id))
--- a/testing/web-platform/tests/webdriver/tests/is_element_selected/selected.py
+++ b/testing/web-platform/tests/webdriver/tests/is_element_selected/selected.py
@@ -1,31 +1,26 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
+from . import is_element_selected
+
check_doc = inline("""
<input id=checked type=checkbox checked>
<input id=notChecked type=checkbox>
""")
option_doc = inline("""
<select>
<option id=notSelected>r-
<option id=selected selected>r+
</select>
""")
-def is_element_selected(session, element_id):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/selected".format(
- session_id=session.session_id,
- element_id=element_id))
-
-
def test_no_browsing_context(session, closed_window):
response = is_element_selected(session, "foo")
assert_error(response, "no such window")
def test_element_stale(session):
session.url = check_doc
element = session.find.css("#checked", all=False)
--- a/testing/web-platform/tests/webdriver/tests/is_element_selected/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/is_element_selected/user_prompts.py
@@ -1,21 +1,16 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
from tests.support.inline import inline
-
-def is_element_selected(session, element_id):
- return session.transport.send(
- "GET", "session/{session_id}/element/{element_id}/selected".format(
- session_id=session.session_id,
- element_id=element_id))
+from . import is_element_selected
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input id=foo type=checkbox checked>")
element = session.find.css("#foo", all=False)
element.send_keys("foo")
--- a/testing/web-platform/tests/webdriver/tests/maximize_window/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/maximize_window/__init__.py
@@ -0,0 +1,3 @@
+def maximize(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/window/maximize".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/maximize_window/maximize.py
+++ b/testing/web-platform/tests/webdriver/tests/maximize_window/maximize.py
@@ -1,14 +1,11 @@
from tests.support.asserts import assert_error, assert_success
-
-def maximize(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/maximize".format(**vars(session)))
+from . import maximize
def is_fullscreen(session):
# At the time of writing, WebKit does not conform to the
# Fullscreen API specification.
#
# Remove the prefixed fallback when
# https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
--- a/testing/web-platform/tests/webdriver/tests/maximize_window/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/maximize_window/user_prompts.py
@@ -1,18 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def maximize(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/maximize".format(**vars(session)))
+from . import maximize
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
original_size = session.window.size
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/minimize_window/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/minimize_window/__init__.py
@@ -0,0 +1,7 @@
+def minimize(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/window/minimize".format(**vars(session)))
+
+
+def is_minimized(session):
+ return session.execute_script("return document.hidden")
--- a/testing/web-platform/tests/webdriver/tests/minimize_window/minimize.py
+++ b/testing/web-platform/tests/webdriver/tests/minimize_window/minimize.py
@@ -1,31 +1,24 @@
from tests.support.asserts import assert_error, assert_success
-
-def minimize(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/minimize".format(**vars(session)))
+from . import is_minimized, minimize
def is_fullscreen(session):
# At the time of writing, WebKit does not conform to the
# Fullscreen API specification.
#
# Remove the prefixed fallback when
# https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
return session.execute_script("""
return !!(window.fullScreen || document.webkitIsFullScreen)
""")
-def is_minimized(session):
- return session.execute_script("return document.hidden")
-
-
def test_no_browsing_context(session, closed_window):
response = minimize(session)
assert_error(response, "no such window")
def test_fully_exit_fullscreen(session):
session.window.fullscreen()
assert is_fullscreen(session)
--- a/testing/web-platform/tests/webdriver/tests/minimize_window/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/minimize_window/user_prompts.py
@@ -1,22 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def minimize(session):
- return session.transport.send(
- "POST", "session/{session_id}/window/minimize".format(**vars(session)))
-
-
-def is_minimized(session):
- return session.execute_script("return document.hidden")
+from . import is_minimized, minimize
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
assert not is_minimized(session)
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/navigate_to/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/navigate_to/__init__.py
@@ -0,0 +1,4 @@
+def navigate_to(session, url):
+ return session.transport.send(
+ "POST", "session/{session_id}/url".format(**vars(session)),
+ {"url": url})
--- a/testing/web-platform/tests/webdriver/tests/navigate_to/navigate.py
+++ b/testing/web-platform/tests/webdriver/tests/navigate_to/navigate.py
@@ -1,16 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def navigate_to(session, url):
- return session.transport.send(
- "POST", "session/{session_id}/url".format(**vars(session)),
- {"url": url})
+from . import navigate_to
def test_null_response_value(session):
response = navigate_to(session, inline("<div/>"))
value = assert_success(response)
assert value is None
--- a/testing/web-platform/tests/webdriver/tests/page_source/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/page_source/__init__.py
@@ -0,0 +1,3 @@
+def get_page_source(session):
+ return session.transport.send(
+ "GET", "session/{session_id}/source".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/page_source/source.py
+++ b/testing/web-platform/tests/webdriver/tests/page_source/source.py
@@ -1,15 +1,12 @@
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def get_page_source(session):
- return session.transport.send(
- "GET", "session/{session_id}/source".format(**vars(session)))
+from . import get_page_source
def test_no_browsing_context(session, closed_window):
response = get_page_source(session)
assert_error(response, "no such window")
def test_source_matches_outer_html(session):
--- a/testing/web-platform/tests/webdriver/tests/refresh/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/refresh/__init__.py
@@ -0,0 +1,3 @@
+def refresh(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/refresh".format(**vars(session)))
--- a/testing/web-platform/tests/webdriver/tests/refresh/refresh.py
+++ b/testing/web-platform/tests/webdriver/tests/refresh/refresh.py
@@ -1,19 +1,16 @@
import pytest
from webdriver.error import NoSuchElementException, StaleElementReferenceException
from tests.support.inline import inline
from tests.support.asserts import assert_error, assert_success
-
-def refresh(session):
- return session.transport.send(
- "POST", "session/{session_id}/refresh".format(**vars(session)))
+from . import refresh
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/refresh/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/refresh/user_prompts.py
@@ -2,20 +2,17 @@
import pytest
from webdriver.error import StaleElementReferenceException
from tests.support.inline import inline
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def refresh(session):
- return session.transport.send(
- "POST", "session/{session_id}/refresh".format(**vars(session)))
+from . import refresh
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<div id=foo>")
element = session.find.css("#foo", all=False)
--- a/testing/web-platform/tests/webdriver/tests/send_alert_text/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/send_alert_text/__init__.py
@@ -0,0 +1,4 @@
+def send_alert_text(session, text=None):
+ return session.transport.send(
+ "POST", "session/{session_id}/alert/text".format(**vars(session)),
+ {"text": text})
--- 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,18 +1,14 @@
import pytest
from tests.support.asserts import assert_error, assert_success
from tests.support.inline import inline
-
-def send_alert_text(session, text=None):
- return session.transport.send(
- "POST", "session/{session_id}/alert/text".format(**vars(session)),
- {"text": text})
+from . import 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
--- a/testing/web-platform/tests/webdriver/tests/set_timeouts/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/set_timeouts/__init__.py
@@ -0,0 +1,4 @@
+def set_timeouts(session, timeouts):
+ return session.transport.send(
+ "POST", "session/{session_id}/timeouts".format(**vars(session)),
+ timeouts)
--- a/testing/web-platform/tests/webdriver/tests/set_timeouts/set.py
+++ b/testing/web-platform/tests/webdriver/tests/set_timeouts/set.py
@@ -1,15 +1,11 @@
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)
+from . import set_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})
--- a/testing/web-platform/tests/webdriver/tests/set_window_rect/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/set_window_rect/__init__.py
@@ -0,0 +1,4 @@
+def set_window_rect(session, rect):
+ return session.transport.send(
+ "POST", "session/{session_id}/window/rect".format(**vars(session)),
+ rect)
--- a/testing/web-platform/tests/webdriver/tests/set_window_rect/set.py
+++ b/testing/web-platform/tests/webdriver/tests/set_window_rect/set.py
@@ -1,19 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_error, assert_success
-
-def set_window_rect(session, rect):
- return session.transport.send(
- "POST", "session/{session_id}/window/rect".format(**vars(session)),
- rect)
+from . import set_window_rect
def is_fullscreen(session):
# At the time of writing, WebKit does not conform to the
# Fullscreen API specification.
#
# Remove the prefixed fallback when
# https://bugs.webkit.org/show_bug.cgi?id=158125 is fixed.
--- a/testing/web-platform/tests/webdriver/tests/set_window_rect/user_prompts.py
+++ b/testing/web-platform/tests/webdriver/tests/set_window_rect/user_prompts.py
@@ -1,19 +1,15 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
-
-def set_window_rect(session, rect):
- return session.transport.send(
- "POST", "session/{session_id}/window/rect".format(**vars(session)),
- rect)
+from . import set_window_rect
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
original_rect = session.window.rect
create_dialog(dialog_type, text=dialog_type)
--- a/testing/web-platform/tests/webdriver/tests/status/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/status/__init__.py
@@ -0,0 +1,2 @@
+def get_status(session):
+ return session.transport.send("GET", "/status")
--- a/testing/web-platform/tests/webdriver/tests/status/status.py
+++ b/testing/web-platform/tests/webdriver/tests/status/status.py
@@ -1,15 +1,13 @@
import json
from tests.support.asserts import assert_success
-
-def get_status(session):
- return session.transport.send("GET", "/status")
+from . import get_status
def test_get_status_no_session(http):
with http.get("/status") as response:
# GET /status should never return an error
assert response.status == 200
parsed_obj = json.loads(response.read().decode("utf-8"))
--- a/testing/web-platform/tests/webdriver/tests/switch_to_frame/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_frame/__init__.py
@@ -0,0 +1,6 @@
+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)
--- a/testing/web-platform/tests/webdriver/tests/switch_to_frame/switch.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_frame/switch.py
@@ -1,20 +1,14 @@
import webdriver.protocol as protocol
from tests.support.asserts import assert_error, 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)
+from . import switch_to_frame
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)
--- a/testing/web-platform/tests/webdriver/tests/switch_to_parent_frame/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_parent_frame/__init__.py
@@ -0,0 +1,3 @@
+def switch_to_parent_frame(session):
+ return session.transport.send(
+ "POST", "session/{session_id}/frame/parent".format(**vars(session)))
--- 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
@@ -1,19 +1,16 @@
import pytest
from webdriver import StaleElementReferenceException
from tests.support.asserts import assert_error, assert_success
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)))
+from . import switch_to_parent_frame
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)
--- a/testing/web-platform/tests/webdriver/tests/switch_to_window/__init__.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_window/__init__.py
@@ -0,0 +1,4 @@
+def switch_to_window(session, handle):
+ return session.transport.send(
+ "POST", "session/{session_id}/window".format(**vars(session)),
+ {"handle": handle})
--- a/testing/web-platform/tests/webdriver/tests/switch_to_window/switch.py
+++ b/testing/web-platform/tests/webdriver/tests/switch_to_window/switch.py
@@ -1,15 +1,11 @@
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})
+from . import switch_to_window
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