mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Auto merge of #26637 - servo-wpt-sync:wpt_update_25-05-2020, r=servo-wpt-sync
Sync WPT with upstream (25-05-2020) Automated downstream sync of changes from upstream as of 25-05-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
641eb362e8
50 changed files with 462 additions and 91 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -17,6 +17,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -318,12 +318,24 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -14,3 +14,6 @@
|
|||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
[printcmd.py]
|
||||
[test_invalid[options4\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options6\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options5\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options7\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options3\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options8\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options2\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_no_browsing_context]
|
||||
expected: ERROR
|
||||
|
||||
[test_invalid[options0\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_html_document]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options1\]]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
[user_prompts.py]
|
||||
[test_accept_and_notify[capabilities0-prompt-\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-confirm-False\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-confirm-True\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept_and_notify[capabilities0-confirm-True\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-prompt\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[confirm-False\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-alert\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-confirm\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept_and_notify[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-prompt-\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-confirm-False\]]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -334222,7 +334222,7 @@
|
|||
]
|
||||
},
|
||||
"lint.ignore": [
|
||||
"ddb9f9fcc077383dd70e9b5f16d4db21e43ea8bc",
|
||||
"335f04297b5b41ecf35d63a8ddd0f46d6fceccda",
|
||||
[]
|
||||
],
|
||||
"loading": {
|
||||
|
@ -550573,6 +550573,24 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"print": {
|
||||
"printcmd.py": [
|
||||
"88a6e4732d1e05a32c97ef91043397a9b9cbeccb",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"user_prompts.py": [
|
||||
"f416f9c28dd2fba012efbff6f51caf3aacd13fdd",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"refresh": {
|
||||
"refresh.py": [
|
||||
"30bd369bba1bd9395cd70f0d6b8b70a3a955cb5d",
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -21,6 +21,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -318,12 +318,24 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -14,3 +14,6 @@
|
|||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
34
tests/wpt/metadata/webdriver/tests/print/printcmd.py.ini
Normal file
34
tests/wpt/metadata/webdriver/tests/print/printcmd.py.ini
Normal file
|
@ -0,0 +1,34 @@
|
|||
[printcmd.py]
|
||||
[test_invalid[options4\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options6\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options5\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options7\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options3\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options8\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options2\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_no_browsing_context]
|
||||
expected: ERROR
|
||||
|
||||
[test_invalid[options0\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_html_document]
|
||||
expected: FAIL
|
||||
|
||||
[test_invalid[options1\]]
|
||||
expected: FAIL
|
||||
|
55
tests/wpt/metadata/webdriver/tests/print/user_prompts.py.ini
Normal file
55
tests/wpt/metadata/webdriver/tests/print/user_prompts.py.ini
Normal file
|
@ -0,0 +1,55 @@
|
|||
[user_prompts.py]
|
||||
[test_accept_and_notify[capabilities0-prompt-\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss_and_notify[capabilities0-confirm-False\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-confirm-True\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept_and_notify[capabilities0-confirm-True\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-prompt\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[confirm-False\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-alert\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_ignore[capabilities0-confirm\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept_and_notify[capabilities0-alert-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_accept[capabilities0-prompt-\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_default[prompt-None\]]
|
||||
expected: FAIL
|
||||
|
||||
[test_dismiss[capabilities0-confirm-False\]]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -759,3 +759,6 @@ TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-circul
|
|||
TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-clip-path-crash.html
|
||||
TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-defs-crash.html
|
||||
TESTHARNESS-IN-OTHER-TYPE: svg/svg-in-svg/svg-in-svg-circular-filter-reference-crash.html
|
||||
|
||||
PRINT STATEMENT: webdriver/tests/print/printcmd.py
|
||||
PRINT STATEMENT: webdriver/tests/print/user_prompts.py
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
import base64
|
||||
|
||||
import pytest
|
||||
|
||||
from tests.support.asserts import assert_error, assert_success
|
||||
from tests.support.inline import inline
|
||||
|
||||
|
||||
def do_print(session, options):
|
||||
return session.transport.send(
|
||||
"POST", "session/{session_id}/print".format(**vars(session)),
|
||||
options)
|
||||
|
||||
|
||||
def assert_pdf(data):
|
||||
assert data.startswith("%PDF-"), "Decoded data starts with the PDF signature"
|
||||
assert data.endswith("%%EOF\n"), "Decoded data ends with the EOF flag"
|
||||
|
||||
|
||||
def test_no_browsing_context(session, closed_window):
|
||||
response = do_print(session, {})
|
||||
assert_error(response, "no such window")
|
||||
|
||||
|
||||
def test_html_document(session):
|
||||
session.url = inline("Test")
|
||||
|
||||
response = do_print(session, {})
|
||||
value = assert_success(response)
|
||||
pdf = base64.decodestring(value)
|
||||
# TODO: Test that the output is reasonable
|
||||
assert_pdf(pdf)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("options", [{"orientation": 0},
|
||||
{"orientation": "foo"},
|
||||
{"scale": "1"},
|
||||
{"scale": 3},
|
||||
{"scale": 0.01},
|
||||
{"margin": {"top": "1"}},
|
||||
{"margin": {"bottom": -1}},
|
||||
{"page": {"height": False}},
|
||||
{"shrinkToFit": "false"}])
|
||||
def test_invalid(session, options):
|
||||
response = do_print(session, options)
|
||||
assert_error(response, "invalid argument")
|
|
@ -0,0 +1,112 @@
|
|||
# META: timeout=long
|
||||
import base64
|
||||
|
||||
import pytest
|
||||
|
||||
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
|
||||
from tests.support.inline import inline
|
||||
from printcmd import do_print, assert_pdf
|
||||
|
||||
|
||||
@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/>")
|
||||
|
||||
create_dialog(dialog_type, text=dialog_type)
|
||||
|
||||
response = do_print(session, {})
|
||||
value = assert_success(response)
|
||||
|
||||
pdf = base64.decodestring(value)
|
||||
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
|
||||
|
||||
assert_pdf(pdf)
|
||||
|
||||
return check_user_prompt_closed_without_exception
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def check_user_prompt_closed_with_exception(session, create_dialog):
|
||||
def check_user_prompt_closed_with_exception(dialog_type, retval):
|
||||
session.url = inline("<input/>")
|
||||
|
||||
create_dialog(dialog_type, text=dialog_type)
|
||||
|
||||
response = do_print(session, {})
|
||||
assert_error(response, "unexpected alert open")
|
||||
|
||||
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
|
||||
|
||||
return check_user_prompt_closed_with_exception
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def check_user_prompt_not_closed_but_exception(session, create_dialog):
|
||||
def check_user_prompt_not_closed_but_exception(dialog_type):
|
||||
session.url = inline("<input/>")
|
||||
|
||||
create_dialog(dialog_type, text=dialog_type)
|
||||
|
||||
response = do_print(session, {})
|
||||
assert_error(response, "unexpected alert open")
|
||||
|
||||
assert session.alert.text == dialog_type
|
||||
session.alert.dismiss()
|
||||
|
||||
return check_user_prompt_not_closed_but_exception
|
||||
|
||||
|
||||
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
|
||||
@pytest.mark.parametrize("dialog_type, retval", [
|
||||
("alert", None),
|
||||
("confirm", True),
|
||||
("prompt", ""),
|
||||
])
|
||||
def test_accept(check_user_prompt_closed_without_exception, dialog_type, retval):
|
||||
check_user_prompt_closed_without_exception(dialog_type, retval)
|
||||
|
||||
|
||||
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
|
||||
@pytest.mark.parametrize("dialog_type, retval", [
|
||||
("alert", None),
|
||||
("confirm", True),
|
||||
("prompt", ""),
|
||||
])
|
||||
def test_accept_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
|
||||
check_user_prompt_closed_with_exception(dialog_type, retval)
|
||||
|
||||
|
||||
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
|
||||
@pytest.mark.parametrize("dialog_type, retval", [
|
||||
("alert", None),
|
||||
("confirm", False),
|
||||
("prompt", None),
|
||||
])
|
||||
def test_dismiss(check_user_prompt_closed_without_exception, dialog_type, retval):
|
||||
check_user_prompt_closed_without_exception(dialog_type, retval)
|
||||
|
||||
|
||||
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
|
||||
@pytest.mark.parametrize("dialog_type, retval", [
|
||||
("alert", None),
|
||||
("confirm", False),
|
||||
("prompt", None),
|
||||
])
|
||||
def test_dismiss_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
|
||||
check_user_prompt_closed_with_exception(dialog_type, retval)
|
||||
|
||||
|
||||
@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
|
||||
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
|
||||
def test_ignore(check_user_prompt_not_closed_but_exception, dialog_type):
|
||||
check_user_prompt_not_closed_but_exception(dialog_type)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("dialog_type, retval", [
|
||||
("alert", None),
|
||||
("confirm", False),
|
||||
("prompt", None),
|
||||
])
|
||||
def test_default(check_user_prompt_closed_with_exception, dialog_type, retval):
|
||||
check_user_prompt_closed_with_exception(dialog_type, retval)
|
Loading…
Add table
Add a link
Reference in a new issue