mirror of
https://github.com/servo/servo.git
synced 2025-07-14 10:53:42 +01:00
Update web-platform-tests to revision 2abaf21d855986de7baa55ad52a601c489ff22fd
This commit is contained in:
parent
e09e683718
commit
05d9213a6e
33 changed files with 531 additions and 95 deletions
|
@ -0,0 +1,10 @@
|
||||||
|
[getContextAttributes.html]
|
||||||
|
[Test context creation attributes alpha: true]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Test context creation attributes alpha: false]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Test default context creation attributes]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -14,9 +14,6 @@
|
||||||
[Revoke blob URL after creating Request, will fetch]
|
[Revoke blob URL after creating Request, will fetch]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[url-with-fetch.any.html]
|
[url-with-fetch.any.html]
|
||||||
[Untitled]
|
[Untitled]
|
||||||
|
|
|
@ -13507,6 +13507,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"payment-request/billing-address-changed-manual.https.html": [
|
||||||
|
[
|
||||||
|
"/payment-request/billing-address-changed-manual.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"payment-request/change-shipping-option-manual.https.html": [
|
"payment-request/change-shipping-option-manual.https.html": [
|
||||||
[
|
[
|
||||||
"/payment-request/change-shipping-option-manual.https.html",
|
"/payment-request/change-shipping-option-manual.https.html",
|
||||||
|
@ -122481,6 +122487,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html": [
|
||||||
|
[
|
||||||
|
"/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/reference/grid-auto-repeat-multiple-values-001-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-grid/grid-definition/grid-layout-auto-tracks.html": [
|
"css/css-grid/grid-definition/grid-layout-auto-tracks.html": [
|
||||||
[
|
[
|
||||||
"/css/css-grid/grid-definition/grid-layout-auto-tracks.html",
|
"/css/css-grid/grid-definition/grid-layout-auto-tracks.html",
|
||||||
|
@ -264904,6 +264922,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-grid/reference/grid-auto-repeat-multiple-values-001-ref.html": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-grid/reference/grid-different-gutters-ref.html": [
|
"css/css-grid/reference/grid-different-gutters-ref.html": [
|
||||||
[
|
[
|
||||||
{}
|
{}
|
||||||
|
@ -326622,6 +326645,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"2dcontext/context-attributes/getContextAttributes.html": [
|
||||||
|
[
|
||||||
|
"/2dcontext/context-attributes/getContextAttributes.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html": [
|
"2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html": [
|
||||||
[
|
[
|
||||||
"/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html",
|
"/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html",
|
||||||
|
@ -407628,6 +407657,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"resource-timing/test_resource_timing.https.html": [
|
||||||
|
[
|
||||||
|
"/resource-timing/test_resource_timing.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"screen-capture/getdisplaymedia.https.html": [
|
"screen-capture/getdisplaymedia.https.html": [
|
||||||
[
|
[
|
||||||
"/screen-capture/getdisplaymedia.https.html",
|
"/screen-capture/getdisplaymedia.https.html",
|
||||||
|
@ -445899,6 +445934,10 @@
|
||||||
"a1697c60087c2426338a467604c3542ca3d01c4a",
|
"a1697c60087c2426338a467604c3542ca3d01c4a",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"2dcontext/context-attributes/getContextAttributes.html": [
|
||||||
|
"cff02ea06f6e6d50647ea7f7992cbcb89dd878a0",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html": [
|
"2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html": [
|
||||||
"b4fd347b9bf3ef246940379f4c86a1a3539f350d",
|
"b4fd347b9bf3ef246940379f4c86a1a3539f350d",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -456336,7 +456375,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"clipboard-apis/async-navigator-clipboard-basics.https.html": [
|
"clipboard-apis/async-navigator-clipboard-basics.https.html": [
|
||||||
"8d7cf99ed202349973dd173ff02873f5ef9157eb",
|
"11ed88c3fa2172c2ca0e635cb7f263f99388ca3a",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"clipboard-apis/async-write-dttext-read-dttext-manual.https.html": [
|
"clipboard-apis/async-write-dttext-read-dttext-manual.https.html": [
|
||||||
|
@ -560207,6 +560246,10 @@
|
||||||
"00ef5a5974423967dadf26a594539ab2eb65526c",
|
"00ef5a5974423967dadf26a594539ab2eb65526c",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html": [
|
||||||
|
"085d94996f1142d11f9f9c6076e6d9afc025c39c",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
"css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [
|
"css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [
|
||||||
"9441b0a439e1bbdcd3954af439a49ac162a513a1",
|
"9441b0a439e1bbdcd3954af439a49ac162a513a1",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -561163,6 +561206,10 @@
|
||||||
"1f325f37a2cd0bc08603ed3b3fd2730e4084203a",
|
"1f325f37a2cd0bc08603ed3b3fd2730e4084203a",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-grid/reference/grid-auto-repeat-multiple-values-001-ref.html": [
|
||||||
|
"0b8ef6d39bf6f01d994f6025f34c0136cc2908cf",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"css/css-grid/reference/grid-different-gutters-ref.html": [
|
"css/css-grid/reference/grid-different-gutters-ref.html": [
|
||||||
"57d27ff3aaea88eaeeed6f34f8ac49623b409fd2",
|
"57d27ff3aaea88eaeeed6f34f8ac49623b409fd2",
|
||||||
"support"
|
"support"
|
||||||
|
@ -648639,6 +648686,10 @@
|
||||||
"4564d264c4e2c542b25740e92709c9e7c0a14a1d",
|
"4564d264c4e2c542b25740e92709c9e7c0a14a1d",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"payment-request/billing-address-changed-manual.https.html": [
|
||||||
|
"cb9acf6eb6a20df5ddd03ef734796cefb6195467",
|
||||||
|
"manual"
|
||||||
|
],
|
||||||
"payment-request/change-shipping-option-manual.https.html": [
|
"payment-request/change-shipping-option-manual.https.html": [
|
||||||
"a33365bac73ed51b6873215d0f54d79a73422163",
|
"a33365bac73ed51b6873215d0f54d79a73422163",
|
||||||
"manual"
|
"manual"
|
||||||
|
@ -659771,8 +659822,12 @@
|
||||||
"f4e851abb203aca49194aef51646be673507078f",
|
"f4e851abb203aca49194aef51646be673507078f",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"resource-timing/test_resource_timing.https.html": [
|
||||||
|
"f4e851abb203aca49194aef51646be673507078f",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"resource-timing/test_resource_timing.js": [
|
"resource-timing/test_resource_timing.js": [
|
||||||
"8e729e013567a123f9c4a71ab7ea30435b7e2b47",
|
"598a727bf88e7f47556d509f6929a86b64b0506c",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"resources/.gitignore": [
|
"resources/.gitignore": [
|
||||||
|
@ -674800,7 +674855,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wpt/run.py": [
|
"tools/wpt/run.py": [
|
||||||
"a6b61e42c0b09fdf498d9ab4ed050f5abca24bf9",
|
"44cf3137d41338a7e57e29ae998859b4bc42a82b",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wpt/testfiles.py": [
|
"tools/wpt/testfiles.py": [
|
||||||
|
@ -675288,7 +675343,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/testloader.py": [
|
"tools/wptrunner/wptrunner/testloader.py": [
|
||||||
"f8849ebe75e6c5a2370ad45bc8fd9d5d43750277",
|
"aa23cfb5e9bdf5fb8de7ae78b2774d704130eada",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/testrunner.py": [
|
"tools/wptrunner/wptrunner/testrunner.py": [
|
||||||
|
@ -675376,7 +675431,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptcommandline.py": [
|
"tools/wptrunner/wptrunner/wptcommandline.py": [
|
||||||
"08810fcc0272d6cf3096c5fc111014fdae85c9e6",
|
"8443a01c7dea9d8839f9659e194614bcbf4caedb",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptlogging.py": [
|
"tools/wptrunner/wptrunner/wptlogging.py": [
|
||||||
|
@ -675436,7 +675491,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptrunner.py": [
|
"tools/wptrunner/wptrunner/wptrunner.py": [
|
||||||
"f5780daacd7f4d0dfc1902c98ad387adcebf857b",
|
"ec9a3fe838e14f20cc2bb0012c4a8e294353382c",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wpttest.py": [
|
"tools/wptrunner/wptrunner/wpttest.py": [
|
||||||
|
@ -675900,7 +675955,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicy-createXXX.tentative.html": [
|
"trusted-types/TrustedTypePolicy-createXXX.tentative.html": [
|
||||||
"6a0151ad9bcf7d02b6a98532ba53db509e086f83",
|
"475a264790482aedf714958f63a4d47d69661941",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicy-exposed.tentative.html": [
|
"trusted-types/TrustedTypePolicy-exposed.tentative.html": [
|
||||||
|
@ -675912,7 +675967,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
||||||
"a162d84cd820051d6c5868c35b58cd347b0026e5",
|
"37e245ee27aa5828bd97568d9390d9cbfbb6f968",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html": [
|
||||||
|
@ -675984,7 +676039,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html": [
|
"trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html": [
|
||||||
"b24ab69c0671dd3e8551f289e1cb67e455e1937c",
|
"c243757887a83611d28c61c1c1ce45a0fda925b2",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
|
"trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
|
||||||
|
@ -675992,7 +676047,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html": [
|
"trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html": [
|
||||||
"0eef00bd7772b50bd6d774425cbe688eacf0183f",
|
"4a5c2cc8d62e22888b463b724bab255500943af5",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Location-assign.tentative.html": [
|
"trusted-types/block-string-assignment-to-Location-assign.tentative.html": [
|
||||||
|
@ -681716,7 +681771,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
|
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
|
||||||
"182abea403ed7bee6568aac402cbb6a8caac6159",
|
"464e16d736a02085e312350597c5ebe492de3c1c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"webrtc/RTCPeerConnection-track-stats.https.html": [
|
"webrtc/RTCPeerConnection-track-stats.https.html": [
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
type: testharness
|
type: testharness
|
||||||
|
|
||||||
[single-byte-decoder.html?document]
|
[single-byte-decoder.html?document]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)]
|
[ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
|
|
||||||
[single-byte-decoder.html?XMLHttpRequest]
|
[single-byte-decoder.html?XMLHttpRequest]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
|
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[report.tentative.https.sub.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[traverse_the_history_3.html]
|
[traverse_the_history_2.html]
|
||||||
[Multiple history traversals, last would be aborted]
|
[Multiple history traversals, last would be aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_4.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -13,3 +13,21 @@
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[img (srcset 1 cand) valid image, resize to wide]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[picture: same URL in source (max-width:500px) and img, resize to wide]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[img (srcset 1 cand) valid image, resize to narrow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[picture: source (max-width:500px) valid image, img broken image, resize to wide]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[picture: same URL in source (max-width:500px) and img, resize to narrow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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 @@
|
||||||
|
[iframe_005.html]
|
||||||
|
[document.write external script into iframe write back into parent]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[aborted-parser.window.html]
|
||||||
|
[document.open() after parser is aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[promise-rejection-events.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[rejectionhandled is dispatched from a queued task, and not immediately]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
|
@ -12,6 +12,3 @@
|
||||||
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Verifies the resolution of performance.now() is at least 5 microseconds.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
[test_resource_timing.https.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (script)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct protocol attribute (iframe)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct name, initiatorType, startTime, and duration (iframe)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct order of timing attributes (iframe)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct order of timing attributes (xmlhttprequest)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (xmlhttprequest)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct order of timing attributes (link)]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[PerformanceEntry has correct network transfer attributes (link)]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (link)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (iframe)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct protocol attribute (link)]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[PerformanceEntry has correct protocol attribute (img)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct network transfer attributes (iframe)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct name, initiatorType, startTime, and duration (xmlhttprequest)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct network transfer attributes (img)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct network transfer attributes (script)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct protocol attribute (xmlhttprequest)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (img)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct order of timing attributes (script)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct name, initiatorType, startTime, and duration (script)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct network transfer attributes (xmlhttprequest)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct order of timing attributes (img)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct protocol attribute (script)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct name, initiatorType, startTime, and duration (img)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[PerformanceEntry has correct name, initiatorType, startTime, and duration (link)]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[transition_calc_implicit.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -0,0 +1,34 @@
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var testScenarios = [
|
||||||
|
{testDescription: "Test default context creation attributes",
|
||||||
|
canvasContextAttributes: {},
|
||||||
|
expectedContextAttributes: {alpha : true}},
|
||||||
|
{testDescription: "Test context creation attributes alpha: true",
|
||||||
|
canvasContextAttributes: {alpha: true},
|
||||||
|
expectedContextAttributes: {alpha : true}},
|
||||||
|
{testDescription: "Test context creation attributes alpha: false",
|
||||||
|
canvasContextAttributes: {alpha: false},
|
||||||
|
expectedContextAttributes: {alpha : false}},
|
||||||
|
];
|
||||||
|
|
||||||
|
function runTestScenario(testScenario) {
|
||||||
|
var t = test(function() {
|
||||||
|
var canvas = document. createElement('canvas');
|
||||||
|
var ctx = canvas.getContext('2d', testScenario.canvasContextAttributes);
|
||||||
|
var contextAttributes = ctx.getContextAttributes();
|
||||||
|
assert_equals(contextAttributes.alpha,
|
||||||
|
testScenario.expectedContextAttributes.alpha);
|
||||||
|
}, testScenario.testDescription);
|
||||||
|
}
|
||||||
|
|
||||||
|
function runAllTests() {
|
||||||
|
for (var i = 0; i < testScenarios.length; i++)
|
||||||
|
runTestScenario(testScenarios[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
runAllTests();
|
||||||
|
</script>
|
|
@ -13,57 +13,53 @@ test(() => {
|
||||||
|
|
||||||
/* clipboard.write() */
|
/* clipboard.write() */
|
||||||
|
|
||||||
promise_test(() => {
|
promise_test(async () => {
|
||||||
const dt = new DataTransfer();
|
const dt = new DataTransfer();
|
||||||
dt.items.add("Howdy", "text/plain");
|
dt.items.add("Howdy", "text/plain");
|
||||||
return navigator.clipboard.write(dt);
|
await navigator.clipboard.write(dt);
|
||||||
}, "navigator.clipboard.write(DataTransfer) succeeds");
|
}, "navigator.clipboard.write(DataTransfer) succeeds");
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
return promise_rejects(t, new TypeError(),
|
await promise_rejects(t, new TypeError(),
|
||||||
navigator.clipboard.write());
|
navigator.clipboard.write());
|
||||||
}, "navigator.clipboard.write() fails (expect DataTransfer)");
|
}, "navigator.clipboard.write() fails (expect DataTransfer)");
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
return promise_rejects(t, new TypeError(),
|
await promise_rejects(t, new TypeError(),
|
||||||
navigator.clipboard.write(null));
|
navigator.clipboard.write(null));
|
||||||
}, "navigator.clipboard.write(null) fails (expect DataTransfer)");
|
}, "navigator.clipboard.write(null) fails (expect DataTransfer)");
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
return promise_rejects(t, new TypeError(),
|
await promise_rejects(t, new TypeError(),
|
||||||
navigator.clipboard.write("Bad string"));
|
navigator.clipboard.write("Bad string"));
|
||||||
}, "navigator.clipboard.write(DOMString) fails (expect DataTransfer)");
|
}, "navigator.clipboard.write(DOMString) fails (expect DataTransfer)");
|
||||||
|
|
||||||
|
|
||||||
/* clipboard.writeText() */
|
/* clipboard.writeText() */
|
||||||
|
|
||||||
promise_test(() => {
|
promise_test(async () => {
|
||||||
return navigator.clipboard.writeText("New clipboard text");
|
await navigator.clipboard.writeText("New clipboard text");
|
||||||
}, "navigator.clipboard.writeText(DOMString) succeeds");
|
}, "navigator.clipboard.writeText(DOMString) succeeds");
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
return promise_rejects(t, new TypeError(),
|
await promise_rejects(t, new TypeError(),
|
||||||
navigator.clipboard.writeText());
|
navigator.clipboard.writeText());
|
||||||
}, "navigator.clipboard.writeText() fails (expect DOMString)");
|
}, "navigator.clipboard.writeText() fails (expect DOMString)");
|
||||||
|
|
||||||
|
|
||||||
/* clipboard.read() */
|
/* clipboard.read() */
|
||||||
|
|
||||||
promise_test(() => {
|
promise_test(async () => {
|
||||||
return navigator.clipboard.read()
|
const result = await navigator.clipboard.read();
|
||||||
.then(result => {
|
|
||||||
assert_true(result instanceof DataTransfer);
|
assert_true(result instanceof DataTransfer);
|
||||||
});
|
|
||||||
}, "navigator.clipboard.read() succeeds");
|
}, "navigator.clipboard.read() succeeds");
|
||||||
|
|
||||||
|
|
||||||
/* clipboard.readText() */
|
/* clipboard.readText() */
|
||||||
|
|
||||||
promise_test(() => {
|
promise_test(async () => {
|
||||||
return navigator.clipboard.readText()
|
const result = await navigator.clipboard.readText();
|
||||||
.then(result => {
|
|
||||||
assert_equals(typeof result, "string");
|
assert_equals(typeof result, "string");
|
||||||
});
|
|
||||||
}, "navigator.clipboard.readText() succeeds");
|
}, "navigator.clipboard.readText() succeeds");
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Auto Repaeat with Multiple Tracks and Gutters</title>
|
||||||
|
<link rel="author" title="Yu Shen" href="shenyu.tcv@gmail.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-grid-1/#repeat-notation">
|
||||||
|
<link rel="match" href="../reference/grid-auto-repeat-multiple-values-001-ref.html">
|
||||||
|
<style>
|
||||||
|
.grid-container {
|
||||||
|
display: grid;
|
||||||
|
border: solid thick;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.columns {
|
||||||
|
grid-template-columns: repeat(auto-fill, 50px 50px);
|
||||||
|
grid-auto-rows: 25px;
|
||||||
|
grid-column-gap: 100px;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rows {
|
||||||
|
grid-auto-flow: column;
|
||||||
|
grid-template-rows: repeat(auto-fill, 50px 50px);
|
||||||
|
grid-auto-columns: 25px;
|
||||||
|
grid-row-gap: 100px;
|
||||||
|
width: min-content;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container>div {
|
||||||
|
background: lime;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>The test passes if it has the same visual effect as reference.</p>
|
||||||
|
<div class="grid-container columns">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-container rows">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,56 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Auto Repaeat with Multiple Tracks and Gutters</title>
|
||||||
|
<link rel="author" title="Yu Shen" href="shenyu.tcv@gmail.com">
|
||||||
|
<style>
|
||||||
|
.match-container {
|
||||||
|
border: solid thick black;
|
||||||
|
position: relative;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
width: min-content;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
background: lime;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-second {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-second {
|
||||||
|
position: absolute;
|
||||||
|
top: 150px;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>The test passes if it has the same visual effect as reference.</p>
|
||||||
|
<div class="match-container column">
|
||||||
|
<div class="item"></div>
|
||||||
|
<div class="item column-second"></div>
|
||||||
|
</div>
|
||||||
|
<div class="match-container row">
|
||||||
|
<div class="item"></div>
|
||||||
|
<div class="item row-second"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,106 @@
|
||||||
|
<!DOCTYPE html> <meta charset="utf-8" />
|
||||||
|
<title>Test for requesting billing address</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script>
|
||||||
|
setup({
|
||||||
|
explicit_done: true,
|
||||||
|
explicit_timeout: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const methods = [
|
||||||
|
{ supportedMethods: "basic-card" },
|
||||||
|
{ supportedMethods: "https://apple.com/apple-pay" },
|
||||||
|
];
|
||||||
|
|
||||||
|
const details = {
|
||||||
|
total: {
|
||||||
|
label: "label",
|
||||||
|
amount: { currency: "USD", value: "5.00" },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
test(() => {
|
||||||
|
assert_true(
|
||||||
|
"onpaymentmethodchange" in PaymentRequest.prototype,
|
||||||
|
"The paymentmethodchange is not supported"
|
||||||
|
);
|
||||||
|
}, "onpaymentmethodchange is in prototype");
|
||||||
|
|
||||||
|
function dontRequestBillingAddress() {
|
||||||
|
promise_test(async t => {
|
||||||
|
const request = new PaymentRequest(methods, details, {});
|
||||||
|
const showPromise = request.show();
|
||||||
|
|
||||||
|
// Let's check the method data from event.
|
||||||
|
const { methodDetails } = await new Promise(resolve =>
|
||||||
|
request.addEventListener("paymentmethodchange", resolve)
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_true("billingAddress" in methodDetails);
|
||||||
|
assert_equals(
|
||||||
|
methodDetails.billingAddress,
|
||||||
|
null,
|
||||||
|
"Expected methodDetails.billingAddress to be null"
|
||||||
|
);
|
||||||
|
await request.abort();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestBillingAddress() {
|
||||||
|
promise_test(async t => {
|
||||||
|
const request = new PaymentRequest(methods, details, {
|
||||||
|
requestBillingAddress: true,
|
||||||
|
});
|
||||||
|
const showPromise = request.show();
|
||||||
|
|
||||||
|
// Let's check the method data from event.
|
||||||
|
const { methodDetails } = await new Promise(resolve =>
|
||||||
|
request.addEventListener("paymentmethodchange", resolve)
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_true("billingAddress" in methodDetails);
|
||||||
|
|
||||||
|
const { billingAddress } = methodDetails;
|
||||||
|
assert_true(
|
||||||
|
billingAddress instanceof PaymentAddress,
|
||||||
|
"Expected instance of PaymentAddress"
|
||||||
|
);
|
||||||
|
await request.abort();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h2>Request billing address</h2>
|
||||||
|
<p>
|
||||||
|
Click on each button in sequence from top to bottom without refreshing the
|
||||||
|
page. Each button will bring up the Payment Request UI window.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
When the payment sheet is presented, select a payment method (e.g., a credit
|
||||||
|
card).
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<button onclick="dontRequestBillingAddress()">
|
||||||
|
When no billing address is requested,
|
||||||
|
`PaymentMethodChangeEvent.methodDetails.billingAddress` is null.
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button onclick="requestBillingAddress()">
|
||||||
|
When billing address is
|
||||||
|
requested,`PaymentMethodChangeEvent.methodDetails.billingAddress` is a
|
||||||
|
`PaymentAddress`.
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li><button onclick="done()">Done!</button></li>
|
||||||
|
</ol>
|
||||||
|
<small>
|
||||||
|
If you find a buggy test, please
|
||||||
|
<a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a> and
|
||||||
|
tag one of the
|
||||||
|
<a
|
||||||
|
href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/META.yml"
|
||||||
|
>suggested reviewers</a
|
||||||
|
>.
|
||||||
|
</small>
|
|
@ -0,0 +1,24 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>window.performance Resource Timing Entries exist</title>
|
||||||
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
|
||||||
|
<link rel="help" href="https://w3c.github.io/web-performance/specs/ResourceTiming/Overview.html"/>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="test_resource_timing.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Description</h1>
|
||||||
|
<p>
|
||||||
|
NOTE: Due to caching behavior in the browser, it is possible that when revisiting this page, some resources
|
||||||
|
may not have to be fetched from the network. As a result, the performance timeline will not contain entries
|
||||||
|
for these resources. This test will fail if any entries are missing to ensure that all resources are fetched
|
||||||
|
from the network and entries for these resources exist in the Performance Timeline. If revisiting this page,
|
||||||
|
please either perform a full reload of the page or clear the cache between visits.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="log"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -186,22 +186,21 @@ function resource_load(expected)
|
||||||
const entries = window.performance.getEntriesByName(expected.name);
|
const entries = window.performance.getEntriesByName(expected.name);
|
||||||
assert_equals(entries.length, 1, 'There should be a single matching entry');
|
assert_equals(entries.length, 1, 'There should be a single matching entry');
|
||||||
const actual = entries[0];
|
const actual = entries[0];
|
||||||
|
if (window.location.protocol == "http:") {
|
||||||
// Debugging bug 1263428
|
assert_equals(actual.secureConnectionStart, 0, 'secureConnectionStart should be 0 in http');
|
||||||
// Feel free to remove/overwrite this piece of code
|
} else {
|
||||||
if (actual.connectStart < actual.domainLookupEnd) {
|
assert_greater_than(actual.secureConnectionStart, 0, 'secureConnectionStart should not be 0 in https');
|
||||||
assert_true(false, "actual: "+JSON.stringify(actual));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_equals(actual.redirectStart, 0, 'redirectStart should be 0');
|
assert_equals(actual.redirectStart, 0, 'redirectStart should be 0');
|
||||||
assert_equals(actual.redirectEnd, 0, 'redirectEnd should be 0');
|
assert_equals(actual.redirectEnd, 0, 'redirectEnd should be 0');
|
||||||
assert_true(actual.secureConnectionStart == undefined ||
|
|
||||||
actual.secureConnectionStart == 0, 'secureConnectionStart should be 0 or undefined');
|
|
||||||
assert_equals(actual.fetchStart, actual.startTime, 'fetchStart is equal to startTime');
|
assert_equals(actual.fetchStart, actual.startTime, 'fetchStart is equal to startTime');
|
||||||
assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, 'domainLookupStart after fetchStart');
|
assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, 'domainLookupStart after fetchStart');
|
||||||
assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, 'domainLookupEnd after domainLookupStart');
|
assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, 'domainLookupEnd after domainLookupStart');
|
||||||
assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, 'connectStart after domainLookupEnd');
|
assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, 'connectStart after domainLookupEnd');
|
||||||
assert_greater_than_equal(actual.connectEnd, actual.connectStart, 'connectEnd after connectStart');
|
assert_greater_than_equal(actual.connectEnd, actual.connectStart, 'connectEnd after connectStart');
|
||||||
|
assert_true(actual.secureConnectionStart == 0 || actual.secureConnectionStart <= actual.requestStart,
|
||||||
|
"secureConnectionStart should be either 0 or smaller than/equals to requestStart")
|
||||||
assert_greater_than_equal(actual.requestStart, actual.connectEnd, 'requestStart after connectEnd');
|
assert_greater_than_equal(actual.requestStart, actual.connectEnd, 'requestStart after connectEnd');
|
||||||
assert_greater_than_equal(actual.responseStart, actual.requestStart, 'responseStart after requestStart');
|
assert_greater_than_equal(actual.responseStart, actual.requestStart, 'responseStart after requestStart');
|
||||||
assert_greater_than_equal(actual.responseEnd, actual.responseStart, 'responseEnd after responseStart');
|
assert_greater_than_equal(actual.responseEnd, actual.responseStart, 'responseEnd after responseStart');
|
||||||
|
|
|
@ -510,11 +510,9 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
|
||||||
files_changed, manifest_path=kwargs.get("manifest_path"), manifest_update=kwargs["manifest_update"])
|
files_changed, manifest_path=kwargs.get("manifest_path"), manifest_update=kwargs["manifest_update"])
|
||||||
test_list = tests_changed | tests_affected
|
test_list = tests_changed | tests_affected
|
||||||
logger.info("Identified %s affected tests" % len(test_list))
|
logger.info("Identified %s affected tests" % len(test_list))
|
||||||
if not test_list and not kwargs["test_list"]:
|
|
||||||
logger.info("Quitting because no tests were affected.")
|
|
||||||
exit()
|
|
||||||
test_list = [os.path.relpath(item, wpt_root) for item in test_list]
|
test_list = [os.path.relpath(item, wpt_root) for item in test_list]
|
||||||
kwargs["test_list"] += test_list
|
kwargs["test_list"] += test_list
|
||||||
|
kwargs["default_exclude"] = True
|
||||||
|
|
||||||
if install_browser and not kwargs["channel"]:
|
if install_browser and not kwargs["channel"]:
|
||||||
logger.info("--install-browser is given but --channel is not set, default to nightly channel")
|
logger.info("--install-browser is given but --channel is not set, default to nightly channel")
|
||||||
|
|
|
@ -338,15 +338,17 @@ class EqualTimeChunker(TestChunker):
|
||||||
|
|
||||||
|
|
||||||
class TestFilter(object):
|
class TestFilter(object):
|
||||||
def __init__(self, test_manifests, include=None, exclude=None, manifest_path=None):
|
def __init__(self, test_manifests, include=None, exclude=None, manifest_path=None, explicit=False):
|
||||||
if manifest_path is not None and include is None:
|
if manifest_path is None or include or explicit:
|
||||||
self.manifest = manifestinclude.get_manifest(manifest_path)
|
|
||||||
else:
|
|
||||||
self.manifest = manifestinclude.IncludeManifest.create()
|
self.manifest = manifestinclude.IncludeManifest.create()
|
||||||
self.manifest.set_defaults()
|
self.manifest.set_defaults()
|
||||||
|
else:
|
||||||
|
self.manifest = manifestinclude.get_manifest(manifest_path)
|
||||||
|
|
||||||
|
if include or explicit:
|
||||||
|
self.manifest.set("skip", "true")
|
||||||
|
|
||||||
if include:
|
if include:
|
||||||
self.manifest.set("skip", "true")
|
|
||||||
for item in include:
|
for item in include:
|
||||||
self.manifest.add_include(test_manifests, item)
|
self.manifest.add_include(test_manifests, item)
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,11 @@ scheme host and port.""")
|
||||||
test_selection_group.add_argument("--tag", action="append", dest="tags",
|
test_selection_group.add_argument("--tag", action="append", dest="tags",
|
||||||
help="Labels applied to tests to include in the run. "
|
help="Labels applied to tests to include in the run. "
|
||||||
"Labels starting dir: are equivalent to top-level directories.")
|
"Labels starting dir: are equivalent to top-level directories.")
|
||||||
|
test_selection_group.add_argument("--default-exclude", action="store_true",
|
||||||
|
default=False,
|
||||||
|
help="Only run the tests explicitly given in arguments. "
|
||||||
|
"No tests will run if the list is empty, and the "
|
||||||
|
"program will exit with status code 0.")
|
||||||
|
|
||||||
debugging_group = parser.add_argument_group("Debugging")
|
debugging_group = parser.add_argument_group("Debugging")
|
||||||
debugging_group.add_argument('--debugger', const="__default__", nargs="?",
|
debugging_group.add_argument('--debugger', const="__default__", nargs="?",
|
||||||
|
|
|
@ -59,11 +59,12 @@ def get_loader(test_paths, product, debug=None, run_info_extras=None, **kwargs):
|
||||||
manifest_filters = []
|
manifest_filters = []
|
||||||
meta_filters = []
|
meta_filters = []
|
||||||
|
|
||||||
if kwargs["include"] or kwargs["exclude"] or kwargs["include_manifest"]:
|
if kwargs["include"] or kwargs["exclude"] or kwargs["include_manifest"] or kwargs["default_exclude"]:
|
||||||
manifest_filters.append(testloader.TestFilter(include=kwargs["include"],
|
manifest_filters.append(testloader.TestFilter(include=kwargs["include"],
|
||||||
exclude=kwargs["exclude"],
|
exclude=kwargs["exclude"],
|
||||||
manifest_path=kwargs["include_manifest"],
|
manifest_path=kwargs["include_manifest"],
|
||||||
test_manifests=test_manifests))
|
test_manifests=test_manifests,
|
||||||
|
explicit=kwargs["default_exclude"]))
|
||||||
if kwargs["tags"]:
|
if kwargs["tags"]:
|
||||||
meta_filters.append(testloader.TagFilter(tags=kwargs["tags"]))
|
meta_filters.append(testloader.TagFilter(tags=kwargs["tags"]))
|
||||||
|
|
||||||
|
@ -169,7 +170,7 @@ def run_tests(config, test_paths, product, **kwargs):
|
||||||
test_total = 0
|
test_total = 0
|
||||||
unexpected_total = 0
|
unexpected_total = 0
|
||||||
|
|
||||||
if len(test_loader.test_ids) == 0:
|
if len(test_loader.test_ids) == 0 and kwargs["test_list"]:
|
||||||
logger.error("Unable to find any tests at the path(s):")
|
logger.error("Unable to find any tests at the path(s):")
|
||||||
for path in kwargs["test_list"]:
|
for path in kwargs["test_list"]:
|
||||||
logger.error(" %s" % path)
|
logger.error(" %s" % path)
|
||||||
|
@ -298,6 +299,10 @@ def run_tests(config, test_paths, product, **kwargs):
|
||||||
if test_total == 0:
|
if test_total == 0:
|
||||||
if skipped_tests > 0:
|
if skipped_tests > 0:
|
||||||
logger.warning("All requested tests were skipped")
|
logger.warning("All requested tests were skipped")
|
||||||
|
else:
|
||||||
|
if kwargs["default_exclude"]:
|
||||||
|
logger.info("No tests ran")
|
||||||
|
return True
|
||||||
else:
|
else:
|
||||||
logger.error("No tests ran")
|
logger.error("No tests ran")
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
assert_equals(el.title, INPUTS.URL);
|
assert_equals(el.title, INPUTS.URL);
|
||||||
|
|
||||||
el.title = policy.createURL(INPUTS.HTML);
|
el.title = policy.createURL(INPUTS.HTML);
|
||||||
assert_equals(el.title, "");
|
assert_equals(el.title, INPUTS.HTML);
|
||||||
}, "Attributes without type constraints will work as before.");
|
}, "Attributes without type constraints will work as before.");
|
||||||
|
|
||||||
test(t => {
|
test(t => {
|
||||||
|
@ -71,14 +71,14 @@
|
||||||
|
|
||||||
const urlTestCases = [
|
const urlTestCases = [
|
||||||
[ s => s, INPUTS.SCRIPTURL ],
|
[ s => s, INPUTS.SCRIPTURL ],
|
||||||
[ s => null, "" ],
|
[ s => null, "null" ],
|
||||||
[ s => s + "#duck", INPUTS.SCRIPTURL + "#duck" ],
|
[ s => s + "#duck", INPUTS.SCRIPTURL + "#duck" ],
|
||||||
[ s => { throw new Error() }, new Error() ],
|
[ s => { throw new Error() }, new Error() ],
|
||||||
[ s => s + "#" + aGlobalVarForSideEffectTesting,
|
[ s => s + "#" + aGlobalVarForSideEffectTesting,
|
||||||
INPUTS.SCRIPTURL + "#global" ],
|
INPUTS.SCRIPTURL + "#global" ],
|
||||||
[ anotherGlobalFunction.bind(aGlobalObject), INPUTS.SCRIPTURL + "#well," ],
|
[ anotherGlobalFunction.bind(aGlobalObject), INPUTS.SCRIPTURL + "#well," ],
|
||||||
[ s => anotherGlobalFunction(s),
|
[ s => anotherGlobalFunction(s),
|
||||||
INPUTS.SCRIPTURL + "#a%20global%20var%20named%20foo" ],
|
INPUTS.SCRIPTURL + "#a global var named foo" ],
|
||||||
];
|
];
|
||||||
|
|
||||||
function policyBuilder(trustedMethodName, trustedType, defaultArg) {
|
function policyBuilder(trustedMethodName, trustedType, defaultArg) {
|
||||||
|
|
|
@ -165,7 +165,7 @@
|
||||||
}, "script_url = identity function");
|
}, "script_url = identity function");
|
||||||
|
|
||||||
test(t => {
|
test(t => {
|
||||||
createScriptURLTest('TestPolicyScriptURL2', { createScriptURL: s => null }, "", t);
|
createScriptURLTest('TestPolicyScriptURL2', { createScriptURL: s => null }, "null", t);
|
||||||
}, "script_url = null");
|
}, "script_url = null");
|
||||||
|
|
||||||
var scriptURLstr = '#duck';
|
var scriptURLstr = '#duck';
|
||||||
|
@ -240,7 +240,7 @@
|
||||||
}, "url = identity function");
|
}, "url = identity function");
|
||||||
|
|
||||||
test(t => {
|
test(t => {
|
||||||
createURLTest('TestPolicyURL2', { createURL: s => null }, "", t);
|
createURLTest('TestPolicyURL2', { createURL: s => null }, "null", t);
|
||||||
}, "url = null");
|
}, "url = null");
|
||||||
|
|
||||||
var URLstr = '#x';
|
var URLstr = '#x';
|
||||||
|
|
|
@ -66,20 +66,14 @@
|
||||||
URLTestCases.forEach(c => {
|
URLTestCases.forEach(c => {
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.URL, RESULTS.URL);
|
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.URL, RESULTS.URL);
|
||||||
|
assert_element_accepts_trusted_type(c[0], c[1], null, window.location.toString().replace(/[^\/]*$/, "null"));
|
||||||
// Properties that actually parse the URLs will resort to the base URL
|
|
||||||
// when given a null or empty URL.
|
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], null, "" + window.location);
|
|
||||||
}, c[0] + "." + c[1] + " accepts string and null after default policy was created.");
|
}, c[0] + "." + c[1] + " accepts string and null after default policy was created.");
|
||||||
});
|
});
|
||||||
|
|
||||||
scriptURLTestCases.forEach(c => {
|
scriptURLTestCases.forEach(c => {
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.SCRIPTURL, RESULTS.SCRIPTURL);
|
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.SCRIPTURL, RESULTS.SCRIPTURL);
|
||||||
|
assert_element_accepts_trusted_type(c[0], c[1], null, window.location.toString().replace(/[^\/]*$/, "null"));
|
||||||
// Properties that actually parse the URLs will resort to the base URL
|
|
||||||
// when given a null or empty URL.
|
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], null, "" + window.location);
|
|
||||||
}, c[0] + "." + c[1] + " accepts string and null after default policy was created.");
|
}, c[0] + "." + c[1] + " accepts string and null after default policy was created.");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -71,14 +71,14 @@
|
||||||
URLTestCases.forEach(c => {
|
URLTestCases.forEach(c => {
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.URL, RESULTS.URL);
|
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.URL, RESULTS.URL);
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], null, "" + window.location);
|
assert_element_accepts_trusted_type(c[0], c[1], null, window.location.toString().replace(/[^\/]*$/, "null"));
|
||||||
}, c[0] + "." + c[1] + " accepts string and null after default policy was created");
|
}, c[0] + "." + c[1] + " accepts string and null after default policy was created");
|
||||||
});
|
});
|
||||||
|
|
||||||
scriptURLTestCases.forEach(c => {
|
scriptURLTestCases.forEach(c => {
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.SCRIPTURL, RESULTS.SCRIPTURL);
|
assert_element_accepts_trusted_type(c[0], c[1], INPUTS.SCRIPTURL, RESULTS.SCRIPTURL);
|
||||||
assert_element_accepts_trusted_type(c[0], c[1], null, "" + window.location);
|
assert_element_accepts_trusted_type(c[0], c[1], null, window.location.toString().replace(/[^\/]*$/, "null"));
|
||||||
}, c[0] + "." + c[1] + " accepts string and null after default policy was created");
|
}, c[0] + "." + c[1] + " accepts string and null after default policy was created");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -96,10 +96,9 @@
|
||||||
await pc.setLocalDescription(offer);
|
await pc.setLocalDescription(offer);
|
||||||
assert_state('have-local-offer');
|
assert_state('have-local-offer');
|
||||||
await pc2.setRemoteDescription(offer);
|
await pc2.setRemoteDescription(offer);
|
||||||
await pc2.setLocalDescription(await pc2.createAnswer());
|
await exchangeAnswer(pc, pc2);
|
||||||
await pc.setRemoteDescription(pc2.localDescription);
|
|
||||||
assert_state('stable');
|
assert_state('stable');
|
||||||
await pc.setRemoteDescription(await pc2.createOffer());
|
await exchangeOffer(pc2, pc);
|
||||||
assert_state('have-remote-offer');
|
assert_state('have-remote-offer');
|
||||||
}, 'Negotiation should fire signalingsstate events');
|
}, 'Negotiation should fire signalingsstate events');
|
||||||
|
|
||||||
|
@ -112,9 +111,11 @@
|
||||||
t.add_cleanup(() => pc2.close());
|
t.add_cleanup(() => pc2.close());
|
||||||
|
|
||||||
const offer1 = await generateAudioReceiveOnlyOffer(pc2);
|
const offer1 = await generateAudioReceiveOnlyOffer(pc2);
|
||||||
|
await pc2.setLocalDescription(offer1);
|
||||||
await pc.setRemoteDescription(offer1);
|
await pc.setRemoteDescription(offer1);
|
||||||
await pc.setLocalDescription(await pc.createAnswer());
|
await exchangeAnswer(pc2, pc);
|
||||||
const offer2 = await generateVideoReceiveOnlyOffer(pc2);
|
const offer2 = await generateVideoReceiveOnlyOffer(pc2);
|
||||||
|
await pc2.setLocalDescription(offer2);
|
||||||
await pc.setRemoteDescription(offer2);
|
await pc.setRemoteDescription(offer2);
|
||||||
assert_session_desc_not_similar(offer1, offer2);
|
assert_session_desc_not_similar(offer1, offer2);
|
||||||
assert_session_desc_similar(pc.remoteDescription, offer2);
|
assert_session_desc_similar(pc.remoteDescription, offer2);
|
||||||
|
@ -134,7 +135,7 @@
|
||||||
const answer = await pc2.createAnswer();
|
const answer = await pc2.createAnswer();
|
||||||
await pc2.setLocalDescription(answer);
|
await pc2.setLocalDescription(answer);
|
||||||
await pc.setRemoteDescription(answer);
|
await pc.setRemoteDescription(answer);
|
||||||
await pc.setRemoteDescription(await pc2.createOffer());
|
await exchangeOffer(pc2, pc);
|
||||||
assert_equals(pc.remoteDescription.sdp, pc.pendingRemoteDescription.sdp);
|
assert_equals(pc.remoteDescription.sdp, pc.pendingRemoteDescription.sdp);
|
||||||
assert_session_desc_similar(pc.remoteDescription, offer);
|
assert_session_desc_similar(pc.remoteDescription, offer);
|
||||||
assert_session_desc_similar(pc.currentRemoteDescription, answer);
|
assert_session_desc_similar(pc.currentRemoteDescription, answer);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue