mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Auto merge of #27781 - servo-wpt-sync:wpt_update_19-11-2020, r=servo-wpt-sync
Sync WPT with upstream (19-11-2020) Automated downstream sync of changes from upstream as of 19-11-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
064655c9cd
121 changed files with 2408 additions and 255 deletions
|
@ -0,0 +1,37 @@
|
|||
[send-file-form-controls.tentative.html]
|
||||
[Upload file-for-upload-in-form-ESC-[\x1b\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-BS-[\x08\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VT-[\x0b\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-CR-[\n\r\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FF-[\x0c\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-[\n\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-LF-[\r\n\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SPACE-[ \].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-[\r\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-HT-[\t\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-NUL-[\x00\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DEL-[\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
[send-file-form-punctuation.tentative.html]
|
||||
[Upload file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUOTATION-MARK-["\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EQUALS-SIGN-[=\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-TILDE-[~\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-PARENTHESIS-[(\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VERTICAL-LINE-[|\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ASTERISK-[*\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-PARENTHESIS-[)\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PERCENT-SIGN-[%\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DOLLAR-SIGN-[$\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COMMA-[,\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUESTION-MARK-[?\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SOLIDUS-[/\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-CURLY-BRACKET-[{\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-APOSTROPHE-['\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[\]\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COLON-[:\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload 'file-for-upload-in-form-single-quoted.txt' (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload "file-for-upload-in-form-double-quoted.txt" (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SEMICOLON-[;\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-AMPERSAND-[&\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PLUS-SIGN-[+\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-REVERSE-SOLIDUS-[\\\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EXCLAMATION-MARK-[!\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FULL-STOP-[.\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
[send-file-formdata-controls.tentative.html]
|
||||
[Upload file-for-upload-in-form-BS-[\x08\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VT-[\x0b\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-NUL-[\x00\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SPACE-[ \].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-[\n\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FF-[\x0c\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-[\r\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-HT-[\t\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-CR-[\n\r\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ESC-[\x1b\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DEL-[\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-LF-[\r\n\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
[send-file-formdata-punctuation.tentative.html]
|
||||
[Upload file-for-upload-in-form-COMMA-[,\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUESTION-MARK-[?\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SEMICOLON-[;\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EXCLAMATION-MARK-[!\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-AMPERSAND-[&\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DOLLAR-SIGN-[$\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-APOSTROPHE-['\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload 'file-for-upload-in-form-single-quoted.txt' (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[\]\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUOTATION-MARK-["\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload "file-for-upload-in-form-double-quoted.txt" (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SOLIDUS-[/\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-CURLY-BRACKET-[{\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EQUALS-SIGN-[=\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-TILDE-[~\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ASTERISK-[*\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PLUS-SIGN-[+\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-PARENTHESIS-[)\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COLON-[:\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FULL-STOP-[.\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VERTICAL-LINE-[|\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-PARENTHESIS-[(\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-REVERSE-SOLIDUS-[\\\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PERCENT-SIGN-[%\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
[send-file-formdata-utf-8.html]
|
||||
[Upload file-for-upload-in-form-★星★.txt (JIS X 0201 and JIS X 0208) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ.txt (Unicode) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-☺😂.txt (windows-1252) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-☺😂.txt (Unicode) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form.txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-.txt (x-user-defined) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[send-file-formdata.html]
|
||||
[Upload file-for-upload-in-form.txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-anonymous-block.html]
|
||||
[Hit test beside line of text inside anonymous block]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -99,9 +99,6 @@
|
|||
[Request: combined response Content-Type: text/plain;charset=gbk text/plain]
|
||||
expected: NOTRUN
|
||||
|
||||
[fetch(): separate response Content-Type: text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[fetch(): combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
|
@ -327,6 +324,12 @@
|
|||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,3 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener of discarded nested browsing context]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
[skip-document-with-fragment.html]
|
||||
expected: TIMEOUT
|
||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||
expected: FAIL
|
||||
|
||||
[Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
[newline-normalization.html]
|
||||
[Form newline normalization: \\n\\r in the name becomes \\r\\n\\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\n\\r in the value becomes \\r\\n\\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\r in the value becomes \\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\r in the name becomes \\r\\n]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -290,3 +290,9 @@
|
|||
[X SNR (-47.512665238764875 dB) is not greater than or equal to 65.737. Got -47.512665238764875.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-3.8748168447328256e+16\t9.3139332532882690e-1\t3.8748168447328256e+16\t4.1602368616554424e+16\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.8748168447328256e+16 at index of 28696.\n\tMax RelError of 4.1602368616554424e+16 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-288.33093763692256 dB) is not greater than or equal to 65.737. Got -288.33093763692256.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
[send-file-form-controls.tentative.html]
|
||||
[Upload file-for-upload-in-form-ESC-[\x1b\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-BS-[\x08\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VT-[\x0b\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-CR-[\n\r\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FF-[\x0c\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-[\n\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-LF-[\r\n\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SPACE-[ \].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-[\r\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-HT-[\t\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-NUL-[\x00\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DEL-[\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
[send-file-form-punctuation.tentative.html]
|
||||
[Upload file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUOTATION-MARK-["\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EQUALS-SIGN-[=\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-TILDE-[~\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-PARENTHESIS-[(\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VERTICAL-LINE-[|\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ASTERISK-[*\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-PARENTHESIS-[)\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PERCENT-SIGN-[%\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DOLLAR-SIGN-[$\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COMMA-[,\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUESTION-MARK-[?\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SOLIDUS-[/\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-CURLY-BRACKET-[{\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-APOSTROPHE-['\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[\]\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COLON-[:\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload 'file-for-upload-in-form-single-quoted.txt' (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload "file-for-upload-in-form-double-quoted.txt" (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SEMICOLON-[;\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-AMPERSAND-[&\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PLUS-SIGN-[+\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-REVERSE-SOLIDUS-[\\\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EXCLAMATION-MARK-[!\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FULL-STOP-[.\].txt (ASCII) in UTF-8 form]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
[send-file-formdata-controls.tentative.html]
|
||||
[Upload file-for-upload-in-form-BS-[\x08\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VT-[\x0b\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-NUL-[\x00\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SPACE-[ \].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-[\n\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FF-[\x0c\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-[\r\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-HT-[\t\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LF-CR-[\n\r\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ESC-[\x1b\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DEL-[\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CR-LF-[\r\n\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
[send-file-formdata-punctuation.tentative.html]
|
||||
[Upload file-for-upload-in-form-COMMA-[,\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUESTION-MARK-[?\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SEMICOLON-[;\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EXCLAMATION-MARK-[!\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-AMPERSAND-[&\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-DOLLAR-SIGN-[$\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-APOSTROPHE-['\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload 'file-for-upload-in-form-single-quoted.txt' (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[\]\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-QUOTATION-MARK-["\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload "file-for-upload-in-form-double-quoted.txt" (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-SOLIDUS-[/\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-CURLY-BRACKET-[{\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-EQUALS-SIGN-[=\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-TILDE-[~\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ASTERISK-[*\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PLUS-SIGN-[+\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-RIGHT-PARENTHESIS-[)\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-COLON-[:\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-FULL-STOP-[.\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-VERTICAL-LINE-[|\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-LEFT-PARENTHESIS-[(\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-REVERSE-SOLIDUS-[\\\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-PERCENT-SIGN-[%\].txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
[send-file-formdata-utf-8.html]
|
||||
[Upload file-for-upload-in-form-★星★.txt (JIS X 0201 and JIS X 0208) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ.txt (Unicode) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-☺😂.txt (windows-1252) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-☺😂.txt (Unicode) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form.txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
||||
[Upload file-for-upload-in-form-.txt (x-user-defined) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[send-file-formdata.html]
|
||||
[Upload file-for-upload-in-form.txt (ASCII) in fetch with FormData]
|
||||
expected: FAIL
|
||||
|
|
@ -125483,7 +125483,7 @@
|
|||
]
|
||||
],
|
||||
"background-size-006.html": [
|
||||
"be082b6799a15ff156296fbaaf3c3963d8466bc8",
|
||||
"81e4c9ea3ecbfd3598b35bd35c4a7cf1bbbcd082",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -125522,7 +125522,7 @@
|
|||
]
|
||||
],
|
||||
"background-size-009.html": [
|
||||
"7e187b8e77ba2af5ed305a76f91b425f09f02251",
|
||||
"9d76478ffade931ef2cd523ae815ddc028cfc8e4",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -125587,7 +125587,7 @@
|
|||
]
|
||||
],
|
||||
"background-size-014.html": [
|
||||
"bbb246f6d565b2dd89b2c5157fb56926ed3a4249",
|
||||
"0f602c646418eaad6e8549b76e5ad78479876944",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -125626,7 +125626,7 @@
|
|||
]
|
||||
],
|
||||
"background-size-017.html": [
|
||||
"d52f62ee0f5bc357e1a3cb6cfafb4eec55d36142",
|
||||
"71f216ffbba9cd3deda2ea74e3d9d4a3b5829f94",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -134106,6 +134106,19 @@
|
|||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"content-visibility-078.html": [
|
||||
"51382bccf04456ae4adea00cc08daceaf9e952f6",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-contain/content-visibility/content-visibility-078-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"counter-scoping-001.html": [
|
||||
|
@ -168646,6 +168659,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"first-line-with-inline-block-before.html": [
|
||||
"8b454faeda368c4d07fb5767991fc25665ec596a",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-pseudo/first-line-with-inline-block-before-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-line-with-inline-block.html": [
|
||||
"12e11a3d2e4344b57c755b8a7e749115b299e549",
|
||||
[
|
||||
|
@ -256438,6 +256464,14 @@
|
|||
"506a59fec1eb33661658850254344e264c323c2e",
|
||||
[]
|
||||
],
|
||||
"file": {
|
||||
"resources": {
|
||||
"echo-content-escaped.py": [
|
||||
"bdbbc0f1ea56591a48a8e06e9a39491a8d49aea6",
|
||||
[]
|
||||
]
|
||||
}
|
||||
},
|
||||
"filelist-section": {
|
||||
"support": {
|
||||
"upload.txt": [
|
||||
|
@ -256476,7 +256510,11 @@
|
|||
[]
|
||||
],
|
||||
"send-file-form-helper.js": [
|
||||
"a7522c7b08ebc2451637e91dbd6a07040af4939d",
|
||||
"d6adf21ec337957e22876f601ba05d5711ee3d3b",
|
||||
[]
|
||||
],
|
||||
"send-file-formdata-helper.js": [
|
||||
"53572ef36c8d1b17037117d988c64e8b4fbc2a73",
|
||||
[]
|
||||
],
|
||||
"upload.txt": [
|
||||
|
@ -301972,6 +302010,10 @@
|
|||
"4b37070bd7e03bfcef0baaf9440d978859d1e780",
|
||||
[]
|
||||
],
|
||||
"content-visibility-078-ref.html": [
|
||||
"64629ca11977c77e4b1420881c5bc59a50816323",
|
||||
[]
|
||||
],
|
||||
"inline-container-with-child-ref.html": [
|
||||
"af51cbd5db8f3eff56411345860548e95fe4d354",
|
||||
[]
|
||||
|
@ -315485,6 +315527,10 @@
|
|||
"fcee7995052717c0509c58a76fa1f420434ceb43",
|
||||
[]
|
||||
],
|
||||
"first-line-with-inline-block-before-ref.html": [
|
||||
"8cfe779766bb9b152f145d657aedc94f6cb42362",
|
||||
[]
|
||||
],
|
||||
"first-line-with-out-of-flow-ref.html": [
|
||||
"7193bf25eb88c5443457480f7ce27782acd9473a",
|
||||
[]
|
||||
|
@ -355934,6 +355980,10 @@
|
|||
"944de61c71561d9a96825b9a344bc642a48f262a",
|
||||
[]
|
||||
],
|
||||
"__init__.py": [
|
||||
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
|
||||
[]
|
||||
],
|
||||
"resource-timing-level1.js": [
|
||||
"95b5cdfb1ed0ca2bbfd6b692ad565512218dd7a4",
|
||||
[]
|
||||
|
@ -358182,6 +358232,10 @@
|
|||
"dfce9e7ed46d8719409f45f33f21888230b1f3b8",
|
||||
[]
|
||||
],
|
||||
"claim-blob-url-worker-fetch-iframe.html": [
|
||||
"12ae1a87258f7235c6165029b48e7b4dc2ff90d2",
|
||||
[]
|
||||
],
|
||||
"claim-nested-worker-fetch-iframe.html": [
|
||||
"2fa15db61d9ce6742f077e72b98629f49e0b7380",
|
||||
[]
|
||||
|
@ -367658,7 +367712,7 @@
|
|||
[]
|
||||
],
|
||||
"testfiles.py": [
|
||||
"4d10878d9d5f57310fe0d7300d312fcae67f193c",
|
||||
"fee19cd1c49769f972e8856a3b29feba7713b0a1",
|
||||
[]
|
||||
],
|
||||
"tests": {
|
||||
|
@ -368219,7 +368273,7 @@
|
|||
[]
|
||||
],
|
||||
"manifestupdate.py": [
|
||||
"129457b3fd1270dc66029d3ea873d353714aa607",
|
||||
"c74632b0486ceb891b855c1573e090459d718a6a",
|
||||
[]
|
||||
],
|
||||
"metadata.py": [
|
||||
|
@ -368326,7 +368380,7 @@
|
|||
[]
|
||||
],
|
||||
"test_update.py": [
|
||||
"a1ba8de28780647544b22cb1127568d57d4dcac4",
|
||||
"770438398215556785fa330148df880393626e0e",
|
||||
[]
|
||||
],
|
||||
"test_wpttest.py": [
|
||||
|
@ -370843,7 +370897,7 @@
|
|||
[]
|
||||
],
|
||||
"fixtures.py": [
|
||||
"957c4d05868b9cb3ba440727de79d3c4b120c5a3",
|
||||
"3eb5ffd26fa5f8e1f909b98214024dffefc704fe",
|
||||
[]
|
||||
],
|
||||
"helpers.py": [
|
||||
|
@ -375552,6 +375606,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-controls.tentative.html": [
|
||||
"d11f4a860931b4249f8c15d87143b8904cb61364",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-iso-2022-jp.tentative.html": [
|
||||
"421de301298ba55a70124290066eaf66e6416394",
|
||||
[
|
||||
|
@ -375559,22 +375620,29 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-punctuation.tentative.html": [
|
||||
"5c2d6d0bf1fe0196932aa1cbddb3c6669db44698",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-utf-8.html": [
|
||||
"03417ba72e4c2cccef3ff17f4e41bba76cc598bb",
|
||||
"1be44f4f4db09efdf155e5fe27bb18cacecf18e9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-windows-1252.tentative.html": [
|
||||
"8e9463f83aecb47ba1da1aa30d1903508e279937",
|
||||
"a2c37186b3e023d19ba3d731cd642f1f3fcdada8",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-form-x-user-defined.tentative.html": [
|
||||
"072e3bb1e02ea0ccc0e5442c1cae316acb40ce30",
|
||||
"503b08a51706f77eeda7ca066c18200ad6750699",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -375586,6 +375654,34 @@
|
|||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-formdata-controls.tentative.html": [
|
||||
"4259741b63ef316613a2fbea4236bbcbe6cfb1df",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-formdata-punctuation.tentative.html": [
|
||||
"d8e84e9d978094f84c5c0fb06526fd0734f13efa",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-formdata-utf-8.html": [
|
||||
"7a7f6cefe776b9d4c9ed29c6652a6978be5dbb4b",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"send-file-formdata.html": [
|
||||
"77e048e54741c013ab5ce9395265de28e1de8771",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"fileReader.html": [
|
||||
|
@ -394351,10 +394447,12 @@
|
|||
]
|
||||
],
|
||||
"frame-ancestors-nested-cross-in-same-star-allow.html": [
|
||||
"c523b9ef10a7832cc21dbe90902dec16431c0651",
|
||||
"3658fb65023b0a70a763b1e4e34c39c6d503eb7d",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"frame-ancestors-nested-cross-in-same-url-allow.html": [
|
||||
|
@ -398409,10 +398507,12 @@
|
|||
]
|
||||
],
|
||||
"match.html": [
|
||||
"14921d1d62c0d80349cf1149e55e3af0b51f77d5",
|
||||
"e42ee24f3d0af258ac35534301c1626331ec55ed",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
|
@ -414668,6 +414768,13 @@
|
|||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"position-sticky-container.html": [
|
||||
"604b536df17c13467083fb7626001bf3552b71ca",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"visibility-collapse-col-001.html": [
|
||||
|
@ -430190,10 +430297,12 @@
|
|||
]
|
||||
],
|
||||
"xml_xpath_runner.html": [
|
||||
"42404562a3c95b3004c7b0b7402ea366faeb4d83",
|
||||
"03edf50515c231a9f9fbf0a0587261627b949e19",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
|
@ -430272,10 +430381,12 @@
|
|||
]
|
||||
],
|
||||
"white-spaces-after-execCommand-delete.tentative.html": [
|
||||
"6aafdddcef01b9fb77a3bfd7f9343170a653913b",
|
||||
"1490bf06f55a6c2b1e10afc044b19b108e5dd482",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"white-spaces-after-execCommand-forwarddelete.tentative.html": [
|
||||
|
@ -475333,17 +475444,21 @@
|
|||
]
|
||||
],
|
||||
"popup-coop-by-sw-from-coop.https.html": [
|
||||
"fc38ea1c66b3ec5ccd8f517a2e76a0c203846c8e",
|
||||
"0b7d6d91001d406b575ce4185f2ae68ef2a909e2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"popup-coop-by-sw.https.html": [
|
||||
"13d9e79ca77c65e9dbd719e4601f6a8af476ae7f",
|
||||
"830318c208f3ad52585882bd265500f51a4ea95d",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"popup-meta-http-equiv.https.html": [
|
||||
|
@ -478261,6 +478376,22 @@
|
|||
}
|
||||
},
|
||||
"links": {
|
||||
"icon": {
|
||||
"no-error-event.sub.html": [
|
||||
"128b5d2d3c6830b80fe55c6a9663fd85502db548",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"no-load-event.html": [
|
||||
"f81399a23093f7978d1241c35048395be36081dd",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"manifest": {
|
||||
"link-relationship": {
|
||||
"link-rel-manifest.html": [
|
||||
|
@ -478367,10 +478498,12 @@
|
|||
},
|
||||
"rendering": {
|
||||
"dimension-attributes.html": [
|
||||
"2c544aac31ead3b04ca8d3fc8cb490c51a74e8bb",
|
||||
"00a5ff9a9673f1bc5bea22807e2e90a41c3348af",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"non-replaced-elements": {
|
||||
|
@ -481348,10 +481481,12 @@
|
|||
]
|
||||
],
|
||||
"track-mode.html": [
|
||||
"2474a11fb1adb0ccd2a4f7a5b82098fa7ea04e57",
|
||||
"206ac9968f8e4b47b6defa09f669aeaf57fb5593",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"track-node-add-remove.html": [
|
||||
|
@ -484267,6 +484402,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"newline-normalization.html": [
|
||||
"d3de7699662da75fc37fba31cf994f02a13de191",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"reparent-form-during-planned-navigation-task.html": [
|
||||
"6b50bf599b888b1c3273a4e311ba6af69d67e86b",
|
||||
[
|
||||
|
@ -491281,11 +491423,12 @@
|
|||
]
|
||||
],
|
||||
"consumption-crossorigin.sub.tentative.html": [
|
||||
"cc21418e47dbe074b121430f2463aaca76347187",
|
||||
"ebeeb935c062979bd9758bc4cc66d2ed516976ec",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -491343,11 +491486,12 @@
|
|||
]
|
||||
],
|
||||
"propagation-crossorigin.sub.tentative.html": [
|
||||
"c29c9d8440d0ff25fe3ef88ae9b8b3382dfb4bcf",
|
||||
"467dfb81b75c3ace7f2186856f7404995ee7f24c",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -494447,11 +494591,12 @@
|
|||
]
|
||||
],
|
||||
"pause.html": [
|
||||
"72f34c1bde8cf54814cdf91b3fdeeaff90dd07e3",
|
||||
"ec33c5110292c420009b0ce46461754390975f76",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -508098,11 +508243,12 @@
|
|||
]
|
||||
],
|
||||
"pointerevent_touch-action-inherit_child-auto-child-none_touch.html": [
|
||||
"257043f2249c63b5ac6e3245d17acb80caa83732",
|
||||
"53eafbb2f2ae2854ffe54c49b66f760b0bc94e10",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -508116,11 +508262,12 @@
|
|||
]
|
||||
],
|
||||
"pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html": [
|
||||
"c2f4bd35aebbb67194f4cc17d3d52709d63f732a",
|
||||
"a820b4f3cf4ca29a6b37286e084a18102cc054af",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -508143,11 +508290,12 @@
|
|||
]
|
||||
],
|
||||
"pointerevent_touch-action-inherit_parent-none_touch.html": [
|
||||
"04db243676fd2f454421d10b6a7e6a1cef4e3e04",
|
||||
"e8c205a042f283296c39d0d249739a2b0d23afe0",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -508198,11 +508346,12 @@
|
|||
]
|
||||
],
|
||||
"pointerevent_touch-action-pan-right-css_touch.html": [
|
||||
"c211e17b17c8fd5d817dc31de060d26a550d1a74",
|
||||
"99882a079c91c23212c7689d5141fb863815a0b0",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
@ -508901,10 +509050,12 @@
|
|||
]
|
||||
],
|
||||
"preload-with-type.html": [
|
||||
"eb5675f993b1e98014fd38d8674858f7c66ed7e6",
|
||||
"7f92606cb7954cab45f28495499fbd84c3446459",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"preload-xhr.html": [
|
||||
|
@ -519654,10 +519805,12 @@
|
|||
]
|
||||
],
|
||||
"callback-idle-periods.html": [
|
||||
"c066c6055d86f7814dfed52674da1103bbcb4ffb",
|
||||
"3c2de61bfeadd452ea1a80d30c42a799704ab1b3",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"callback-iframe.html": [
|
||||
|
@ -519670,10 +519823,12 @@
|
|||
]
|
||||
],
|
||||
"callback-invoked.html": [
|
||||
"5e799cf39f985a9bb66b418771ca0fa57ee85ad8",
|
||||
"dc52f1422b08f3e07521fa09995d6da4ce68452b",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"callback-multiple-calls.html": [
|
||||
|
@ -521397,10 +521552,12 @@
|
|||
},
|
||||
"secure-payment-confirmation": {
|
||||
"secure-payment-confirmation.tenative.https.html": [
|
||||
"1cc12d49eba1369d57512a52de30eab4fa477da2",
|
||||
"1eabdd41145b3edae1a5b68c0219fd5e178f7a71",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
|
@ -522590,7 +522747,7 @@
|
|||
]
|
||||
],
|
||||
"claim-worker-fetch.https.html": [
|
||||
"4b49a8152a42c9e45104139b46b9fa56762de6bb",
|
||||
"c55b965be6e923ae40b4d6db2df745fa772c5bba",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -523923,8 +524080,17 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"update-bytecheck-cors-import.https.html": [
|
||||
"de7023c86cade4aff9a3564e5801bd237ccdf6a9",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"update-bytecheck.https.html": [
|
||||
"6628dba6ee7d11ae0cd45941c726df017afb9336",
|
||||
"3329938bcaf982718f6a58cd7e54e2a76575a7b5",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -554313,10 +554479,12 @@
|
|||
]
|
||||
],
|
||||
"Worker_terminate_event_queue.htm": [
|
||||
"5d9472a1c46f460e0606e99e3302b3039cd390c9",
|
||||
"e4f106ad3a86b07efb3e4f449c0de904e667f30e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"abrupt-completion.html": [
|
||||
|
@ -581243,7 +581411,7 @@
|
|||
},
|
||||
"close_window": {
|
||||
"close.py": [
|
||||
"53af5730f83fbd158e8540ac680c44896f5323ba",
|
||||
"2d665d5a8836df3f5bca6928d6fb6fe58d9b87db",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581315,7 +581483,7 @@
|
|||
},
|
||||
"element_clear": {
|
||||
"clear.py": [
|
||||
"0189c38c27709aecd6ece4c9ec0cd90f5a0fca5e",
|
||||
"8b7bb501043f79f41611fb9724ab64ba76d53e19",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -581349,7 +581517,7 @@
|
|||
]
|
||||
],
|
||||
"click.py": [
|
||||
"3a5d737216d95de1110f48cc004438b0913d1ca0",
|
||||
"50982fe4bdd8add9e1f10a9df60e1104238c71c9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581458,7 +581626,7 @@
|
|||
]
|
||||
],
|
||||
"send_keys.py": [
|
||||
"edf91e776148562721f89d8f7aef8e8eefbde78a",
|
||||
"acdc1164a406ee6364492c6d12bd70f4fa025db5",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581737,7 +581905,7 @@
|
|||
},
|
||||
"get_element_attribute": {
|
||||
"get.py": [
|
||||
"b18d9ca8b22a8a576dac66863408337992151a27",
|
||||
"f67a6c3d7c0ac63b8eac1cf800e6ca855a526366",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581755,7 +581923,7 @@
|
|||
},
|
||||
"get_element_css_value": {
|
||||
"get.py": [
|
||||
"4e8704d50af93cfe94d496302a2d33807a7a3a5a",
|
||||
"25fae26a69c549173f8504ffdc340c6a9f100280",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581773,7 +581941,7 @@
|
|||
},
|
||||
"get_element_property": {
|
||||
"get.py": [
|
||||
"5c0247edb7020599306dada98c8e7d35b31b7751",
|
||||
"27b4bea5f173d83f4ef3517acc650ede136cf281",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581791,7 +581959,7 @@
|
|||
},
|
||||
"get_element_rect": {
|
||||
"get.py": [
|
||||
"494c45f8e45b847909d3d602186423bfd9d2e7ad",
|
||||
"d461c01c3120dc5aa95bb893b1f84544a9429bce",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581809,7 +581977,7 @@
|
|||
},
|
||||
"get_element_tag_name": {
|
||||
"get.py": [
|
||||
"ffe6dd641e82a3982da89f11f773d019858450ef",
|
||||
"4ca818f76a5704b5875be5e22206840c3a248d4d",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581827,7 +581995,7 @@
|
|||
},
|
||||
"get_element_text": {
|
||||
"get.py": [
|
||||
"5f169a3a233b50de73de31f241a3bff4d749d6c2",
|
||||
"642bc1d2c62298a6dc9e9f4d38b2a63345027c6d",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581978,7 +582146,7 @@
|
|||
},
|
||||
"is_element_enabled": {
|
||||
"enabled.py": [
|
||||
"88b1534ded1ae5d7a34a83cd8f763d115b6312a5",
|
||||
"64058ebd577e23c55a81a745fa63a9228f98d28c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -581996,7 +582164,7 @@
|
|||
},
|
||||
"is_element_selected": {
|
||||
"selected.py": [
|
||||
"79a1615dd9fdfcc7f3fd07f971f0bbec84247bca",
|
||||
"b09927c7a12e0c7cbc235a204bec990f8530ebff",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -582489,7 +582657,7 @@
|
|||
]
|
||||
],
|
||||
"switch.py": [
|
||||
"9e5315588e3bbea859a10d2c367d41354c3240ea",
|
||||
"88a1a244b2d27bcf60f1be55752b3633863b4ad6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-anonymous-block.html]
|
||||
[Hit test beside line of text inside anonymous block]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -309,6 +309,27 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
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>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,3 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
[skip-document-with-fragment.html]
|
||||
expected: TIMEOUT
|
||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||
expected: FAIL
|
||||
|
||||
[Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
[newline-normalization.html]
|
||||
[Form newline normalization: \\n\\r in the name becomes \\r\\n\\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\n\\r in the value becomes \\r\\n\\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\r in the value becomes \\r\\n]
|
||||
expected: FAIL
|
||||
|
||||
[Form newline normalization: \\r in the name becomes \\r\\n]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -518,3 +518,9 @@
|
|||
[X SNR (-47.512665238764875 dB) is not greater than or equal to 65.737. Got -47.512665238764875.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-3.8748168447328256e+16\t9.3139332532882690e-1\t3.8748168447328256e+16\t4.1602368616554424e+16\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.8748168447328256e+16 at index of 28696.\n\tMax RelError of 4.1602368616554424e+16 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-288.33093763692256 dB) is not greater than or equal to 65.737. Got -288.33093763692256.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
from wptserve.utils import isomorphic_encode
|
||||
|
||||
# Outputs the request body, with controls and non-ASCII bytes escaped
|
||||
# (b"\n" becomes b"\\x0a"), and with backslashes doubled.
|
||||
# As a convenience, CRLF newlines are left as is.
|
||||
|
||||
def escape_byte(byte):
|
||||
if b"\0" <= byte <= b"\x1F" or byte >= b"\x7F":
|
||||
return b"\\x%02x" % ord(byte)
|
||||
if byte == b"\\":
|
||||
return b"\\\\"
|
||||
return byte
|
||||
|
||||
def main(request, response):
|
||||
|
||||
headers = [(b"X-Request-Method", isomorphic_encode(request.method)),
|
||||
(b"X-Request-Content-Length", request.headers.get(b"Content-Length", b"NO")),
|
||||
(b"X-Request-Content-Type", request.headers.get(b"Content-Type", b"NO")),
|
||||
# Avoid any kind of content sniffing on the response.
|
||||
(b"Content-Type", b"text/plain; charset=UTF-8")]
|
||||
|
||||
content = b"".join(map(escape_byte, request.body)).replace(b"\\x0d\\x0a", b"\r\n")
|
||||
|
||||
return headers, content
|
|
@ -0,0 +1,117 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>Upload files named using controls (tentative)</title>
|
||||
<!--
|
||||
NOTE: This test is tentative because encoding for filename
|
||||
control characters is not yet standardized.
|
||||
-->
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-form-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-NUL-[\0].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-NUL-[\0].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-BS-[\b].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-BS-[\b].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-VT-[\v].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-VT-[\v].txt",
|
||||
});
|
||||
|
||||
// These have characters that undergo processing in name=,
|
||||
// filename=, and/or value; formPostFileUploadTest postprocesses
|
||||
// expectedEncodedBaseName for these internally.
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LF-[\n].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-LF-[\n].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LF-CR-[\n\r].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-LF-CR-[\n\r].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CR-[\r].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-CR-[\r].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CR-LF-[\r\n].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-CR-LF-[\r\n].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-HT-[\t].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-HT-[\t].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-FF-[\f].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-FF-[\f].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-DEL-[\x7F].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-DEL-[\x7F].txt",
|
||||
});
|
||||
|
||||
// The rest should be passed through unmodified:
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-ESC-[\x1B].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-ESC-[\x1B].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SPACE-[ ].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-SPACE-[ ].txt",
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,230 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>Upload files named using punctuation (tentative)</title>
|
||||
<!--
|
||||
NOTE: This test is tentative because encoding for filename
|
||||
punctuation characters is not yet standardized.
|
||||
-->
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-form-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
// These have characters that undergo processing in name=,
|
||||
// filename=, and/or value; formPostFileUploadTest postprocesses
|
||||
// expectedEncodedBaseName for these internally.
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-QUOTATION-MARK-[\x22].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-QUOTATION-MARK-[\x22].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: '"file-for-upload-in-form-double-quoted.txt"',
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: '"file-for-upload-in-form-double-quoted.txt"',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt",
|
||||
});
|
||||
|
||||
// The rest should be passed through unmodified:
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-ASTERISK-[*].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-ASTERISK-[*].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-COMMA-[,].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-COMMA-[,].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-COLON-[:].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-COLON-[:].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName:
|
||||
"file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-TILDE-[~].txt",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "file-for-upload-in-form-TILDE-[~].txt",
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "'file-for-upload-in-form-single-quoted.txt'",
|
||||
formEncoding: "UTF-8",
|
||||
expectedEncodedBaseName: "'file-for-upload-in-form-single-quoted.txt'",
|
||||
});
|
||||
</script>
|
|
@ -27,35 +27,36 @@ formPostFileUploadTest({
|
|||
fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt',
|
||||
formEncoding: 'UTF-8',
|
||||
expectedEncodedBaseName: (
|
||||
'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt'),
|
||||
'file-for-upload-in-form-\xEF\x9F\xB0\xEF\x9E\x93\xEF\x9E\x83\xEF\x9E\xA0.txt'),
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: 'windows-1252',
|
||||
fileBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
formEncoding: 'UTF-8',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
expectedEncodedBaseName: (
|
||||
'file-for-upload-in-form-\xC3\xA2\xCB\x9C\xC2\xBA\xC3\xB0\xC5\xB8\xCB\x9C\xE2\x80\x9A.txt'),
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: 'JIS X 0201 and JIS X 0208',
|
||||
fileBaseName: 'file-for-upload-in-form-★星★.txt',
|
||||
formEncoding: 'UTF-8',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-★星★.txt',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-\xE2\x98\x85\xE6\x98\x9F\xE2\x98\x85.txt',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: 'Unicode',
|
||||
fileBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
formEncoding: 'UTF-8',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-\xE2\x98\xBA\xF0\x9F\x98\x82.txt',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: 'Unicode',
|
||||
fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`,
|
||||
formEncoding: 'UTF-8',
|
||||
expectedEncodedBaseName: `file-for-upload-in-form-${kTestChars}.txt`,
|
||||
expectedEncodedBaseName: `file-for-upload-in-form-${kTestFallbackUtf8}.txt`,
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -33,15 +33,14 @@ formPostFileUploadTest({
|
|||
fileNameSource: 'x-user-defined',
|
||||
fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt',
|
||||
formEncoding: 'windows-1252',
|
||||
expectedEncodedBaseName: (
|
||||
'file-for-upload-in-form-.txt'),
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-.txt',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
fileNameSource: 'windows-1252',
|
||||
fileBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
formEncoding: 'windows-1252',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-\xE2\x98\xBA\xF0\x9F\x98\x82.txt',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
|
|
|
@ -33,7 +33,7 @@ formPostFileUploadTest({
|
|||
fileNameSource: 'x-user-defined',
|
||||
fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt',
|
||||
formEncoding: 'x-user-defined',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-𓃠.txt',
|
||||
expectedEncodedBaseName: 'file-for-upload-in-form-\xF0\x93\x83\xA0.txt',
|
||||
});
|
||||
|
||||
formPostFileUploadTest({
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>FormData: Upload files named using controls (tentative)</title>
|
||||
<!--
|
||||
NOTE: This test is tentative because encoding for filename
|
||||
control characters is not yet standardized.
|
||||
-->
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-formdata-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-NUL-[\0].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-BS-[\b].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-VT-[\v].txt",
|
||||
});
|
||||
|
||||
// These have characters that undergo processing in name=,
|
||||
// filename=, and/or value; formDataPostFileUploadTest postprocesses
|
||||
// expectedEncodedBaseName for these internally.
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LF-[\n].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LF-CR-[\n\r].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CR-[\r].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CR-LF-[\r\n].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-HT-[\t].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-FF-[\f].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-DEL-[\x7F].txt",
|
||||
});
|
||||
|
||||
// The rest should be passed through unmodified:
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-ESC-[\x1B].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SPACE-[ ].txt",
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,168 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>FormData: Upload files named using punctuation (tentative)</title>
|
||||
<!--
|
||||
NOTE: This test is tentative because encoding for filename
|
||||
punctuation characters is not yet standardized.
|
||||
-->
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-formdata-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
// These have characters that undergo processing in name=,
|
||||
// filename=, and/or value; formDataPostFileUploadTest postprocesses
|
||||
// expectedEncodedBaseName for these internally.
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-QUOTATION-MARK-[\x22].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: '"file-for-upload-in-form-double-quoted.txt"',
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt",
|
||||
});
|
||||
|
||||
// The rest should be passed through unmodified:
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-ASTERISK-[*].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-COMMA-[,].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-COLON-[:].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form-TILDE-[~].txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "'file-for-upload-in-form-single-quoted.txt'",
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>FormData: Upload files in UTF-8 fetch()</title>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-formdata-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form.txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "x-user-defined",
|
||||
fileBaseName: "file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "windows-1252",
|
||||
fileBaseName: "file-for-upload-in-form-☺😂.txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "JIS X 0201 and JIS X 0208",
|
||||
fileBaseName: "file-for-upload-in-form-★星★.txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "Unicode",
|
||||
fileBaseName: "file-for-upload-in-form-☺😂.txt",
|
||||
});
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "Unicode",
|
||||
fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`,
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>FormData: Upload ASCII-named file in UTF-8 form</title>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
|
||||
/>
|
||||
<link
|
||||
rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
|
||||
/>
|
||||
<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
|
||||
<link
|
||||
rel="author"
|
||||
title="Benjamin C. Wiley Sittler"
|
||||
href="mailto:bsittler@chromium.org"
|
||||
/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/send-file-formdata-helper.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
formDataPostFileUploadTest({
|
||||
fileNameSource: "ASCII",
|
||||
fileBaseName: "file-for-upload-in-form.txt",
|
||||
});
|
||||
</script>
|
|
@ -1,5 +1,17 @@
|
|||
'use strict';
|
||||
|
||||
// See /FileAPI/file/resources/echo-content-escaped.py
|
||||
function escapeString(string) {
|
||||
return string.replace(/\\/g, "\\\\").replace(
|
||||
/[^\x20-\x7E]/g,
|
||||
(x) => {
|
||||
let hex = x.charCodeAt(0).toString(16);
|
||||
if (hex.length < 2) hex = "0" + hex;
|
||||
return `\\x${hex}`;
|
||||
},
|
||||
).replace(/\\x0d\\x0a/g, "\r\n");
|
||||
}
|
||||
|
||||
// Rationale for this particular test character sequence, which is
|
||||
// used in filenames and also in file contents:
|
||||
//
|
||||
|
@ -72,36 +84,46 @@
|
|||
// are also allowed in Windows Unicode filenames.
|
||||
const kTestChars = 'ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ';
|
||||
|
||||
// NOTE: The expected interpretation of ISO-2022-JP according to
|
||||
// https://encoding.spec.whatwg.org/#iso-2022-jp-encoder unifies
|
||||
// single-byte and double-byte katakana.
|
||||
const kTestFallbackIso2022jp =
|
||||
('ABC~\x1B(J~\\≈¤\x1B$B!&!&\x1B(B•∙·☼\x1B$B!z@1\x1B(B🌟' +
|
||||
'\x1B$B@1!z\x1B(B☼·∙•\x1B$B!&!&\x1B(B¤≈\x1B(J\\~\x1B(B~XYZ').replace(
|
||||
/[^\0-\x7F]/gu,
|
||||
x => `&#${x.codePointAt(0)};`);
|
||||
// The kTestFallback* strings represent the expected byte sequence from
|
||||
// encoding kTestChars with the given encoding with "html" replacement
|
||||
// mode, isomorphic-decoded. That means, characters that can't be
|
||||
// encoded in that encoding get HTML-escaped, but no further
|
||||
// `escapeString`-like escapes are needed.
|
||||
const kTestFallbackUtf8 = (
|
||||
"ABC~\xE2\x80\xBE\xC2\xA5\xE2\x89\x88\xC2\xA4\xEF\xBD\xA5\xE3\x83\xBB\xE2" +
|
||||
"\x80\xA2\xE2\x88\x99\xC2\xB7\xE2\x98\xBC\xE2\x98\x85\xE6\x98\x9F\xF0\x9F" +
|
||||
"\x8C\x9F\xE6\x98\x9F\xE2\x98\x85\xE2\x98\xBC\xC2\xB7\xE2\x88\x99\xE2\x80" +
|
||||
"\xA2\xE3\x83\xBB\xEF\xBD\xA5\xC2\xA4\xE2\x89\x88\xC2\xA5\xE2\x80\xBE~XYZ"
|
||||
);
|
||||
|
||||
// NOTE: \uFFFD is used here to replace Windows-1252 bytes to match
|
||||
// how we will see them in the reflected POST bytes in a frame using
|
||||
// UTF-8 byte interpretation. The bytes will actually be intact, but
|
||||
// this code cannot tell and does not really care.
|
||||
const kTestFallbackWindows1252 =
|
||||
'ABC~‾\xA5≈\xA4・・\x95∙\xB7☼★星🌟星★☼\xB7∙\x95・・\xA4≈\xA5‾~XYZ'.replace(
|
||||
const kTestFallbackIso2022jp = (
|
||||
("ABC~\x1B(J~\\≈¤\x1B$B!&!&\x1B(B•∙·☼\x1B$B!z@1\x1B(B🌟" +
|
||||
"\x1B$B@1!z\x1B(B☼·∙•\x1B$B!&!&\x1B(B¤≈\x1B(J\\~\x1B(B~XYZ")
|
||||
.replace(/[^\0-\x7F]/gu, (x) => `&#${x.codePointAt(0)};`)
|
||||
);
|
||||
|
||||
const kTestFallbackWindows1252 = (
|
||||
"ABC~‾\xA5≈\xA4・・\x95∙\xB7☼★星🌟星★☼\xB7∙\x95・・\xA4≈\xA5‾~XYZ".replace(
|
||||
/[^\0-\xFF]/gu,
|
||||
x => `&#${x.codePointAt(0)};`).replace(/[\x80-\xFF]/g, '\uFFFD');
|
||||
(x) => `&#${x.codePointAt(0)};`,
|
||||
)
|
||||
);
|
||||
|
||||
const kTestFallbackXUserDefined =
|
||||
kTestChars.replace(/[^\0-\x7F]/gu, x => `&#${x.codePointAt(0)};`);
|
||||
const kTestFallbackXUserDefined = kTestChars.replace(
|
||||
/[^\0-\x7F]/gu,
|
||||
(x) => `&#${x.codePointAt(0)};`,
|
||||
);
|
||||
|
||||
// formPostFileUploadTest - verifies multipart upload structure and
|
||||
// numeric character reference replacement for filenames, field names,
|
||||
// and field values.
|
||||
// and field values using form submission.
|
||||
//
|
||||
// Uses /fetch/api/resources/echo-content.py to echo the upload
|
||||
// POST with UTF-8 byte interpretation, leading to the "UTF-8 goggles"
|
||||
// behavior documented below for expectedEncodedBaseName when non-
|
||||
// UTF-8-compatible byte sequences appear in the formEncoding-encoded
|
||||
// uploaded data.
|
||||
// Uses /FileAPI/file/resources/echo-content-escaped.py to echo the
|
||||
// upload POST with controls and non-ASCII bytes escaped. This is done
|
||||
// because navigations whose response body contains [\0\b\v] may get
|
||||
// treated as a download, which is not what we want. Use the
|
||||
// `escapeString` function to replicate that kind of escape (note that
|
||||
// it takes an isomorphic-decoded string, not a byte sequence).
|
||||
//
|
||||
// Fields in the parameter object:
|
||||
//
|
||||
|
@ -114,10 +136,9 @@ const kTestFallbackXUserDefined =
|
|||
// - formEncoding: the acceptCharset of the form used to submit the
|
||||
// test file. Used in the test name.
|
||||
// - expectedEncodedBaseName: the expected formEncoding-encoded
|
||||
// version of fileBaseName with unencodable characters replaced by
|
||||
// numeric character references and non-7-bit-ASCII bytes seen
|
||||
// through UTF-8 goggles; subsequences not interpretable as UTF-8
|
||||
// have each byte represented here by \uFFFD REPLACEMENT CHARACTER.
|
||||
// version of fileBaseName, isomorphic-decoded. That means, characters
|
||||
// that can't be encoded in that encoding get HTML-escaped, but no
|
||||
// further `escapeString`-like escapes are needed.
|
||||
const formPostFileUploadTest = ({
|
||||
fileNameSource,
|
||||
fileBaseName,
|
||||
|
@ -140,7 +161,7 @@ const formPostFileUploadTest = ({
|
|||
|
||||
const form = Object.assign(document.createElement('form'), {
|
||||
acceptCharset: formEncoding,
|
||||
action: '/fetch/api/resources/echo-content.py',
|
||||
action: '/FileAPI/file/resources/echo-content-escaped.py',
|
||||
method: 'POST',
|
||||
enctype: 'multipart/form-data',
|
||||
target: formTargetFrame.name,
|
||||
|
@ -194,7 +215,7 @@ const formPostFileUploadTest = ({
|
|||
// exposed through the newer .files[0].name API. This check
|
||||
// verifies that assumption.
|
||||
assert_equals(
|
||||
fileInput.files[0].name,
|
||||
baseNameOfFilePath(fileInput.files[0].name),
|
||||
baseNameOfFilePath(fileInput.value),
|
||||
`The basename of the field's value should match its files[0].name`);
|
||||
form.submit();
|
||||
|
@ -219,6 +240,15 @@ const formPostFileUploadTest = ({
|
|||
`${fileBaseName}: multipart form data must end with ${boundary}--: ${
|
||||
JSON.stringify(formDataText)
|
||||
}`);
|
||||
|
||||
const asValue = expectedEncodedBaseName.replace(/\r\n?|\n/g, "\r\n");
|
||||
const asName = asValue.replace(/[\r\n"]/g, encodeURIComponent);
|
||||
const asFilename = expectedEncodedBaseName.replace(/[\r\n"]/g, encodeURIComponent);
|
||||
|
||||
// The response body from echo-content-escaped.py has controls and non-ASCII
|
||||
// bytes escaped, so any caller-provided field that might contain such bytes
|
||||
// must be passed to `escapeString`, after any other expected
|
||||
// transformations.
|
||||
const expectedText = [
|
||||
boundary,
|
||||
'Content-Disposition: form-data; name="_charset_"',
|
||||
|
@ -227,19 +257,22 @@ const formPostFileUploadTest = ({
|
|||
boundary,
|
||||
'Content-Disposition: form-data; name="filename"',
|
||||
'',
|
||||
expectedEncodedBaseName,
|
||||
// Unlike for names and filenames, multipart/form-data values don't escape
|
||||
// \r\n linebreaks, and when they're read from an iframe they become \n.
|
||||
escapeString(asValue).replace(/\r\n/g, "\n"),
|
||||
boundary,
|
||||
`Content-Disposition: form-data; name="${expectedEncodedBaseName}"`,
|
||||
`Content-Disposition: form-data; name="${escapeString(asName)}"`,
|
||||
'',
|
||||
'filename',
|
||||
boundary,
|
||||
`Content-Disposition: form-data; name="file"; ` +
|
||||
`filename="${expectedEncodedBaseName}"`,
|
||||
`filename="${escapeString(asFilename)}"`,
|
||||
'Content-Type: text/plain',
|
||||
'',
|
||||
kTestChars,
|
||||
escapeString(kTestFallbackUtf8),
|
||||
boundary + '--',
|
||||
].join('\n');
|
||||
|
||||
assert_true(
|
||||
formDataText.startsWith(expectedText),
|
||||
`Unexpected multipart-shaped form data received:\n${
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
"use strict";
|
||||
|
||||
const kTestChars = "ABC~‾¥≈¤・・•∙·☼★星🌟星★☼·∙•・・¤≈¥‾~XYZ";
|
||||
|
||||
// formDataPostFileUploadTest - verifies multipart upload structure and
|
||||
// numeric character reference replacement for filenames, field names,
|
||||
// and field values using FormData and fetch().
|
||||
//
|
||||
// Uses /fetch/api/resources/echo-content.py to echo the upload
|
||||
// POST (unlike in send-file-form-helper.js, here we expect all
|
||||
// multipart/form-data request bodies to be UTF-8, so we don't need to
|
||||
// escape controls and non-ASCII bytes).
|
||||
//
|
||||
// Fields in the parameter object:
|
||||
//
|
||||
// - fileNameSource: purely explanatory and gives a clue about which
|
||||
// character encoding is the source for the non-7-bit-ASCII parts of
|
||||
// the fileBaseName, or Unicode if no smaller-than-Unicode source
|
||||
// contains all the characters. Used in the test name.
|
||||
// - fileBaseName: the not-necessarily-just-7-bit-ASCII file basename
|
||||
// used for the constructed test file. Used in the test name.
|
||||
const formDataPostFileUploadTest = ({
|
||||
fileNameSource,
|
||||
fileBaseName,
|
||||
}) => {
|
||||
promise_test(async (testCase) => {
|
||||
const formData = new FormData();
|
||||
let file = new Blob([kTestChars], { type: "text/plain" });
|
||||
try {
|
||||
// Switch to File in browsers that allow this
|
||||
file = new File([file], fileBaseName, { type: file.type });
|
||||
} catch (ignoredException) {
|
||||
}
|
||||
|
||||
// Used to verify that the browser agrees with the test about
|
||||
// field value replacement and encoding independently of file system
|
||||
// idiosyncracies.
|
||||
formData.append("filename", fileBaseName);
|
||||
|
||||
// Same, but with name and value reversed to ensure field names
|
||||
// get the same treatment.
|
||||
formData.append(fileBaseName, "filename");
|
||||
|
||||
formData.append("file", file, fileBaseName);
|
||||
|
||||
const formDataText = await (await fetch(
|
||||
`/fetch/api/resources/echo-content.py`,
|
||||
{
|
||||
method: "POST",
|
||||
body: formData,
|
||||
},
|
||||
)).text();
|
||||
const formDataLines = formDataText.split("\r\n");
|
||||
if (formDataLines.length && !formDataLines[formDataLines.length - 1]) {
|
||||
--formDataLines.length;
|
||||
}
|
||||
assert_greater_than(
|
||||
formDataLines.length,
|
||||
2,
|
||||
`${fileBaseName}: multipart form data must have at least 3 lines: ${
|
||||
JSON.stringify(formDataText)
|
||||
}`,
|
||||
);
|
||||
const boundary = formDataLines[0];
|
||||
assert_equals(
|
||||
formDataLines[formDataLines.length - 1],
|
||||
boundary + "--",
|
||||
`${fileBaseName}: multipart form data must end with ${boundary}--: ${
|
||||
JSON.stringify(formDataText)
|
||||
}`,
|
||||
);
|
||||
|
||||
const asName = fileBaseName.replace(/[\r\n"]/g, encodeURIComponent);
|
||||
const expectedText = [
|
||||
boundary,
|
||||
'Content-Disposition: form-data; name="filename"',
|
||||
"",
|
||||
fileBaseName,
|
||||
boundary,
|
||||
`Content-Disposition: form-data; name="${asName}"`,
|
||||
"",
|
||||
"filename",
|
||||
boundary,
|
||||
`Content-Disposition: form-data; name="file"; ` +
|
||||
`filename="${asName}"`,
|
||||
"Content-Type: text/plain",
|
||||
"",
|
||||
kTestChars,
|
||||
boundary + "--",
|
||||
].join("\r\n");
|
||||
|
||||
assert_true(
|
||||
formDataText.startsWith(expectedText),
|
||||
`Unexpected multipart-shaped form data received:\n${formDataText}\nExpected:\n${expectedText}`,
|
||||
);
|
||||
}, `Upload ${fileBaseName} (${fileNameSource}) in fetch with FormData`);
|
||||
};
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="support/frame-ancestors-test.sub.js"></script>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>tests for matching cookie paths</title>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name=help href="http://tools.ietf.org/html/rfc6265#section-5.1.4">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<meta charset="utf-8">
|
||||
<title>CSS Backgrounds and Borders Test: background-size - one <length> value</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9. Sizing Images: the 'background-size' property">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 and 2020-11-18 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9 Sizing Images: the 'background-size' property">
|
||||
<link rel="match" href="reference/background-size-006-ref.html">
|
||||
<meta name="flags" content="image">
|
||||
<meta name="assert" content="Check if 'background-size' has only one length value, then such value is the width of the corresponding image and the second value (corresponding to the height of the background image) is assumed to be 'auto'. An 'auto' value for one dimension is resolved by using the image's intrinsic ratio (in this test, the image's intrinsic ratio is 1:1) and (multiplied by) the size of the other dimension. Therefore the used height of the background-size in this test should be 45px.">
|
||||
|
@ -16,7 +16,7 @@
|
|||
width: 45px;
|
||||
}
|
||||
#test-overlapping-green {
|
||||
background-image: url(support/60x60-green.png);
|
||||
background-image: url(support/1x1-green.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 45px;
|
||||
bottom: 45px;
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<meta charset="utf-8">
|
||||
<title>CSS Backgrounds and Borders Test: background-size - one <percentage> value</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9. Sizing Images: the 'background-size' property">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 and 2020-11-18 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9 Sizing Images: the 'background-size' property">
|
||||
<link rel="match" href="reference/background-size-006-ref.html">
|
||||
<meta name="flags" content="image">
|
||||
<meta name="assert" content="Check if 'background-size' has only one percentage value, then such value is the width of the corresponding image and the second value (corresponding to the height of the background image) is assumed to be 'auto'. A percentage is relative to the dimensions of the background positioning area. An 'auto' value for one dimension is resolved by using the image's intrinsic ratio (in this test, the image's intrinsic ratio is 1:1) and (multiplied by) the size of the other dimension. Therefore the used height of the background-size in this test should be 45px.">
|
||||
|
@ -16,7 +16,7 @@
|
|||
width: 45px;
|
||||
}
|
||||
#test-overlapping-green {
|
||||
background-image: url(support/60x60-green.png);
|
||||
background-image: url(support/1x1-green.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 45%;
|
||||
bottom: 45px;
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<meta charset="utf-8">
|
||||
<title>CSS Backgrounds and Borders Test: background-size - one auto keyword and one <percentage> values</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9. Sizing Images: the 'background-size' property">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 and 2020-11-18 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9 Sizing Images: the 'background-size' property">
|
||||
<link rel="match" href="reference/background-size-006-ref.html">
|
||||
<meta name="flags" content="image">
|
||||
<meta name="assert" content="Check if 'background-size' has one 'auto' and one percentage values, then the second value is the height of the corresponding background image and the first value (corresponding to the width of the background image) is resolved by using the image's intrinsic ratio (in this test, the image's intrinsic ratio is 1:1) and (multiplied by) the size of the other dimension. A percentage is relative to the dimensions of the background positioning area. Therefore the used width of the background-size in this test should be 45px.">
|
||||
|
@ -16,7 +16,7 @@
|
|||
width: 45px;
|
||||
}
|
||||
#test-overlapping-green {
|
||||
background-image: url(support/60x60-green.png);
|
||||
background-image: url(support/1x1-green.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto 45%;
|
||||
bottom: 45px;
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<meta charset="utf-8">
|
||||
<title>CSS Backgrounds and Borders Test: background-size - one <length> and one <percentage> values</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9. Sizing Images: the 'background-size' property">
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2012-11-09 and 2020-11-18 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" title="3.9 Sizing Images: the 'background-size' property">
|
||||
<link rel="match" href="reference/background-size-006-ref.html">
|
||||
<meta name="flags" content="image">
|
||||
<meta name="assert" content="Check if 'background-size' has one length and one percentage values, then such values are the width and height of the corresponding background image. Therefore the used width and height of the background-size in this test should be 45px and 45px.">
|
||||
|
@ -16,7 +16,7 @@
|
|||
width: 45px;
|
||||
}
|
||||
#test-overlapping-green {
|
||||
background-image: url(support/60x60-green.png);
|
||||
background-image: url(support/1x1-green.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 45px 45%;
|
||||
bottom: 45px;
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype HTML>
|
||||
<html>
|
||||
<meta charset="utf8">
|
||||
<title>CSS Content Visibility: positioned movement update moves hidden container (reference)</title>
|
||||
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
|
||||
|
||||
<style>
|
||||
#target {
|
||||
top: 0;
|
||||
left: 100px;
|
||||
position: absolute;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id=target></div>
|
|
@ -0,0 +1,33 @@
|
|||
<!doctype HTML>
|
||||
<html class="reftest-wait">
|
||||
<meta charset="utf8">
|
||||
<title>CSS Content Visibility: positioned movement update moves hidden container</title>
|
||||
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
|
||||
<link rel="match" href="content-visibility-078-ref.html">
|
||||
<meta name="assert" content="when locked, position updates still apply">
|
||||
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
|
||||
<style>
|
||||
.hidden { content-visibility: hidden; }
|
||||
#target {
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id=target class=hidden>Content</div>
|
||||
|
||||
<script>
|
||||
function runTest() {
|
||||
target.style = "left: 100px;";
|
||||
takeScreenshot();
|
||||
}
|
||||
|
||||
window.onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest));
|
||||
</script>
|
|
@ -0,0 +1,4 @@
|
|||
<!DOCTYPE html>
|
||||
<div>
|
||||
<span style="color: green">green</span><span style="color: red">red</span>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<title>inline block ::before styles should apply inside ::first-line</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#generated-content">
|
||||
<link rel="match" href="first-line-with-inline-block-before-ref.html">
|
||||
<style>
|
||||
#target::first-line {
|
||||
color: red;
|
||||
}
|
||||
#target::before {
|
||||
content: "green";
|
||||
color: green;
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
<div id="target">red</div>
|
|
@ -0,0 +1,170 @@
|
|||
<!doctype html>
|
||||
<title>Table parts sticky containers</title>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
<link rel="author" title="Aleks Totic" href="mailto:atotic@chromium.org" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-tables-3/" />
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5020"/>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
main * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
main .scroller {
|
||||
width: 350px;
|
||||
height: 302px;
|
||||
overflow-y: scroll;
|
||||
outline-offset: -1px;
|
||||
outline: gray solid 1px;
|
||||
}
|
||||
main .padblock {
|
||||
width: 300px;
|
||||
height: 400px;
|
||||
outline-offset: -2px;
|
||||
outline: black dotted 2px;
|
||||
}
|
||||
main table {
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
main td {
|
||||
width: 100px;
|
||||
height: 25px;
|
||||
}
|
||||
.sticky {
|
||||
position:sticky;
|
||||
top: 0;
|
||||
background: rgba(0,255,0, 0.3);
|
||||
}
|
||||
|
||||
</style>
|
||||
<main>
|
||||
<div class="scroller">
|
||||
<div class="padblock">top</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>h:0,0</td>
|
||||
<td>h:0,1</td>
|
||||
<td>h:0,2</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td>h:1,0</td>
|
||||
<td >h:1,1</td>
|
||||
<td>h:1,2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>h:2,0</td>
|
||||
<td>h:2,1</td>
|
||||
<td>h:2,2</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>b:0,0</td>
|
||||
<td>b:0,1</td>
|
||||
<td>b:0,2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>b:1,0</td>
|
||||
<td>b:1,1</td>
|
||||
<td>b:1,2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>b:2,0</td>
|
||||
<td>b:2,1</td>
|
||||
<td>b:2,2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td>f:0,0</td>
|
||||
<td>f:0,1</td>
|
||||
<td>f:0,2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>f:1,0</td>
|
||||
<td>f:1,1</td>
|
||||
<td>f:1,2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>f:2,0</td>
|
||||
<td>f:2,1</td>
|
||||
<td>f:2,2</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<div class="padblock">bottom</div>
|
||||
</div>
|
||||
</main>
|
||||
<script>
|
||||
|
||||
function scrollTo(y) {
|
||||
let scroller = document.querySelector("main .scroller");
|
||||
scroller.scrollTop = y;
|
||||
}
|
||||
|
||||
test( () => {
|
||||
// Setup
|
||||
let target = document.querySelector("main tbody tr:nth-child(2) td:nth-child(2)");
|
||||
let scroller = document.querySelector("main .scroller");
|
||||
target.classList.toggle("sticky");
|
||||
|
||||
// Tests
|
||||
scrollTo(0);
|
||||
assert_equals(target.getBoundingClientRect().top, 500, "intrinsic position");
|
||||
|
||||
scrollTo(600);
|
||||
assert_equals(target.getBoundingClientRect().top, 0, "sticking to the table");
|
||||
|
||||
scrollTo(640);
|
||||
assert_equals(target.getBoundingClientRect().top, -40, "sticking to the table bottom");
|
||||
|
||||
// Teardown
|
||||
target.classList.toggle("sticky");
|
||||
}, "TD sticky container is table");
|
||||
|
||||
test( () => {
|
||||
// Setup
|
||||
let target = document.querySelector("main tbody tr:nth-child(2)");
|
||||
let scroller = document.querySelector("main .scroller");
|
||||
target.classList.toggle("sticky");
|
||||
|
||||
// Tests
|
||||
scrollTo(0);
|
||||
assert_equals(target.getBoundingClientRect().top, 500, "intrinsic position");
|
||||
|
||||
scrollTo(600);
|
||||
assert_equals(target.getBoundingClientRect().top, 0, "sticking to the table");
|
||||
|
||||
scrollTo(640);
|
||||
assert_equals(target.getBoundingClientRect().top, -40, "sticking to the table bottom");
|
||||
// Teardown
|
||||
target.classList.toggle("sticky");
|
||||
}, "TR sticky container is table");
|
||||
|
||||
|
||||
test( () => {
|
||||
// Setup
|
||||
let target = document.querySelector("main tbody");
|
||||
let scroller = document.querySelector("main .scroller");
|
||||
target.classList.toggle("sticky");
|
||||
|
||||
// Tests
|
||||
scrollTo(0);
|
||||
assert_equals(target.getBoundingClientRect().top, 475, "intrinsic position");
|
||||
|
||||
scrollTo(550);
|
||||
assert_equals(target.getBoundingClientRect().top, 0, "sticking to the table");
|
||||
|
||||
scrollTo(600);
|
||||
assert_equals(target.getBoundingClientRect().top, -50, "sticking to the table bottom");
|
||||
|
||||
// Teardown
|
||||
target.classList.toggle("sticky");
|
||||
}, "TBODY sticky container is table");
|
||||
|
||||
</script>
|
|
@ -1,5 +1,6 @@
|
|||
<!doctype html>
|
||||
<title>XPath tests</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
<script>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name="timeout" content="long">
|
||||
<title>Testing normalizing white-space sequence after execCommand("delete", false, "")</title>
|
||||
<script src=../include/implementation.js></script>
|
||||
<script>var testsJsLibraryOnly = true</script>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<title>
|
||||
Check ServiceWorkers can set COOP/COEP headers for documents's responses
|
||||
</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/utils.js"></script>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<title>
|
||||
Check ServiceWorkers can set COOP/COEP headers for documents's responses
|
||||
</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/utils.js"></script>
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title><link rel="icon"> doesn't fire an error event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
async_test((t) => {
|
||||
const link = document.createElement("link");
|
||||
link.rel = "icon";
|
||||
link.href = "http://{{hosts[][nonexistent]}}";
|
||||
|
||||
link.addEventListener("error", t.unreached_func());
|
||||
document.head.append(link);
|
||||
t.step_timeout(() => t.done(), 2000);
|
||||
}, document.title);
|
||||
</script>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title><link rel="icon"> doesn't fire a load event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
async_test((t) => {
|
||||
const link = document.createElement("link");
|
||||
link.rel = "icon";
|
||||
link.href = "/images/wpt-logo/wpt-logo-darkblue-bg.svg";
|
||||
|
||||
link.addEventListener("load", t.unreached_func());
|
||||
document.head.append(link);
|
||||
t.step_timeout(() => t.done(), 2000);
|
||||
}, document.title);
|
||||
</script>
|
|
@ -1,6 +1,7 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Test handling of attributes that map to dimension properties</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/rendering.html#maps-to-the-dimension-property">
|
||||
<link rel="help"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<title>TextTrack mode attribute</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/common/media.js"></script>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Form newline normalization</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
function createForm(testCase, name, value) {
|
||||
const form = document.createElement("form");
|
||||
const input = document.createElement("input");
|
||||
input.type = "hidden";
|
||||
input.name = name;
|
||||
input.value = value;
|
||||
form.appendChild(input);
|
||||
document.body.appendChild(form);
|
||||
testCase.add_cleanup(() => {
|
||||
document.body.removeChild(form);
|
||||
});
|
||||
return form;
|
||||
}
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a", "b\nc"));
|
||||
assert_equals(formData.get("a"), "b\r\nc");
|
||||
}, document.title + ": \\n in the value becomes \\r\\n");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a", "b\rc"));
|
||||
assert_equals(formData.get("a"), "b\r\nc");
|
||||
}, document.title + ": \\r in the value becomes \\r\\n");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a", "b\r\nc"));
|
||||
assert_equals(formData.get("a"), "b\r\nc");
|
||||
}, document.title + ": \\r\\n in the value stays unchanged");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a", "b\n\rc"));
|
||||
assert_equals(formData.get("a"), "b\r\n\r\nc");
|
||||
}, document.title + ": \\n\\r in the value becomes \\r\\n\\r\\n");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a\nb", "c"));
|
||||
assert_equals([...formData][0][0], "a\r\nb");
|
||||
}, document.title + ": \\n in the name becomes \\r\\n");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a\rb", "c"));
|
||||
assert_equals([...formData][0][0], "a\r\nb");
|
||||
}, document.title + ": \\r in the name becomes \\r\\n");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a\r\nb", "c"));
|
||||
assert_equals([...formData][0][0], "a\r\nb");
|
||||
}, document.title + ": \\r\\n in the name stays unchanged");
|
||||
|
||||
test((testCase) => {
|
||||
const formData = new FormData(createForm(testCase, "a\n\rb", "c"));
|
||||
assert_equals([...formData][0][0], "a\r\n\r\nb");
|
||||
}, document.title + ": \\n\\r in the name becomes \\r\\n\\r\\n");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -5,6 +5,7 @@
|
|||
-->
|
||||
<html>
|
||||
<head>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
-->
|
||||
<html>
|
||||
<head>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<meta name="timeout" content="long">
|
||||
<title>TestDriver actions: pause</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<title>touch-action: parent > child: auto > child: none</title>
|
||||
<meta name="assert" content="TA15.5 - when a user touches an element, the effect of that touch is determined by the value of the touch-action property and the default touch behaviors on the element and its ancestors. Scrollable-Parent, Child: `auto`, Grand-Child: `none`">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>touch-action: parent > child: pan-x > child: pan-x</title>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name="assert" content="TA15.6 - when a user touches an element, the effect of that touch is determined by the value of the touch-action property and the default touch behaviors on the element and its ancestors. Scrollable-Parent, Child: `pan-x`, Grand-Child: `pan-x`">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>touch-action: inherit from parent: none</title>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name="assert" content="TA15.8 - when a user touches an element, the effect of that touch is determined by the value of the touch-action property and the default touch behaviors on the element and its ancestors. Scrollable-Parent: `none` Child: `auto`">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<title>touch-action: pan-right</title>
|
||||
<meta name="assert" content="TA15.3 - With `touch-action: pan-right` on a swiped or click/dragged element, only panning on the x-axis right direction should be possible.">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Makes sure that preloaded resources with a type attribute trigger the onload event</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/preload/resources/preload_helper.js"></script>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<title>window.requestIdleCallback callback behavior during idle periods.</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="author" title="Ross McIlroy" href="mailto:rmcilroy@chromium.org" />
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name="timeout" content="long">
|
||||
<title>requestIdleCallback callback must be called eventually</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
|
|
0
tests/wpt/web-platform-tests/resource-timing/__init__.py
Normal file
0
tests/wpt/web-platform-tests/resource-timing/__init__.py
Normal file
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<meta name="timeout" content="long">
|
||||
<title>Test for 'secure-payment-confirmation' payment method</title>
|
||||
<link rel="help" href="https://github.com/rsolomakhin/secure-payment-confirmation">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
|
|
|
@ -15,6 +15,10 @@ promise_test(function(t) {
|
|||
return runTest(t, 'resources/claim-nested-worker-fetch-iframe.html');
|
||||
}, 'fetch() in nested Worker should be intercepted after the client is claimed.');
|
||||
|
||||
promise_test(function(t) {
|
||||
return runTest(t, 'resources/claim-blob-url-worker-fetch-iframe.html');
|
||||
}, 'fetch() in blob URL Worker should be intercepted after the client is claimed.');
|
||||
|
||||
function runTest(t, iframe_url) {
|
||||
var resource = 'simple.txt';
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue