mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 341891a7294014cb21b0a85cd0e024997aa21555
This commit is contained in:
parent
84f13342f6
commit
4aba25d880
31 changed files with 370 additions and 82 deletions
|
@ -7,7 +7,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -264669,7 +264669,7 @@
|
||||||
"docs/writing-tests/test-templates.md": [
|
"docs/writing-tests/test-templates.md": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testdriver-tutorial.md": [
|
"docs/writing-tests/testdriver-extension-tutorial.md": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testdriver.md": [
|
"docs/writing-tests/testdriver.md": [
|
||||||
|
@ -321772,9 +321772,15 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"css/css-masking/animations/clip-path-interpolation.html": [
|
"css/css-masking/animations/clip-path-interpolation-001.html": [
|
||||||
[
|
[
|
||||||
"css/css-masking/animations/clip-path-interpolation.html",
|
"css/css-masking/animations/clip-path-interpolation-001.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-masking/animations/clip-path-interpolation-002.html": [
|
||||||
|
[
|
||||||
|
"css/css-masking/animations/clip-path-interpolation-002.html",
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -579051,10 +579057,14 @@
|
||||||
"322ebd724e8524e85d8afe369b6bafaabbec8c79",
|
"322ebd724e8524e85d8afe369b6bafaabbec8c79",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"css/css-masking/animations/clip-path-interpolation.html": [
|
"css/css-masking/animations/clip-path-interpolation-001.html": [
|
||||||
"21c34f1f2b75ec7345a97b00db62a49b038cf026",
|
"21c34f1f2b75ec7345a97b00db62a49b038cf026",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"css/css-masking/animations/clip-path-interpolation-002.html": [
|
||||||
|
"e00170ed331bcbca450a4de5ef41c415cc88d2b9",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg": [
|
"css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg": [
|
||||||
"269e8feed2d3c21774a7c94729c3551899ce4d92",
|
"269e8feed2d3c21774a7c94729c3551899ce4d92",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -631176,7 +631186,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/running-tests/from-local-system.md": [
|
"docs/running-tests/from-local-system.md": [
|
||||||
"0f337176c47d7c38bcaebd85fd86628e1870dfae",
|
"bc8b50ffd104199c3489415119e1ef148723827a",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/running-tests/from-web.md": [
|
"docs/running-tests/from-web.md": [
|
||||||
|
@ -631236,7 +631246,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/index.md": [
|
"docs/writing-tests/index.md": [
|
||||||
"0e0d3f35b00a20345d319914344bf779d4016aa8",
|
"84735b5ba3644a7a9e30ae21591649e75c82208f",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/lint-tool.md": [
|
"docs/writing-tests/lint-tool.md": [
|
||||||
|
@ -631283,12 +631293,12 @@
|
||||||
"858758b4c8e022afe53d76184a65a44da8106a1b",
|
"858758b4c8e022afe53d76184a65a44da8106a1b",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testdriver-tutorial.md": [
|
"docs/writing-tests/testdriver-extension-tutorial.md": [
|
||||||
"275c813355c6cb8e6b5e2e6c1595f40bde28e7ec",
|
"262e394353632ccc4aaa8b42955d09a0de61624f",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testdriver.md": [
|
"docs/writing-tests/testdriver.md": [
|
||||||
"99176906130c3812c9876fe72707175e35d961e8",
|
"6b398b993b61f835dc18b1a97019ab3d3d1377e0",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testharness-api.md": [
|
"docs/writing-tests/testharness-api.md": [
|
||||||
|
@ -631300,7 +631310,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/testharness.md": [
|
"docs/writing-tests/testharness.md": [
|
||||||
"17ee097ce185d07ac7353a1541c5c30593b9c387",
|
"acab70a1f1630cce6a270d8a966d166c90c23c22",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/writing-tests/tools.md": [
|
"docs/writing-tests/tools.md": [
|
||||||
|
@ -661992,7 +662002,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/html.idl": [
|
"interfaces/html.idl": [
|
||||||
"8347c5d4cdc9b00550efcec7f2a77993f2b7ccf6",
|
"486875ec274f84ca5a6dae5c341b76119cc2e540",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/image-capture.idl": [
|
"interfaces/image-capture.idl": [
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
[[data-expected-height\] 7]
|
[[data-expected-height\] 7]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 3]
|
[[data-expected-height\] 1]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 4]
|
[[data-expected-height\] 2]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -312,18 +312,21 @@
|
||||||
[<iframe>: separate response Content-Type: */* text/html]
|
[<iframe>: separate response Content-Type: */* text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: */* text/html]
|
[<iframe>: combined response Content-Type: */* text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html */*]
|
[<iframe>: combined response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
|
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
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,9 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript ]
|
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,3 +11,9 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%0C]
|
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20'NosniFF']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_1.html]
|
|
||||||
[Multiple history traversals from the same task]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_5.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[document_domain_access_details.sub.html]
|
[document_domain_access_details.sub.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)]
|
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
|
[Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)]
|
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
|
[Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Access allowed if same-origin and both set document.domain to existing value.]
|
[Access allowed if same-origin and both set document.domain to existing value.]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Access is not revoked to Document object when we stop being same effective script origin due to document.domain.]
|
[Access is not revoked to Document object when we stop being same effective script origin due to document.domain.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Access disallowed if same-origin but only one sets document.domain.]
|
[Access disallowed if same-origin but only one sets document.domain.]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
|
[Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[embedded-opener-remove-frame.html]
|
[embedded-opener-remove-frame.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[opener and "removed" embedded documents]
|
[opener and "removed" embedded documents]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -7,5 +7,5 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[opener of discarded auxiliary browsing context]
|
[opener of discarded auxiliary browsing context]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1391,6 +1391,27 @@
|
||||||
[SVGAElement includes HTMLHyperlinkElementUtils: member names are unique]
|
[SVGAElement includes HTMLHyperlinkElementUtils: member names are unique]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface object name]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface object length]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface: existence and properties of interface prototype object]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface: attribute submitter]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface: existence and properties of interface object]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[SubmitEvent interface: existence and properties of interface prototype object's "constructor" property]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
||||||
[idlharness.https.html?include=(Document|Window)]
|
[idlharness.https.html?include=(Document|Window)]
|
||||||
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]
|
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_escaping-3.html]
|
[iframe_sandbox_popups_escaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[button-submit-children.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[This test will pass if a form navigation successfully occurs when clicking a child element of a <button type=submit> element with a onclick event handler which prevents the default form submission and manually calls form.submit() instead.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[toggleEvent.html]
|
|
||||||
[Calling open twice on 'details' fires only one toggle event]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[DOMContentLoaded-defer.html]
|
||||||
|
[The end: DOMContentLoaded and defer scripts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[2d.shadow.offset.negativeX.html]
|
[2d.shadow.offset.negativeX.html]
|
||||||
|
expected: CRASH
|
||||||
[Shadows can be offset with negative x]
|
[Shadows can be offset with negative x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
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
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[WorkerGlobalScope-close.html]
|
|
||||||
[Test sending a message after closing.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[import-in-moduleworker.html]
|
[import-in-moduleworker.html]
|
||||||
expected: ERROR
|
|
||||||
[Base URL in module dedicated workers: import]
|
[Base URL in module dedicated workers: import]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[sharedworker-in-worker.html]
|
[sharedworker-in-worker.html]
|
||||||
expected: ERROR
|
|
||||||
[Base URL in workers: new SharedWorker()]
|
[Base URL in workers: new SharedWorker()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -0,0 +1,221 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>clip-path-interpolation</title>
|
||||||
|
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#theclip-path">
|
||||||
|
<meta name="assert" content="clip-path supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
clip-path: inset(10px);
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background-color: black;
|
||||||
|
clip-path: inset(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.expected {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: 'inset(20px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(7px)'},
|
||||||
|
{at: 0, expect: 'inset(10px)'},
|
||||||
|
{at: 0.3, expect: 'inset(13px)'},
|
||||||
|
{at: 0.6, expect: 'inset(16px)'},
|
||||||
|
{at: 1, expect: 'inset(20px)'},
|
||||||
|
{at: 1.5, expect: 'inset(25px)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'initial',
|
||||||
|
to: 'inset(20px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inherit',
|
||||||
|
to: 'inset(20px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(7px)'},
|
||||||
|
{at: 0, expect: 'inset(10px)'},
|
||||||
|
{at: 0.3, expect: 'inset(13px)'},
|
||||||
|
{at: 0.6, expect: 'inset(16px)'},
|
||||||
|
{at: 1, expect: 'inset(20px)'},
|
||||||
|
{at: 1.5, expect: 'inset(25px)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'unset',
|
||||||
|
to: 'inset(20px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'none',
|
||||||
|
to: 'circle(3px at 1px 2px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(10px at 25px 75%)',
|
||||||
|
to: 'circle(50px at 50px center)'
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'circle(0px at 17.5px 82.5%)'}, // radius can't be negative
|
||||||
|
{at: 0, expect: 'circle(10px at 25px 75%)'},
|
||||||
|
{at: 0.3, expect: 'circle(22px at 32.5px 67.5%)'},
|
||||||
|
{at: 0.6, expect: 'circle(34px at 40px 60%)'},
|
||||||
|
{at: 1, expect: 'circle(50px at 50px 50%)'},
|
||||||
|
{at: 1.5, expect: 'circle(70px at 62.5px 37.5%)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(farthest-side at 25px 75%)',
|
||||||
|
to: 'circle(farthest-side at 50px center)'
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(closest-side at 10px 20px)',
|
||||||
|
to: 'circle(farthest-side at 30px 40px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(50px at 10px 20px)',
|
||||||
|
to: 'circle(farthest-side at 30px 40px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'ellipse(10px 20px at 25px 75px)',
|
||||||
|
to: 'ellipse(50px 100px at 50px 50px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'ellipse(0px 0px at 17.5px 82.5px)'}, // radius can't be negative
|
||||||
|
{at: 0, expect: 'ellipse(10px 20px at 25px 75px)'},
|
||||||
|
{at: 0.3, expect: 'ellipse(22px 44px at 32.5px 67.5px)'},
|
||||||
|
{at: 0.6, expect: 'ellipse(34px 68px at 40px 60px)'},
|
||||||
|
{at: 1, expect: 'ellipse(50px 100px at 50px 50px)'},
|
||||||
|
{at: 1.5, expect: 'ellipse(70px 140px at 62.5px 37.5px)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'ellipse(closest-side farthest-side at 25px 75%)',
|
||||||
|
to: 'ellipse(closest-side farthest-side at 50px center)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'ellipse(closest-side farthest-side at 10px 20px)',
|
||||||
|
to: 'ellipse(farthest-side closest-side at 30px 40px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'ellipse(50px closest-side at 10px 20px)',
|
||||||
|
to: 'ellipse(150px farthest-side at 30px 40px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inset(20px)',
|
||||||
|
to: 'inset(40%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(calc(26px + -12%))'},
|
||||||
|
{at: 0, expect: 'inset(calc(20px + 0%))'},
|
||||||
|
{at: 0.3, expect: 'inset(calc(14px + 12%))'},
|
||||||
|
{at: 0.6, expect: 'inset(calc(8px + 24%))'},
|
||||||
|
{at: 1, expect: 'inset(40%)'},
|
||||||
|
{at: 1.5, expect: 'inset(calc(-10px + 60%))'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)',
|
||||||
|
to: 'inset(101px 102px 103px 104px round 110px 120px 130px 140px / 150px 160px 170px 180px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(-29px -28px -27px -26px round 0px 0px 0px 10px / 20px 30px 40px 50px)'},
|
||||||
|
{at: 0, expect: 'inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)'},
|
||||||
|
{at: 0.3, expect: 'inset(31px 32px 33px 34px round 40px 50px 60px 70px / 80px 90px 100px 110px)'},
|
||||||
|
{at: 0.6, expect: 'inset(61px 62px 63px 64px round 70px 80px 90px 100px / 110px 120px 130px 140px)'},
|
||||||
|
{at: 1, expect: 'inset(101px 102px 103px 104px round 110px 120px 130px 140px / 150px 160px 170px 180px)'},
|
||||||
|
{at: 1.5, expect: 'inset(151px 152px 153px 154px round 160px 170px 180px 190px / 200px 210px 220px 230px)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inset(1px 2px round 100px 200px)',
|
||||||
|
to: 'inset(101px 102px 101px 102px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(-29px -28px round 130px 260px)'},
|
||||||
|
{at: 0, expect: 'inset(1px 2px round 100px 200px)'},
|
||||||
|
{at: 0.3, expect: 'inset(31px 32px round 70px 140px)'},
|
||||||
|
{at: 0.6, expect: 'inset(61px 62px round 40px 80px)'},
|
||||||
|
{at: 1, expect: 'inset(101px 102px)'},
|
||||||
|
{at: 1.5, expect: 'inset(151px 152px)'}, // border radius can't be negative
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(10px 20%, 30px 40%)',
|
||||||
|
to: 'polygon(110px 120%, 130px 140%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'polygon(-20px -10%, 0px 10%)'},
|
||||||
|
{at: 0, expect: 'polygon(10px 20%, 30px 40%)'},
|
||||||
|
{at: 0.3, expect: 'polygon(40px 50%, 60px 70%)'},
|
||||||
|
{at: 0.6, expect: 'polygon(70px 80%, 90px 100%)'},
|
||||||
|
{at: 1, expect: 'polygon(110px 120%, 130px 140%)'},
|
||||||
|
{at: 1.5, expect: 'polygon(160px 170%, 180px 190%)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(evenodd, 10px 20px)',
|
||||||
|
to: 'polygon(evenodd, 110px 120px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'polygon(evenodd, -20px -10px)'},
|
||||||
|
{at: 0, expect: 'polygon(evenodd, 10px 20px)'},
|
||||||
|
{at: 0.3, expect: 'polygon(evenodd, 40px 50px)'},
|
||||||
|
{at: 0.6, expect: 'polygon(evenodd, 70px 80px)'},
|
||||||
|
{at: 1, expect: 'polygon(evenodd, 110px 120px)'},
|
||||||
|
{at: 1.5, expect: 'polygon(evenodd, 160px 170px)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(evenodd, 10px 20px)',
|
||||||
|
to: 'polygon(nonzero, 110px 120px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(evenodd, 10px 20px)',
|
||||||
|
to: 'polygon(110px 120px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(10px 20px, 30px 40px)',
|
||||||
|
to: 'polygon(110px 120px)',
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -36,7 +36,7 @@ pip install --user virtualenv
|
||||||
To make the `PATH` change persistent, add it to your `~/.bash_profile` file or
|
To make the `PATH` change persistent, add it to your `~/.bash_profile` file or
|
||||||
wherever you currently set your PATH.
|
wherever you currently set your PATH.
|
||||||
|
|
||||||
See also [additional setup required to run Safari](safari).
|
See also [additional setup required to run Safari](safari.md).
|
||||||
|
|
||||||
### Windows Setup
|
### Windows Setup
|
||||||
**Note:** In general, Windows Subsystem for Linux will provide the smoothest
|
**Note:** In general, Windows Subsystem for Linux will provide the smoothest
|
||||||
|
|
|
@ -28,7 +28,7 @@ There's also a load of [general guidelines](general-guidelines) that apply to al
|
||||||
server-features
|
server-features
|
||||||
submission-process
|
submission-process
|
||||||
testdriver
|
testdriver
|
||||||
testdriver-tutorial
|
testdriver-extension-tutorial
|
||||||
testharness
|
testharness
|
||||||
testharness-tutorial
|
testharness-tutorial
|
||||||
tools
|
tools
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# testdriver.js Tutorial
|
# Testdriver extension tutorial
|
||||||
|
|
||||||
Adding new commands to testdriver.js
|
Adding new commands to testdriver.js
|
||||||
|
|
||||||
## Assumptions
|
## Assumptions
|
|
@ -16,16 +16,22 @@ the global scope.
|
||||||
NB: presently, testdriver.js only works in the top-level test browsing
|
NB: presently, testdriver.js only works in the top-level test browsing
|
||||||
context (and not therefore in any frame or window opened from it).
|
context (and not therefore in any frame or window opened from it).
|
||||||
|
|
||||||
### action_sequence
|
### Actions
|
||||||
Usage: `test_driver.action_sequence(actions)`
|
Usage:
|
||||||
* `actions`: an array of `Action` objects
|
```
|
||||||
|
let actions = new test_driver.Actions()
|
||||||
|
.action1()
|
||||||
|
.action2();
|
||||||
|
actions.send()
|
||||||
|
```
|
||||||
|
|
||||||
This function causes a sequence of actions to be sent to the browser. It is based on the [WebDriver API](https://w3c.github.io/webdriver/#actions).
|
Test authors are encouraged to use the builder API to generate the sequence of actions. The builder
|
||||||
|
API can be accessed via the `new test_driver.Actions()` object, and actions are defined in [testdriver-actions.js](https://github.com/web-platform-tests/wpt/blob/master/resources/testdriver-actions.js)
|
||||||
|
|
||||||
|
The `actions.send()` function causes the sequence of actions to be sent to the browser. It is based on the [WebDriver API](https://w3c.github.io/webdriver/#actions).
|
||||||
The action can be a keyboard action, a pointer action or a pause. It returns a `Promise` that
|
The action can be a keyboard action, a pointer action or a pause. It returns a `Promise` that
|
||||||
resolves after the actions have been sent or rejects if an error was thrown.
|
resolves after the actions have been sent or rejects if an error was thrown.
|
||||||
|
|
||||||
Test authors are encouraged to use the builder API to generate the sequence of actions. The builder
|
|
||||||
API can be accessed via the `new test_driver.Actions()` object.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
idlharness
|
idlharness
|
||||||
testharness-api
|
testharness-api
|
||||||
testdriver-tutorial
|
testdriver-extension-tutorial
|
||||||
testdriver
|
testdriver
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -266,9 +266,10 @@ interface HTMLQuoteElement : HTMLElement {
|
||||||
[CEReactions] attribute USVString cite;
|
[CEReactions] attribute USVString cite;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLOListElement : HTMLElement {
|
interface HTMLOListElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute boolean reversed;
|
[CEReactions] attribute boolean reversed;
|
||||||
[CEReactions] attribute long start;
|
[CEReactions] attribute long start;
|
||||||
[CEReactions] attribute DOMString type;
|
[CEReactions] attribute DOMString type;
|
||||||
|
@ -283,16 +284,17 @@ interface HTMLUListElement : HTMLElement {
|
||||||
// also has obsolete members
|
// also has obsolete members
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLMenuElement : HTMLElement {
|
interface HTMLMenuElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
// also has obsolete members
|
// also has obsolete members
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLLIElement : HTMLElement {
|
interface HTMLLIElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute long value;
|
[CEReactions] attribute long value;
|
||||||
|
|
||||||
// also has obsolete members
|
// also has obsolete members
|
||||||
|
@ -339,9 +341,10 @@ interface HTMLDataElement : HTMLElement {
|
||||||
[CEReactions] attribute DOMString value;
|
[CEReactions] attribute DOMString value;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLTimeElement : HTMLElement {
|
interface HTMLTimeElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute DOMString dateTime;
|
[CEReactions] attribute DOMString dateTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -396,9 +399,10 @@ interface HTMLSourceElement : HTMLElement {
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window,
|
||||||
HTMLConstructor,
|
|
||||||
NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
|
NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
|
||||||
interface HTMLImageElement : HTMLElement {
|
interface HTMLImageElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute DOMString alt;
|
[CEReactions] attribute DOMString alt;
|
||||||
[CEReactions] attribute USVString src;
|
[CEReactions] attribute USVString src;
|
||||||
[CEReactions] attribute USVString srcset;
|
[CEReactions] attribute USVString srcset;
|
||||||
|
@ -489,9 +493,10 @@ interface HTMLParamElement : HTMLElement {
|
||||||
// also has obsolete members
|
// also has obsolete members
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLVideoElement : HTMLMediaElement {
|
interface HTMLVideoElement : HTMLMediaElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute unsigned long width;
|
[CEReactions] attribute unsigned long width;
|
||||||
[CEReactions] attribute unsigned long height;
|
[CEReactions] attribute unsigned long height;
|
||||||
readonly attribute unsigned long videoWidth;
|
readonly attribute unsigned long videoWidth;
|
||||||
|
@ -501,9 +506,10 @@ interface HTMLVideoElement : HTMLMediaElement {
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window,
|
||||||
HTMLConstructor,
|
|
||||||
NamedConstructor=Audio(optional DOMString src)]
|
NamedConstructor=Audio(optional DOMString src)]
|
||||||
interface HTMLAudioElement : HTMLMediaElement {};
|
interface HTMLAudioElement : HTMLMediaElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
};
|
||||||
|
|
||||||
[Exposed=Window]
|
[Exposed=Window]
|
||||||
interface HTMLTrackElement : HTMLElement {
|
interface HTMLTrackElement : HTMLElement {
|
||||||
|
@ -818,9 +824,10 @@ interface HTMLTableCellElement : HTMLElement {
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window,
|
||||||
OverrideBuiltins,
|
OverrideBuiltins,
|
||||||
LegacyUnenumerableNamedProperties,
|
LegacyUnenumerableNamedProperties]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLFormElement : HTMLElement {
|
interface HTMLFormElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute DOMString acceptCharset;
|
[CEReactions] attribute DOMString acceptCharset;
|
||||||
[CEReactions] attribute USVString action;
|
[CEReactions] attribute USVString action;
|
||||||
[CEReactions] attribute DOMString autocomplete;
|
[CEReactions] attribute DOMString autocomplete;
|
||||||
|
@ -839,7 +846,7 @@ interface HTMLFormElement : HTMLElement {
|
||||||
getter (RadioNodeList or Element) (DOMString name);
|
getter (RadioNodeList or Element) (DOMString name);
|
||||||
|
|
||||||
void submit();
|
void submit();
|
||||||
void requestSubmit(optional HTMLElement submitter);
|
void requestSubmit(optional HTMLElement? submitter = null);
|
||||||
[CEReactions] void reset();
|
[CEReactions] void reset();
|
||||||
boolean checkValidity();
|
boolean checkValidity();
|
||||||
boolean reportValidity();
|
boolean reportValidity();
|
||||||
|
@ -996,9 +1003,10 @@ interface HTMLOptGroupElement : HTMLElement {
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window,
|
||||||
HTMLConstructor,
|
|
||||||
NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
|
NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
|
||||||
interface HTMLOptionElement : HTMLElement {
|
interface HTMLOptionElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute boolean disabled;
|
[CEReactions] attribute boolean disabled;
|
||||||
readonly attribute HTMLFormElement? form;
|
readonly attribute HTMLFormElement? form;
|
||||||
[CEReactions] attribute DOMString label;
|
[CEReactions] attribute DOMString label;
|
||||||
|
@ -1147,6 +1155,17 @@ interface ValidityState {
|
||||||
readonly attribute boolean valid;
|
readonly attribute boolean valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
|
interface SubmitEvent : Event {
|
||||||
|
constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
|
||||||
|
|
||||||
|
readonly attribute HTMLElement? submitter;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary SubmitEventInit : EventInit {
|
||||||
|
HTMLElement? submitter = null;
|
||||||
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window,
|
||||||
Constructor(DOMString type, optional FormDataEventInit eventInitDict = {})]
|
Constructor(DOMString type, optional FormDataEventInit eventInitDict = {})]
|
||||||
interface FormDataEvent : Event {
|
interface FormDataEvent : Event {
|
||||||
|
@ -1214,9 +1233,10 @@ dictionary AssignedNodesOptions {
|
||||||
|
|
||||||
typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
|
typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
HTMLConstructor]
|
|
||||||
interface HTMLCanvasElement : HTMLElement {
|
interface HTMLCanvasElement : HTMLElement {
|
||||||
|
[HTMLConstructor] constructor();
|
||||||
|
|
||||||
[CEReactions] attribute unsigned long width;
|
[CEReactions] attribute unsigned long width;
|
||||||
[CEReactions] attribute unsigned long height;
|
[CEReactions] attribute unsigned long height;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue