Update web-platform-tests to revision 615bb572c95add74ca4fb9fed4af5269a49cf4ef

This commit is contained in:
WPT Sync Bot 2018-11-06 20:34:54 -05:00
parent b628b6ef8e
commit 0aa76d7524
162 changed files with 2069 additions and 636 deletions

View file

@ -3,6 +3,7 @@ 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(
@ -10,6 +11,38 @@ def element_click(session, element):
element_id=element.id))
def test_display_none(session):
session.url = inline("""<button style="display: none">foobar</button>""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_visibility_hidden(session):
session.url = inline("""<button style="visibility: hidden">foobar</button>""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_hidden(session):
session.url = inline("<button hidden>foobar</button>")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_disabled(session):
session.url = inline("""<button disabled>foobar</button>""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_success(response)
@pytest.mark.parametrize("transform", ["translate(-100px, -100px)", "rotate(50deg)"])
def test_element_not_interactable_css_transform(session, transform):
session.url = inline("""

View file

@ -1,3 +1,5 @@
import pytest
from tests.support.asserts import assert_error, assert_files_uploaded, assert_success
from tests.support.inline import inline
@ -140,3 +142,87 @@ def test_single_file_appends_with_multiple_attribute(session, create_files):
assert_success(response)
assert_files_uploaded(session, element, files)
def test_transparent(session, create_files):
files = create_files(["foo"])
session.url = inline("""<input type=file style="opacity: 0">""")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_success(response)
assert_files_uploaded(session, element, files)
def test_obscured(session, create_files):
files = create_files(["foo"])
session.url = inline("""
<style>
div {
position: absolute;
width: 100vh;
height: 100vh;
background: blue;
top: 0;
left: 0;
}
</style>
<input type=file>
<div></div>
""")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_success(response)
assert_files_uploaded(session, element, files)
def test_outside_viewport(session, create_files):
files = create_files(["foo"])
session.url = inline("""<input type=file style="margin-left: -100vh">""")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_success(response)
assert_files_uploaded(session, element, files)
def test_hidden(session, create_files):
files = create_files(["foo"])
session.url = inline("<input type=file hidden>")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_success(response)
assert_files_uploaded(session, element, files)
def test_display_none(session, create_files):
files = create_files(["foo"])
session.url = inline("""<input type=file style="display: none">""")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_success(response)
assert_files_uploaded(session, element, files)
@pytest.mark.capabilities({"strictFileInteractability": True})
def test_strict_hidden(session, create_files):
files = create_files(["foo"])
session.url = inline("<input type=file hidden>")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_error(response, "element not interactable")
@pytest.mark.capabilities({"strictFileInteractability": True})
def test_strict_display_none(session, create_files):
files = create_files(["foo"])
session.url = inline("""<input type=file style="display: none">""")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, str(files[0]))
assert_error(response, "element not interactable")

View file

@ -111,7 +111,7 @@ def test_not_a_focusable_element(session):
assert_error(response, "element not interactable")
def test_not_displayed_element(session):
def test_display_none(session):
session.url = inline("""<input style="display: none">""")
element = session.find.css("input", all=False)
@ -119,7 +119,7 @@ def test_not_displayed_element(session):
assert_error(response, "element not interactable")
def test_hidden_element(session):
def test_visibility_hidden(session):
session.url = inline("""<input style="visibility: hidden">""")
element = session.find.css("input", all=False)
@ -127,7 +127,15 @@ def test_hidden_element(session):
assert_error(response, "element not interactable")
def test_disabled_element(session):
def test_hidden(session):
session.url = inline("<input hidden>")
element = session.find.css("input", all=False)
response = element_send_keys(session, element, "foo")
assert_error(response, "element not interactable")
def test_disabled(session):
session.url = inline("""<input disabled>""")
element = session.find.css("input", all=False)

View file

@ -0,0 +1,114 @@
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)
def test_promise_resolve(session):
response = execute_script(session, """
return Promise.resolve('foobar');
""")
assert_success(response, "foobar")
def test_promise_resolve_delayed(session):
response = execute_script(session, """
return new Promise(
(resolve) => setTimeout(
() => resolve('foobar'),
50
)
);
""")
assert_success(response, "foobar")
def test_promise_all_resolve(session):
response = execute_script(session, """
return Promise.all([
Promise.resolve(1),
Promise.resolve(2)
]);
""")
assert_success(response, [1, 2])
def test_await_promise_resolve(session):
response = execute_script(session, """
const res = await Promise.resolve('foobar');
return res;
""")
assert_success(response, "foobar")
def test_promise_reject(session):
response = execute_script(session, """
return Promise.reject(new Error('my error'));
""")
assert_error(response, "javascript error")
def test_promise_reject_delayed(session):
response = execute_script(session, """
return new Promise(
(resolve, reject) => setTimeout(
() => reject(new Error('my error')),
50
)
);
""")
assert_error(response, "javascript error")
def test_promise_all_reject(session):
response = execute_script(session, """
return Promise.all([
Promise.resolve(1),
Promise.reject(new Error('error'))
]);
""")
assert_error(response, "javascript error")
def test_await_promise_reject(session):
response = execute_script(session, """
await Promise.reject(new Error('my error'));
return 'foo';
""")
assert_error(response, "javascript error")
def test_promise_resolve_timeout(session):
session.timeouts.script = .1
response = execute_script(session, """
return new Promise(
(resolve) => setTimeout(
() => resolve(),
1000
)
);
""")
assert_error(response, "timeout error")
def test_promise_reject_timeout(session):
session.timeouts.script = .1
response = execute_script(session, """
return new Promise(
(resolve, reject) => setTimeout(
() => reject(new Error('my error')),
1000
)
);
""")
assert_error(response, "timeout error")

View file

@ -21,6 +21,7 @@ def test_sessionid(new_session, add_browser_capabilities):
("proxy", dict),
("setWindowRect", bool),
("timeouts", dict),
("strictFileInteractability", bool),
("unhandledPromptBehavior", basestring),
])
def test_capability_type(session, capability, type):
@ -35,6 +36,7 @@ def test_capability_type(session, capability, type):
("proxy", {}),
("setWindowRect", True),
("timeouts", {"implicit": 0, "pageLoad": 300000, "script": 30000}),
("strictFileInteractability", False),
("unhandledPromptBehavior", "dismiss and notify"),
])
def test_capability_default_value(session, capability, default_value):

View file

@ -27,6 +27,9 @@ valid_data = [
{"script": 50, "pageLoad": 25},
{"script": 500},
]),
("strictFileInteractability", [
True, False, None,
]),
("unhandledPromptBehavior", [
"dismiss",
"accept",
@ -95,6 +98,9 @@ invalid_data = [
{"pageLoad": {"value": 10}},
{"pageLoad": 10, "invalid": 10},
]),
("strictFileInteractability", [
1, [], {}, "false",
]),
("unhandledPromptBehavior", [
1, [], {}, False,
"DISMISS",
@ -106,25 +112,25 @@ invalid_data = [
]
invalid_extensions = [
"automaticInspection",
"automaticProfiling",
"browser",
"chromeOptions",
"ensureCleanSession",
"firefox",
"firefox_binary",
"firefoxOptions",
"chromeOptions",
"automaticInspection",
"automaticProfiling",
"platform",
"version",
"browser",
"platformVersion",
"javascriptEnabled",
"nativeEvents",
"seleniumProtocol",
"profile",
"trustAllSSLCertificates",
"initialBrowserUrl",
"requireWindowFocus",
"javascriptEnabled",
"logFile",
"logLevel",
"nativeEvents",
"platform",
"platformVersion",
"profile",
"requireWindowFocus",
"safari.options",
"ensureCleanSession",
"seleniumProtocol",
"trustAllSSLCertificates",
"version",
]