Update web-platform-tests to revision 66f38302334f162d363afcf4a1792d895072f3ef

This commit is contained in:
WPT Sync Bot 2018-06-13 21:09:34 -04:00
parent 36f5b69224
commit b198cd722a
622 changed files with 3374 additions and 2001 deletions

View file

@ -0,0 +1,6 @@
suggested_reviewers:
- AutomatedTester
- andreastt
- mjzffr
- shs96c
- whimboo

View file

@ -1,5 +0,0 @@
@AutomatedTester
@andreastt
@mjzffr
@shs96c
@whimboo

View file

@ -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")

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,9 @@
<html>
<body onload="checkload()">
<script>
function checkload() {
window.close()
}
</script>
</body>
</html>

View file

@ -0,0 +1,3 @@
<html>
<input type=text value="Hello World">
</html>

View file

@ -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)