mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Update web-platform-tests to revision b048002b012a8290b7dbdb0f0d685454e8837b6f
This commit is contained in:
parent
3e77a0ae09
commit
5bdea9564b
37 changed files with 901 additions and 43 deletions
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -8331,6 +8331,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-pseudo/spelling-error-002-manual.html": [
|
||||
[
|
||||
"css/css-pseudo/spelling-error-002-manual.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-pseudo/spelling-error-003-manual.html": [
|
||||
[
|
||||
"css/css-pseudo/spelling-error-003-manual.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-regions/animations/animations-001.html": [
|
||||
[
|
||||
"css/css-regions/animations/animations-001.html",
|
||||
|
@ -139509,6 +139521,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-2.tentative.html": [
|
||||
[
|
||||
"css/css-position/position-sticky-large-top-2.tentative.html",
|
||||
[
|
||||
[
|
||||
"/css/css-position/position-sticky-large-top-2-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-position/position-sticky-large-top.tentative.html": [
|
||||
[
|
||||
"css/css-position/position-sticky-large-top.tentative.html",
|
||||
[
|
||||
[
|
||||
"/css/css-position/position-sticky-large-top-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-position/position-sticky-nested-inline.html": [
|
||||
[
|
||||
"css/css-position/position-sticky-nested-inline.html",
|
||||
|
@ -256124,6 +256160,12 @@
|
|||
"css/css-position/position-sticky-inline-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-2-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-position/position-sticky-nested-inline-ref.html": [
|
||||
[]
|
||||
],
|
||||
|
@ -256349,6 +256391,9 @@
|
|||
"css/css-pseudo/spelling-error-001-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-pseudo/textpath-selection-011-ref.html": [
|
||||
[]
|
||||
],
|
||||
"css/css-regions/META.yml": [
|
||||
[]
|
||||
],
|
||||
|
@ -268382,6 +268427,9 @@
|
|||
"domxpath/README.md": [
|
||||
[]
|
||||
],
|
||||
"domxpath/helpers.js": [
|
||||
[]
|
||||
],
|
||||
"domxpath/xml_xpath_tests.xml": [
|
||||
[]
|
||||
],
|
||||
|
@ -341879,6 +341927,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/booleans.html": [
|
||||
[
|
||||
"domxpath/booleans.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/document.tentative.html": [
|
||||
[
|
||||
"domxpath/document.tentative.html",
|
||||
|
@ -341891,6 +341945,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-concat.html": [
|
||||
[
|
||||
"domxpath/fn-concat.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-contains.html": [
|
||||
[
|
||||
"domxpath/fn-contains.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-lang.html": [
|
||||
[
|
||||
"domxpath/fn-lang.html",
|
||||
|
@ -341903,12 +341969,48 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-starts-with.html": [
|
||||
[
|
||||
"domxpath/fn-starts-with.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-substring-after.html": [
|
||||
[
|
||||
"domxpath/fn-substring-after.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-substring-before.html": [
|
||||
[
|
||||
"domxpath/fn-substring-before.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-substring.html": [
|
||||
[
|
||||
"domxpath/fn-substring.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/fn-translate.html": [
|
||||
[
|
||||
"domxpath/fn-translate.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/node-sets.html": [
|
||||
[
|
||||
"domxpath/node-sets.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/numbers.html": [
|
||||
[
|
||||
"domxpath/numbers.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"domxpath/predicates.html": [
|
||||
[
|
||||
"domxpath/predicates.html",
|
||||
|
@ -460110,6 +460212,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-pseudo/textpath-selection-011.html": [
|
||||
[
|
||||
"css/css-pseudo/textpath-selection-011.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-regions/elements/video-001.html": [
|
||||
[
|
||||
"css/css-regions/elements/video-001.html",
|
||||
|
@ -589997,6 +590105,22 @@
|
|||
"5b2d705e2d0721c072bedf1dcc489fae25b2014f",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-2-ref.html": [
|
||||
"941047901df08a616888746d6c0332d69c9382f9",
|
||||
"support"
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-2.tentative.html": [
|
||||
"1cf9c0dfb43b6bfd71c1496a5d7b3b9428d0c086",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-position/position-sticky-large-top-ref.html": [
|
||||
"075551a6e856112bb12909684f718b0875fec690",
|
||||
"support"
|
||||
],
|
||||
"css/css-position/position-sticky-large-top.tentative.html": [
|
||||
"b00a0d139683717b57633e38bb9ce7f033833b65",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-position/position-sticky-left.html": [
|
||||
"054cf10eabc256cde34fc738d9fcd7429946849c",
|
||||
"testharness"
|
||||
|
@ -590889,6 +591013,22 @@
|
|||
"a71d6f0155e42ad0ebe33f6ea11aa5755201beaa",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-pseudo/spelling-error-002-manual.html": [
|
||||
"88fa97038ce0a5791c733cbc50926e4447440259",
|
||||
"manual"
|
||||
],
|
||||
"css/css-pseudo/spelling-error-003-manual.html": [
|
||||
"559a4fe092ebaa72e31e5a07c38abcc0e6ca6122",
|
||||
"manual"
|
||||
],
|
||||
"css/css-pseudo/textpath-selection-011-ref.html": [
|
||||
"d9ba940518e121eeb0e9701ccd4e36772fdfa786",
|
||||
"support"
|
||||
],
|
||||
"css/css-pseudo/textpath-selection-011.html": [
|
||||
"2e42c6be8fbcfc756c578986517efc0b1739d1f3",
|
||||
"visual"
|
||||
],
|
||||
"css/css-regions/META.yml": [
|
||||
"37bdc98c84c0f4c9a32d3cc5b2f4e3494eb63999",
|
||||
"support"
|
||||
|
@ -620238,7 +620378,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-writing-modes/sizing-orthog-htb-in-vrl-013-ref.xht": [
|
||||
"3b1fef0f84e53ad72e61fc1b849ec6521b162968",
|
||||
"dea13d4238dab838610355056ddaf105e947f3bf",
|
||||
"support"
|
||||
],
|
||||
"css/css-writing-modes/sizing-orthog-htb-in-vrl-013.xht": [
|
||||
|
@ -640297,6 +640437,10 @@
|
|||
"918997b1646d73d71a79c302953ab9f0f8ed69cc",
|
||||
"support"
|
||||
],
|
||||
"domxpath/booleans.html": [
|
||||
"41522edf05f8bc752408eb2cdde10a05bd211a7a",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/document.tentative.html": [
|
||||
"b75c0f0d66dacb47a825ae2aa00bb63a19616433",
|
||||
"testharness"
|
||||
|
@ -640305,6 +640449,14 @@
|
|||
"8239d9c395e3c965c5ae2f23ed79156b7b85c01f",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-concat.html": [
|
||||
"fe160966aa7983191e81ffa65f5955c86afe7bb9",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-contains.html": [
|
||||
"a4d8bbfa7b3ce35b574bdcb902c4a0caa9ad39c3",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-lang.html": [
|
||||
"c7c102945d070a4ea65cae0e30ea6ec64bb82c95",
|
||||
"testharness"
|
||||
|
@ -640313,10 +640465,38 @@
|
|||
"a9f33a0ee3d153abd6fe05415c6ce6699ce8525c",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-starts-with.html": [
|
||||
"99d2df7db6b67c9e186ade1160da6932f8dc90bd",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-substring-after.html": [
|
||||
"c290914d24b0463d42959ff675f1498a7898806d",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-substring-before.html": [
|
||||
"69b3f1ef6e45e948a55d49b409c5a58a9cf83381",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-substring.html": [
|
||||
"3311a15061de49c5337b938d732946358f2245f3",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/fn-translate.html": [
|
||||
"ee1700d1b427ea80fc5076a22a00f2dd62f4937b",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/helpers.js": [
|
||||
"0805bd682b48461588250a22018a6bd90990d002",
|
||||
"support"
|
||||
],
|
||||
"domxpath/node-sets.html": [
|
||||
"a47314fb0869885db01fd13bd8aa35687e283d0d",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/numbers.html": [
|
||||
"e847d6cd2e53839914a649ca1cb61953c659e2ed",
|
||||
"testharness"
|
||||
],
|
||||
"domxpath/predicates.html": [
|
||||
"1786740dbd2522c15325a6e8677b07402a7cd767",
|
||||
"testharness"
|
||||
|
@ -715378,11 +715558,11 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/manifestupdate.py": [
|
||||
"af9af18d90715d43bbcd2ae47ce76275bb0e1577",
|
||||
"2f2a8d543352d4c2128afd0314e8261668964d01",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/metadata.py": [
|
||||
"c328dcefa7253ddea952549c702723e98b4cadc4",
|
||||
"bf4d7a558abb7da117c95f896c1c8c3babd77219",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/products.py": [
|
||||
|
@ -715470,7 +715650,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/tests/test_update.py": [
|
||||
"5f199390b64f9d0843df7900cf624a9e674f3dd7",
|
||||
"5ed366788067c94245a8f7e1dadccb93da0493ab",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/tests/test_wpttest.py": [
|
||||
|
@ -715534,7 +715714,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py": [
|
||||
"a81ad9d06a144bff7f3cc9ed91a4260cd061b7fb",
|
||||
"3b11e83012ab50fe0ea240ae056d02c8968b6a60",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/wptmanifest/backends/static.py": [
|
||||
|
@ -725514,7 +725694,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webrtc/RTCRtpTransceiver.https.html": [
|
||||
"67571895175f19c008743523f035aa31fced9681",
|
||||
"af84fe2498c9242f49639fa1bd55a4e848affbbf",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCSctpTransport-constructor.html": [
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -312,12 +312,6 @@
|
|||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -330,9 +324,12 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,9 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Embedded credentials are treated as network errors in new windows.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
|
@ -16,5 +16,5 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Position Test Reference: Test position:sticky element with large top in an overflow scroll container</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
|
||||
<style>
|
||||
.scroll {
|
||||
border: 5px solid blue;
|
||||
padding: 5px 3px 0 8px;
|
||||
overflow: auto;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
background: yellow;
|
||||
position: absolute;
|
||||
top: 55px;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: absolute;
|
||||
background: purple;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
top: 205px;
|
||||
z-index: 1;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTest() {
|
||||
document.getElementById("scroll2").scrollTop = 50;
|
||||
}
|
||||
</script>
|
||||
|
||||
<body onload="runTest();">
|
||||
<div class="scroll">
|
||||
<span>
|
||||
<div class="sticky"></div>
|
||||
</span>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
|
||||
<div class="scroll" id="scroll2">
|
||||
<span>
|
||||
<div class="sticky"></div>
|
||||
</span>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,59 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Position Test: Test position:sticky element with large top in an overflow container</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-position/#sticky-pos">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1598112">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2794">
|
||||
<link rel="match" href="position-sticky-large-top-2-ref.html">
|
||||
<meta name="assert" content="This test verifies the position of a position:sticky element with large top value can be reached by scrolling the overflow container.">
|
||||
|
||||
<style>
|
||||
.scroll {
|
||||
border: 5px solid blue;
|
||||
padding: 5px 3px 0 8px;
|
||||
overflow: auto;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
background: yellow;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: sticky;
|
||||
background: purple;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
top: 200px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTest() {
|
||||
document.getElementById("scroll2").scrollTop = 50;
|
||||
}
|
||||
</script>
|
||||
|
||||
<body onload="runTest();">
|
||||
<!-- test before scroll -->
|
||||
<div class="scroll">
|
||||
<span>
|
||||
<div class="sticky"></div>
|
||||
</span>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
|
||||
<!-- test after scroll -->
|
||||
<div class="scroll" id="scroll2">
|
||||
<span>
|
||||
<div class="sticky"></div>
|
||||
</span>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Position Test Reference: Test position:sticky element with large top in an overflow scroll container</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
|
||||
<style>
|
||||
.scroll {
|
||||
border: 5px solid blue;
|
||||
overflow: auto;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
background: yellow;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: absolute;
|
||||
background: purple;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
top: 200px;
|
||||
z-index: 1;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTest() {
|
||||
document.getElementById("scroll2").scrollTop = 50;
|
||||
}
|
||||
</script>
|
||||
|
||||
<body onload="runTest();">
|
||||
<div class="scroll">
|
||||
<div class="sticky"></div>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
|
||||
<div class="scroll" id="scroll2">
|
||||
<div class="sticky"></div>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,54 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Position Test: Test position:sticky element with large top in an overflow container</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-position/#sticky-pos">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1598112">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2794">
|
||||
<link rel="match" href="position-sticky-large-top-ref.html">
|
||||
<meta name="assert" content="This test verifies the position of a position:sticky element with large top value can be reached by scrolling the overflow container.">
|
||||
|
||||
<style>
|
||||
.scroll {
|
||||
border: 5px solid blue;
|
||||
overflow: auto;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
background: yellow;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: sticky;
|
||||
background: purple;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
top: 200px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTest() {
|
||||
document.getElementById("scroll2").scrollTop = 50;
|
||||
}
|
||||
</script>
|
||||
|
||||
<body onload="runTest();">
|
||||
<!-- test before scroll -->
|
||||
<div class="scroll">
|
||||
<div class="sticky"></div>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
|
||||
<!-- test after scroll -->
|
||||
<div class="scroll" id="scroll2">
|
||||
<div class="sticky"></div>
|
||||
<div class="block"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Pseudo-Elements Test: highlighting of spelling error</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling">
|
||||
|
||||
<meta content="" name="flags">
|
||||
|
||||
<style>
|
||||
input
|
||||
{
|
||||
font-size: 300%;
|
||||
}
|
||||
|
||||
input::spelling-error
|
||||
{
|
||||
color: maroon;
|
||||
text-decoration: underline dotted red;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>PREREQUISITE: User agent needs to have an enabled and capable spelling error module. If it does not, then this test does not apply to such user agent.
|
||||
|
||||
<p>Test passes if each glyph of "txet" is maroon and if "txet" is underlined with a red dotted line.
|
||||
|
||||
<div><input type="text" value="A txet sample"></div>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Pseudo-Elements Test: highlighting of spelling error</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling">
|
||||
|
||||
<meta content="" name="flags">
|
||||
|
||||
<style>
|
||||
textarea
|
||||
{
|
||||
font-size: 300%;
|
||||
}
|
||||
|
||||
textarea::spelling-error
|
||||
{
|
||||
color: maroon;
|
||||
text-decoration: underline dotted red;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>PREREQUISITE: User agent needs to have an enabled and capable spelling error module. If it does not, then this test does not apply to such user agent.
|
||||
|
||||
<p>Test passes if each glyph of "txet" is maroon and if "txet" is underlined with a red dotted line.
|
||||
|
||||
<div><textarea rows="2" cols="20">A txet sample</textarea></div>
|
|
@ -0,0 +1,46 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Reftest Reference</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
|
||||
<meta content="svg" name="flags">
|
||||
|
||||
<style>
|
||||
text
|
||||
{
|
||||
fill: green;
|
||||
/*
|
||||
fill is the shorthand form for fill-color,
|
||||
fill-image, fill-origin, fill-position, fill-size
|
||||
and fill-repeat
|
||||
https://www.w3.org/TR/fill-stroke-3/#fill-shorthand
|
||||
*/
|
||||
stroke: yellow;
|
||||
/*
|
||||
stroke is the shorthand form for stroke-color,
|
||||
stroke-image, stroke-origin, stroke-position,
|
||||
stroke-size, and stroke-repeat
|
||||
https://www.w3.org/TR/fill-stroke-3/#stroke-shorthand
|
||||
*/
|
||||
stroke-width: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Test passes if the glyphs of "Curvy text sample" are green with a yellow outline.
|
||||
|
||||
<div>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="550" height="300">
|
||||
|
||||
<path id="pathToApply"
|
||||
d="M 100 200
|
||||
C 100 100 200 0 500 200" fill="none" />
|
||||
|
||||
<text style="font-size: 48px;"><textPath xlink:href="#pathToApply" id="test">Curvy text sample</textPath></text>
|
||||
|
||||
</svg>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,69 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Test: active selection of text following a path (complex)</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling">
|
||||
<link rel="help" href="https://www.w3.org/TR/fill-stroke-3/#fill-shorthand">
|
||||
<link rel="help" href="https://www.w3.org/TR/fill-stroke-3/#stroke-shorthand">
|
||||
|
||||
<meta content="svg" name="flags">
|
||||
<meta content="This test checks that an SVG application with a text following a text path can be selected and then be styled." name="assert">
|
||||
|
||||
<style>
|
||||
::selected
|
||||
{
|
||||
fill: green;
|
||||
/*
|
||||
fill is the shorthand form for fill-color,
|
||||
fill-image, fill-origin, fill-position, fill-size
|
||||
and fill-repeat
|
||||
https://www.w3.org/TR/fill-stroke-3/#fill-shorthand
|
||||
*/
|
||||
stroke: yellow;
|
||||
/*
|
||||
stroke is the shorthand form for stroke-color,
|
||||
stroke-image, stroke-origin, stroke-position,
|
||||
stroke-size, and stroke-repeat
|
||||
https://www.w3.org/TR/fill-stroke-3/#stroke-shorthand
|
||||
*/
|
||||
stroke-width: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Test passes if the glyphs of "Curvy text sample" are green with a yellow outline.
|
||||
|
||||
<div>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="550" height="300">
|
||||
|
||||
<path id="pathToApply"
|
||||
d="M 100 200
|
||||
C 100 100 200 0 500 200" fill="none" />
|
||||
|
||||
<text fill="red" style="font-size: 48px;"><textPath xlink:href="#pathToApply" id="test">Curvy text sample</textPath></text>
|
||||
|
||||
</svg>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var targetRange = document.createRange();
|
||||
/* We first create an empty range */
|
||||
|
||||
targetRange.setStart(document.getElementById("test").childNodes[0], 0);
|
||||
/*
|
||||
Then we set the start boundary of the range inside textPath#test to
|
||||
the 1st character, which is "C"
|
||||
*/
|
||||
|
||||
targetRange.setEnd(document.getElementById("test").childNodes[0], 17);
|
||||
/* And we set the end boundary of the range inside textPath#test
|
||||
right after the 18th character which is "e" */
|
||||
|
||||
window.getSelection().addRange(targetRange);
|
||||
/* Finally, we now select such range of content */
|
||||
</script>
|
|
@ -9,13 +9,14 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
|
||||
<meta name="DC.date.created" content="2016-12-22T09:54:03+11:00" scheme="W3CDTF" />
|
||||
<meta name="DC.date.modified" content="2016-12-30T09:54:03+11:00" scheme="W3CDTF" />
|
||||
<meta name="DC.date.modified" content="2019-12-18T09:54:03+11:00" scheme="W3CDTF" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
html
|
||||
{
|
||||
direction: rtl;
|
||||
width: calc(52px + 100vw + 52px);
|
||||
}
|
||||
|
||||
|
@ -29,6 +30,7 @@
|
|||
table
|
||||
{
|
||||
border-spacing: 0px;
|
||||
direction: ltr;
|
||||
position: absolute;
|
||||
width: calc(52px + 100% + 52px);
|
||||
}
|
||||
|
@ -55,6 +57,7 @@
|
|||
display: block;
|
||||
}
|
||||
]]></style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
52
tests/wpt/web-platform-tests/domxpath/booleans.html
Normal file
52
tests/wpt/web-platform-tests/domxpath/booleans.html
Normal file
|
@ -0,0 +1,52 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#booleans">
|
||||
<body>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_true(evaluateBoolean('(./span)[4] or ./br[2]', context));
|
||||
}, '"or" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_true(evaluateBoolean('count((./span)[3]) = count(./br[2])', context));
|
||||
}, '"=" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_false(evaluateBoolean('count((./span)[3]) != count(./br[2])', context));
|
||||
}, '"!=" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_true(evaluateBoolean('count((./span)[3]) < count(./br)', context));
|
||||
}, '"<" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_false(evaluateBoolean('count((./span)[3]) > count(./br[2])', context));
|
||||
}, '">" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_false(evaluateBoolean('count((./span)[3]) >= count(./br)', context));
|
||||
}, '">=" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_true(evaluateBoolean('count((./span)[3]) <= count(./br[2])', context));
|
||||
}, '"<=" operator depending on the context node');
|
||||
|
||||
</script>
|
||||
</body>
|
15
tests/wpt/web-platform-tests/domxpath/fn-concat.html
Normal file
15
tests/wpt/web-platform-tests/domxpath/fn-concat.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-concat">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>foo</span><span>bar</span><b>ber</b>';
|
||||
assert_equals(evaluateString('concat((./span)[2], ./b)', context), 'barber');
|
||||
}, 'concat() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
15
tests/wpt/web-platform-tests/domxpath/fn-contains.html
Normal file
15
tests/wpt/web-platform-tests/domxpath/fn-contains.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-contains">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>bar bar</span><span>bar<b>ber</b></span><b>bar</b>';
|
||||
assert_true(evaluateBoolean('contains((./span)[1], ./b)', context));
|
||||
}, 'contains() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
15
tests/wpt/web-platform-tests/domxpath/fn-starts-with.html
Normal file
15
tests/wpt/web-platform-tests/domxpath/fn-starts-with.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-starts-with">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>foo</span><span>bar<b>ber</b></span><b>bar</b>';
|
||||
assert_true(evaluateBoolean('starts-with((./span)[2], ./b)', context));
|
||||
}, 'starts-with() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-substring-after">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>^^^bar$$$</span><span>bar<b>^</b></span><b>bar</b>';
|
||||
assert_equals(evaluateString('substring-after((./span)[1], ./b)', context), '$$$');
|
||||
}, 'substring-after() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-substring-before">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>^^^bar$$$</span><span>bar<b>$</b></span><b>bar</b>';
|
||||
assert_equals(evaluateString('substring-before((./span)[1], ./b)', context), '^^^');
|
||||
}, 'substring-before() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
15
tests/wpt/web-platform-tests/domxpath/fn-substring.html
Normal file
15
tests/wpt/web-platform-tests/domxpath/fn-substring.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-substring">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>^^^bar$$$</span><span></span><br><br><br><br>';
|
||||
assert_equals(evaluateString('substring((./span)[1], count(./br))', context), 'bar$$$');
|
||||
}, 'substring() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
15
tests/wpt/web-platform-tests/domxpath/fn-translate.html
Normal file
15
tests/wpt/web-platform-tests/domxpath/fn-translate.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-translate">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<body>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span>^^^bar$$$</span><span><b>^^^</b></span><b>bar</b><b>foo</b>';
|
||||
assert_equals(evaluateString('translate((./span)[1], (./b)[1], ./b[2])', context), '^^^foo$$$');
|
||||
}, 'translate() arguments depending on the context node');
|
||||
</script>
|
||||
</body>
|
14
tests/wpt/web-platform-tests/domxpath/helpers.js
Normal file
14
tests/wpt/web-platform-tests/domxpath/helpers.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
function evaluateBoolean(expression, context) {
|
||||
let doc = context.ownerDocument || context;
|
||||
return doc.evaluate(expression, context, null, XPathResult.BOOLEAN_TYPE, null).booleanValue;
|
||||
}
|
||||
|
||||
function evaluateNumber(expression, context) {
|
||||
let doc = context.ownerDocument || context;
|
||||
return doc.evaluate(expression, context, null, XPathResult.NUMBER_TYPE, null).numberValue;
|
||||
}
|
||||
|
||||
function evaluateString(expression, context) {
|
||||
let doc = context.ownerDocument || context;
|
||||
return doc.evaluate(expression, context, null, XPathResult.STRING_TYPE, null).stringValue;
|
||||
}
|
39
tests/wpt/web-platform-tests/domxpath/numbers.html
Normal file
39
tests/wpt/web-platform-tests/domxpath/numbers.html
Normal file
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#numbers">
|
||||
<body>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="helpers.js"></script>
|
||||
<div id="context"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_equals(evaluateNumber('count((./span)[1]) + count(./br)', context), 3);
|
||||
}, '"+" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_equals(evaluateNumber('count((./span)[1]) - count(./br)', context), -1);
|
||||
}, '"-" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_equals(evaluateNumber('count((./span)[1]) * count(./br)', context), 2);
|
||||
}, '"*" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_equals(evaluateNumber('count((./span)[1]) div count(./br)', context), 0.5);
|
||||
}, '"div" operator depending on the context node');
|
||||
|
||||
test(() => {
|
||||
const context = document.querySelector('#context');
|
||||
context.innerHTML = '<span></span><span></span><span></span><br><br>';
|
||||
assert_equals(evaluateNumber('count((./span)[1]) mod count(./br)', context), 1);
|
||||
}, '"mod" operator depending on the context node');
|
||||
</script>
|
||||
</body>
|
|
@ -513,7 +513,7 @@ class PropertyUpdate(object):
|
|||
top_level_props, dependent_props = self.node.root.run_info_properties
|
||||
update_properties = set(top_level_props)
|
||||
for item in itervalues(dependent_props):
|
||||
update_properties |= set(dependent_props)
|
||||
update_properties |= set(item)
|
||||
for condition in current_conditions:
|
||||
if ((not condition.variables.issubset(update_properties) and
|
||||
not run_info_by_condition[condition])):
|
||||
|
|
|
@ -4,6 +4,7 @@ import os
|
|||
from collections import defaultdict, namedtuple
|
||||
|
||||
from mozlog import structuredlog
|
||||
from six import itervalues
|
||||
from six.moves import intern
|
||||
|
||||
from . import manifestupdate
|
||||
|
@ -285,7 +286,7 @@ def update_results(id_test_map,
|
|||
disable_intermittent,
|
||||
update_intermittent,
|
||||
remove_intermittent):
|
||||
test_file_items = set(id_test_map.itervalues())
|
||||
test_file_items = set(itervalues(id_test_map))
|
||||
|
||||
default_expected_by_type = {}
|
||||
for test_type, test_cls in wpttest.manifest_test_cls.iteritems():
|
||||
|
@ -673,6 +674,29 @@ class TestFileData(object):
|
|||
|
||||
return rv
|
||||
|
||||
def filter_unknown_props(self, update_properties, subtests):
|
||||
# Remove subtests which have some conditions that aren't in update_properties
|
||||
# since removing these may be inappropriate
|
||||
top_level_props, dependent_props = update_properties
|
||||
all_properties = set(top_level_props)
|
||||
for item in itervalues(dependent_props):
|
||||
all_properties |= set(item)
|
||||
|
||||
filtered = []
|
||||
for subtest in subtests:
|
||||
include = True
|
||||
for key, _ in subtest.iter_properties():
|
||||
conditions = subtest.get_conditions(key)
|
||||
for condition in conditions:
|
||||
if not condition.variables.issubset(all_properties):
|
||||
include = False
|
||||
break
|
||||
if not include:
|
||||
break
|
||||
if include:
|
||||
filtered.append(subtest)
|
||||
return filtered
|
||||
|
||||
def update(self, default_expected_by_type, update_properties,
|
||||
full_update=False, disable_intermittent=None, update_intermittent=False,
|
||||
remove_intermittent=False):
|
||||
|
@ -687,6 +711,7 @@ class TestFileData(object):
|
|||
|
||||
if full_update:
|
||||
orphans = self.orphan_subtests(expected)
|
||||
orphans = self.filter_unknown_props(update_properties, orphans)
|
||||
|
||||
if not self.requires_update and not orphans:
|
||||
return
|
||||
|
|
|
@ -66,7 +66,7 @@ def update(tests, *logs, **kwargs):
|
|||
updater.update_from_log(log)
|
||||
|
||||
update_properties = (["debug", "os", "version", "processor"],
|
||||
{"os": ["version"], "processor": "bits"})
|
||||
{"os": ["version"], "processor": ["bits"]})
|
||||
|
||||
expected_data = {}
|
||||
metadata.load_expected = lambda _, __, test_path, *args: expected_data.get(test_path)
|
||||
|
@ -1259,6 +1259,28 @@ def test_update_full_unknown():
|
|||
"expected", run_info_2) == "ERROR"
|
||||
|
||||
|
||||
@pytest.mark.xfail(sys.version[0] == "3",
|
||||
reason="metadata doesn't support py3")
|
||||
def test_update_full_unknown_missing():
|
||||
tests = [("path/to/test.htm", [test_id], "testharness", """[test.htm]
|
||||
[subtest_deleted]
|
||||
expected:
|
||||
if release_or_beta: ERROR
|
||||
FAIL
|
||||
""")]
|
||||
|
||||
log_0 = suite_log([("test_start", {"test": test_id}),
|
||||
("test_status", {"test": test_id,
|
||||
"subtest": "test1",
|
||||
"status": "PASS",
|
||||
"expected": "PASS"}),
|
||||
("test_end", {"test": test_id,
|
||||
"status": "OK"})],
|
||||
run_info={"debug": False, "release_or_beta": False})
|
||||
|
||||
updated = update(tests, log_0, full_update=True)
|
||||
assert len(updated) == 0
|
||||
|
||||
|
||||
@pytest.mark.xfail(sys.version[0] == "3",
|
||||
reason="metadata doesn't support py3")
|
||||
|
|
|
@ -381,6 +381,10 @@ class ManifestItem(object):
|
|||
for item in iterkeys(self._flatten()):
|
||||
yield item
|
||||
|
||||
def iter_properties(self):
|
||||
for item in self._data:
|
||||
yield item, self._data[item]
|
||||
|
||||
def remove_value(self, key, value):
|
||||
if key not in self._data:
|
||||
return
|
||||
|
|
|
@ -1205,14 +1205,27 @@
|
|||
// Wait a little, just in case some stray events fire
|
||||
await new Promise(r => t.step_timeout(r, 100));
|
||||
|
||||
assert_equals(1, countMuteAudio1.count, "Got 1 mute event for pc1's audio track");
|
||||
assert_equals(1, countMuteVideo1.count, "Got 1 mute event for pc1's video track");
|
||||
assert_equals(1, countMuteAudio2.count, "Got 1 mute event for pc2's audio track");
|
||||
assert_equals(1, countMuteVideo2.count, "Got 1 mute event for pc2's video track");
|
||||
assert_equals(2, countUnmuteAudio1.count, "Got 2 unmute events for pc1's audio track");
|
||||
assert_equals(2, countUnmuteVideo1.count, "Got 2 unmute events for pc1's video track");
|
||||
assert_equals(2, countUnmuteAudio2.count, "Got 2 unmute events for pc2's audio track");
|
||||
assert_equals(2, countUnmuteVideo2.count, "Got 2 unmute events for pc2's video track");
|
||||
// Receiving an RTCP bye should generate a mute event. How often this
|
||||
// happens depends upon the browser and on timing. Rather than try to
|
||||
// match an individual browser's current behaviour, this checks to see
|
||||
// that we receive at least the minimum number of expected mute and
|
||||
// unmute events.
|
||||
assert_greater_than_equal(countMuteAudio1.count, 1,
|
||||
"Expect 1 mute event for pc1's audio track");
|
||||
assert_greater_than_equal(countMuteVideo1.count, 1,
|
||||
"Expect 1 mute event for pc1's video track");
|
||||
assert_greater_than_equal(countMuteAudio2.count, 1,
|
||||
"Expect 1 mute event for pc2's audio track");
|
||||
assert_greater_than_equal(countMuteVideo2.count, 1,
|
||||
"Expect 1 mute event for pc2's video track");
|
||||
assert_greater_than_equal(countUnmuteAudio1.count, 2,
|
||||
"Expect 2 unmute events for pc1's audio track");
|
||||
assert_greater_than_equal(countUnmuteVideo1.count, 2,
|
||||
"Expect 2 unmute events for pc1's video track");
|
||||
assert_greater_than_equal(countUnmuteAudio2.count, 2,
|
||||
"Expect 2 unmute events for pc2's audio track");
|
||||
assert_greater_than_equal(countUnmuteVideo2.count, 2,
|
||||
"Expect 2 unmute events for pc2's video track");
|
||||
};
|
||||
|
||||
const checkStop = async t => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue