mirror of
https://github.com/servo/servo.git
synced 2025-08-14 09:55:35 +01:00
Update web-platform-tests to revision 66f38302334f162d363afcf4a1792d895072f3ef
This commit is contained in:
parent
36f5b69224
commit
b198cd722a
622 changed files with 3374 additions and 2001 deletions
6
tests/wpt/web-platform-tests/webdriver/META.yml
Normal file
6
tests/wpt/web-platform-tests/webdriver/META.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
suggested_reviewers:
|
||||
- AutomatedTester
|
||||
- andreastt
|
||||
- mjzffr
|
||||
- shs96c
|
||||
- whimboo
|
|
@ -1,5 +0,0 @@
|
|||
@AutomatedTester
|
||||
@andreastt
|
||||
@mjzffr
|
||||
@shs96c
|
||||
@whimboo
|
|
@ -0,0 +1,16 @@
|
|||
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))
|
||||
|
||||
|
||||
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")
|
|
@ -0,0 +1,62 @@
|
|||
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))
|
||||
|
||||
|
||||
@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>
|
||||
</div>""".format(transform=transform))
|
||||
element = session.find.css("input", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_error(response, "element not interactable")
|
||||
|
||||
|
||||
def test_element_not_interactable_out_of_view(session):
|
||||
session.url = inline("""
|
||||
<div style="width: 500px; height: 100px;
|
||||
position: absolute; left: 0px; top: -150px; background-color: blue;">
|
||||
</div>""")
|
||||
element = session.find.css("div", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_error(response, "element not interactable")
|
||||
|
||||
|
||||
def test_element_intercepted(session):
|
||||
session.url = inline("""
|
||||
<input type=button value=Roger style="position: absolute; left: 10px; top: 10px">
|
||||
<div style="position: absolute; height: 100px; width: 100px; background: rgba(255,0,0,.5); left: 10px; top: 5px"></div>""")
|
||||
|
||||
element = session.find.css("input", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_error(response, "element click intercepted")
|
||||
|
||||
|
||||
def test_element_intercepted_no_pointer_events(session):
|
||||
session.url = inline("""<input type=button value=Roger style="pointer-events: none">""")
|
||||
|
||||
element = session.find.css("input", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_error(response, "element click intercepted")
|
||||
|
||||
|
||||
def test_element_not_visible_overflow_hidden(session):
|
||||
session.url = inline("""
|
||||
<div style="position: absolute; height: 50px; width: 100px; background: rgba(255,0,0,.5); left: 10px; top: 50px; overflow: hidden">
|
||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
<input type=text value=Federer style="position: absolute; top: 50px; left: 10px;">
|
||||
</div>""")
|
||||
|
||||
element = session.find.css("input", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_error(response, "element not visible")
|
|
@ -0,0 +1,103 @@
|
|||
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))
|
||||
|
||||
|
||||
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)
|
||||
host = server_config["browser_host"]
|
||||
port = server_config["ports"]["http"][0]
|
||||
|
||||
assert session.url == "http://{host}:{port}{url}".format(host=host, port=port, url=link)
|
||||
|
||||
|
||||
def test_multi_line_link(session, server_config):
|
||||
link = "/webdriver/tests/element_click/support/input.html"
|
||||
session.url = inline("""
|
||||
<p style="background-color: yellow; width: 50px;">
|
||||
<a href={url}>Helloooooooooooooooooooo Worlddddddddddddddd</a>
|
||||
</p>""".format(url=link))
|
||||
element = session.find.css("a", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_success(response)
|
||||
host = server_config["browser_host"]
|
||||
port = server_config["ports"]["http"][0]
|
||||
|
||||
assert session.url == "http://{host}:{port}{url}".format(host=host, port=port, url=link)
|
||||
|
||||
|
||||
def test_link_unload_event(session, server_config):
|
||||
link = "/webdriver/tests/element_click/support/input.html"
|
||||
session.url = inline("""
|
||||
<body onunload="checkUnload()">
|
||||
<a href={url}>click here</a>
|
||||
<input type=checkbox>
|
||||
<script>
|
||||
function checkUnload() {
|
||||
document.getElementsByTagName("input")[0].checked = true;
|
||||
}
|
||||
</script>
|
||||
</body>""".format(url=link))
|
||||
element = session.find.css("a", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_success(response)
|
||||
|
||||
host = server_config["browser_host"]
|
||||
port = server_config["ports"]["http"][0]
|
||||
assert session.url == "http://{host}:{port}{url}".format(host=host, port=port, url=link)
|
||||
|
||||
session.back()
|
||||
|
||||
element = session.find.css("input", all=False)
|
||||
response = session.execute_script("""
|
||||
let [input] = arguments;
|
||||
return input.checked;
|
||||
""", args=(element,))
|
||||
assert response is True
|
||||
|
||||
|
||||
def test_link_hash(session):
|
||||
id = "anchor"
|
||||
session.url = inline("""
|
||||
<a href="#{url}">aaaa</a>
|
||||
<p id={id} style="margin-top: 5000vh">scroll here</p>
|
||||
""".format(url=id, id=id))
|
||||
old_url = session.url
|
||||
|
||||
element = session.find.css("a", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_success(response)
|
||||
|
||||
new_url = session.url
|
||||
assert "{url}#{id}".format(url=old_url, id=id) == new_url
|
||||
|
||||
element = session.find.css("p", all=False)
|
||||
assert session.execute_script("""
|
||||
let [input] = arguments;
|
||||
rect = input.getBoundingClientRect();
|
||||
return rect["top"] >= 0 && rect["left"] >= 0 &&
|
||||
(rect["top"] + rect["height"]) <= window.innerHeight &&
|
||||
(rect["left"] + rect["width"]) <= window.innerWidth;
|
||||
""", args=(element,)) is True
|
||||
|
||||
|
||||
def test_link_closes_window(session, create_window):
|
||||
new_handle = create_window()
|
||||
session.window_handle = new_handle
|
||||
|
||||
session.url = inline("""<a href="/webdriver/tests/element_click/support/close_window.html">asdf</a>""")
|
||||
element = session.find.css("a", all=False)
|
||||
response = element_click(session, element)
|
||||
assert_success(response)
|
||||
assert new_handle not in session.handles
|
|
@ -0,0 +1,29 @@
|
|||
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))
|
||||
|
||||
|
||||
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)
|
||||
response = element_click(session, element)
|
||||
assert_success(response)
|
||||
|
||||
# Check if element clicked is scrolled into view
|
||||
assert session.execute_script("""
|
||||
let [input] = arguments;
|
||||
rect = input.getBoundingClientRect();
|
||||
return rect["top"] >= 0 && rect["left"] >= 0 &&
|
||||
(rect["top"] + rect["height"]) <= window.innerHeight &&
|
||||
(rect["left"] + rect["width"]) <= window.innerWidth;
|
||||
""", args=(element,)) is True
|
|
@ -0,0 +1,9 @@
|
|||
<html>
|
||||
<body onload="checkload()">
|
||||
<script>
|
||||
function checkload() {
|
||||
window.close()
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,3 @@
|
|||
<html>
|
||||
<input type=text value="Hello World">
|
||||
</html>
|
|
@ -16,7 +16,7 @@ def execute_async_script(session, script, args=None):
|
|||
|
||||
def test_arguments(session):
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
function func() {
|
||||
return arguments;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ def test_arguments(session):
|
|||
|
||||
def test_array(session):
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve([1, 2]);
|
||||
""")
|
||||
assert_success(response, [1, 2])
|
||||
|
@ -43,7 +43,7 @@ def test_file_list(session, tmpdir):
|
|||
upload.send_keys(str(file))
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.querySelector('input').files);
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
@ -67,7 +67,7 @@ def test_html_all_collection(session):
|
|||
ps = session.find.css("p")
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.all);
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
@ -90,7 +90,7 @@ def test_html_collection(session):
|
|||
ps = session.find.css("p")
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.getElementsByTagName('p'));
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
@ -110,7 +110,7 @@ def test_html_form_controls_collection(session):
|
|||
inputs = session.find.css("input")
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.forms[0].elements);
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
@ -130,7 +130,7 @@ def test_html_options_collection(session):
|
|||
options = session.find.css("option")
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.querySelector('select').options);
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
@ -148,7 +148,7 @@ def test_node_list(session):
|
|||
ps = session.find.css("p")
|
||||
|
||||
response = execute_async_script(session, """
|
||||
let [resolve] = arguments;
|
||||
let resolve = arguments[0];
|
||||
resolve(document.querySelectorAll('p'));
|
||||
""")
|
||||
value = assert_success(response)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue