mirror of
https://github.com/servo/servo.git
synced 2025-06-28 11:03:39 +01:00
Update web-platform-tests to revision 5c34fc630374b9eb0559139a486ff1a2e4247c4f
This commit is contained in:
parent
b0f0bd8282
commit
1b463fce85
222 changed files with 5045 additions and 641 deletions
|
@ -0,0 +1,4 @@
|
||||||
|
[buffer-is-detached.https.window.html]
|
||||||
|
[writeValueWithResponse() fails when passed a detached buffer]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[gen-characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[service-is-removed.https.window.html]
|
||||||
|
[Service gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[write-succeeds.https.window.html]
|
||||||
|
[A regular write request to a writable characteristic should succeed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[buffer-is-detached.https.window.html]
|
||||||
|
[writeValueWithoutResponse() fails when passed a detached buffer]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[gen-characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[service-is-removed.https.window.html]
|
||||||
|
[Service gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[write-succeeds.https.window.html]
|
||||||
|
[A regular write request to a writable characteristic should succeed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-003.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[mix-blend-mode-animation.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -2,3 +2,6 @@
|
||||||
[Hit test intersecting scaled box]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Hit test within unscaled box]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[appearance-transition.tentative.html]
|
||||||
|
expected: FAIL
|
|
@ -2,3 +2,6 @@
|
||||||
[listeners are called when <iframe> is resized]
|
[listeners are called when <iframe> is resized]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[listeners are called correct number of times]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[elementFromPoint-001.html]
|
||||||
|
[CSSOM View - 5 - extensions to the Document interface]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementsFromPoint-invalid-cases.html]
|
|
||||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -3,12 +3,6 @@
|
||||||
[Legacy listener of animationend]
|
[Legacy listener of animationend]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Listener of animationstart]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[Listener of animationend]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Legacy listener of transitionend]
|
[Legacy listener of transitionend]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[webkit-transition-end-event.html]
|
[webkit-transition-end-event.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
|
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -13,14 +12,11 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
|
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[ontransitionend and onwebkittransitionend are not aliases]
|
[ontransitionend and onwebkittransitionend are not aliases]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[webkitTransitionEnd event listener is case sensitive]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[webkitTransitionEnd event listener should trigger for an animation]
|
[webkitTransitionEnd event listener should trigger for an animation]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -318,18 +318,15 @@
|
||||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,3 +56,6 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
[X-Content-Type-Options%3A%20'NosniFF']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[creating_browsing_context_test_01.html]
|
||||||
|
[first argument: absolute url]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[iframe_sandbox_popups_escaping-1.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-3.html]
|
[iframe_sandbox_popups_escaping-3.html]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-1.html]
|
[iframe_sandbox_popups_nonescaping-1.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,3 @@
|
||||||
[Check that rel=noopener with target=_top does a normal load]
|
[Check that rel=noopener with target=_top does a normal load]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Check that rel=noopener with target=_self does a normal load]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -3,3 +3,6 @@
|
||||||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,4 @@
|
||||||
|
[buffer-is-detached.https.window.html]
|
||||||
|
[writeValueWithResponse() fails when passed a detached buffer]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[gen-characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[service-is-removed.https.window.html]
|
||||||
|
[Service gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[write-succeeds.https.window.html]
|
||||||
|
[A regular write request to a writable characteristic should succeed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[buffer-is-detached.https.window.html]
|
||||||
|
[writeValueWithoutResponse() fails when passed a detached buffer]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[gen-characteristic-is-removed.https.window.html]
|
||||||
|
[Characteristic gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[service-is-removed.https.window.html]
|
||||||
|
[Service gets removed. Reject with InvalidStateError.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[write-succeeds.https.window.html]
|
||||||
|
[A regular write request to a writable characteristic should succeed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-003.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[mix-blend-mode-animation.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -2,3 +2,6 @@
|
||||||
[Hit test intersecting scaled box]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Hit test within unscaled box]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[appearance-transition.tentative.html]
|
||||||
|
expected: FAIL
|
|
@ -2,3 +2,6 @@
|
||||||
[listeners are called when <iframe> is resized]
|
[listeners are called when <iframe> is resized]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[listeners are called correct number of times]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[elementFromPoint-001.html]
|
||||||
|
[CSSOM View - 5 - extensions to the Document interface]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementsFromPoint-invalid-cases.html]
|
|
||||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -4,9 +4,6 @@
|
||||||
[Legacy listener of transitionend]
|
[Legacy listener of transitionend]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Listener of animationend]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Legacy listener of animationend]
|
[Legacy listener of animationend]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
@ -16,9 +13,6 @@
|
||||||
[Legacy listener of animationiteration]
|
[Legacy listener of animationiteration]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Listener of animationstart]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[Legacy listener of animationstart]
|
[Legacy listener of animationstart]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[webkit-transition-end-event.html]
|
[webkit-transition-end-event.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
|
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -13,7 +12,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
|
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[ontransitionend and onwebkittransitionend are not aliases]
|
[ontransitionend and onwebkittransitionend are not aliases]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -27,6 +26,3 @@
|
||||||
[onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists]
|
[onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[webkitTransitionEnd event listener is case sensitive]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
|
|
|
@ -318,18 +318,15 @@
|
||||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,3 +56,6 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
[X-Content-Type-Options%3A%20'NosniFF']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[creating_browsing_context_test_01.html]
|
||||||
|
[first argument: absolute url]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[iframe_sandbox_popups_escaping-1.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_escaping-3.html]
|
[iframe_sandbox_popups_escaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-1.html]
|
[iframe_sandbox_popups_nonescaping-1.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,3 @@
|
||||||
[Check that rel=noopener with target=_top does a normal load]
|
[Check that rel=noopener with target=_top does a normal load]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Check that rel=noopener with target=_self does a normal load]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -4,3 +4,6 @@
|
||||||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -10,22 +10,29 @@ bluetooth_test(async () => {
|
||||||
const {characteristic, fake_characteristic} =
|
const {characteristic, fake_characteristic} =
|
||||||
await getMeasurementIntervalCharacteristic();
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
|
||||||
let last_value = await fake_characteristic.getLastWrittenValue();
|
let lastValue, lastWriteType;
|
||||||
assert_equals(last_value, null);
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_equals(lastValue, null);
|
||||||
|
assert_equals(lastWriteType, 'none');
|
||||||
|
|
||||||
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
const typed_array = Uint8Array.of(1, 2);
|
const typed_array = Uint8Array.of(1, 2);
|
||||||
await characteristic.writeValue(typed_array);
|
await characteristic.writeValue(typed_array);
|
||||||
last_value = await fake_characteristic.getLastWrittenValue();
|
({lastValue, lastWriteType} =
|
||||||
assert_array_equals(last_value, [1, 2]);
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [1, 2]);
|
||||||
|
assert_equals(lastWriteType, 'default-deprecated');
|
||||||
|
|
||||||
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
const array_buffer = Uint8Array.of(3, 4).buffer;
|
const array_buffer = Uint8Array.of(3, 4).buffer;
|
||||||
await characteristic.writeValue(array_buffer);
|
await characteristic.writeValue(array_buffer);
|
||||||
last_value = await fake_characteristic.getLastWrittenValue();
|
({lastValue, lastWriteType} =
|
||||||
assert_array_equals(last_value, [3, 4]);
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [3, 4]);
|
||||||
|
assert_equals(lastWriteType, 'default-deprecated');
|
||||||
|
|
||||||
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
|
@ -33,6 +40,8 @@ bluetooth_test(async () => {
|
||||||
data_view.setUint8(0, 5);
|
data_view.setUint8(0, 5);
|
||||||
data_view.setUint8(1, 6);
|
data_view.setUint8(1, 6);
|
||||||
await characteristic.writeValue(data_view);
|
await characteristic.writeValue(data_view);
|
||||||
last_value = await fake_characteristic.getLastWrittenValue();
|
({lastValue, lastWriteType} =
|
||||||
assert_array_equals(last_value, [5, 6]);
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [5, 6]);
|
||||||
|
assert_equals(lastWriteType, 'default-deprecated');
|
||||||
}, test_desc);
|
}, test_desc);
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc =
|
||||||
|
'writeValueWithResponse() fails when passed a detached buffer';
|
||||||
|
|
||||||
|
function detachBuffer(buffer) {
|
||||||
|
window.postMessage('', '*', [buffer]);
|
||||||
|
}
|
||||||
|
|
||||||
|
bluetooth_test(async (t) => {
|
||||||
|
const {characteristic} = await getMeasurementIntervalCharacteristic();
|
||||||
|
|
||||||
|
const typed_array = Uint8Array.of(1, 2);
|
||||||
|
detachBuffer(typed_array.buffer);
|
||||||
|
await promise_rejects_dom(
|
||||||
|
t, 'InvalidStateError',
|
||||||
|
characteristic.writeValueWithResponse(typed_array));
|
||||||
|
|
||||||
|
const array_buffer = Uint8Array.of(3, 4).buffer;
|
||||||
|
detachBuffer(array_buffer);
|
||||||
|
await promise_rejects_dom(
|
||||||
|
t, 'InvalidStateError',
|
||||||
|
characteristic.writeValueWithResponse(array_buffer));
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,17 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected = new DOMException(
|
||||||
|
'GATT Characteristic no longer exists.', 'InvalidStateError');
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_characteristic} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
await fake_characteristic.remove();
|
||||||
|
await assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithResponse(new ArrayBuffer(1 /* length */)),
|
||||||
|
expected, 'Characteristic got removed.');
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,27 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
// Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected = new DOMException(
|
||||||
|
'GATT Characteristic no longer exists.', 'InvalidStateError');
|
||||||
|
let fake_peripheral, characteristic, fake_characteristic;
|
||||||
|
|
||||||
|
bluetooth_test(
|
||||||
|
() =>
|
||||||
|
getMeasurementIntervalCharacteristic()
|
||||||
|
.then(
|
||||||
|
_ => (
|
||||||
|
{fake_peripheral, characteristic, fake_characteristic} = _))
|
||||||
|
.then(() => characteristic.getDescriptor(user_description.name))
|
||||||
|
.then(
|
||||||
|
() => null,
|
||||||
|
(e) => assert_unreached('Caught error unexpectedly.', e))
|
||||||
|
.then(() => fake_characteristic.remove())
|
||||||
|
.then(() => fake_peripheral.simulateGATTServicesChanged())
|
||||||
|
.then(
|
||||||
|
() => assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithResponse(new Uint8Array(1)), expected)),
|
||||||
|
test_desc);
|
|
@ -0,0 +1,18 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected =
|
||||||
|
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_peripheral, fake_service} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
await fake_service.remove();
|
||||||
|
await fake_peripheral.simulateGATTServicesChanged();
|
||||||
|
await assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithResponse(new ArrayBuffer(1 /* length */)),
|
||||||
|
expected, 'Service got removed.');
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,47 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'A regular write request to a writable characteristic ' +
|
||||||
|
'should succeed.';
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_characteristic} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
|
||||||
|
let lastValue, lastWriteType;
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_equals(lastValue, null);
|
||||||
|
assert_equals(lastWriteType, 'none');
|
||||||
|
|
||||||
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
|
const typed_array = Uint8Array.of(1, 2);
|
||||||
|
await characteristic.writeValueWithResponse(typed_array);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [1, 2]);
|
||||||
|
assert_equals(lastWriteType, 'with-response');
|
||||||
|
|
||||||
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
|
const array_buffer = Uint8Array.of(3, 4).buffer;
|
||||||
|
await characteristic.writeValueWithResponse(array_buffer);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [3, 4]);
|
||||||
|
assert_equals(lastWriteType, 'with-response');
|
||||||
|
|
||||||
|
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
|
||||||
|
|
||||||
|
const data_view = new DataView(new ArrayBuffer(2));
|
||||||
|
data_view.setUint8(0, 5);
|
||||||
|
data_view.setUint8(1, 6);
|
||||||
|
await characteristic.writeValueWithResponse(data_view);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [5, 6]);
|
||||||
|
assert_equals(lastWriteType, 'with-response');
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,27 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc =
|
||||||
|
'writeValueWithoutResponse() fails when passed a detached buffer';
|
||||||
|
|
||||||
|
function detachBuffer(buffer) {
|
||||||
|
window.postMessage('', '*', [buffer]);
|
||||||
|
}
|
||||||
|
|
||||||
|
bluetooth_test(async (t) => {
|
||||||
|
const {characteristic} = await getMeasurementIntervalCharacteristic();
|
||||||
|
|
||||||
|
const typed_array = Uint8Array.of(1, 2);
|
||||||
|
detachBuffer(typed_array.buffer);
|
||||||
|
await promise_rejects_dom(
|
||||||
|
t, 'InvalidStateError',
|
||||||
|
characteristic.writeValueWithoutResponse(typed_array));
|
||||||
|
|
||||||
|
const array_buffer = Uint8Array.of(3, 4).buffer;
|
||||||
|
detachBuffer(array_buffer);
|
||||||
|
await promise_rejects_dom(
|
||||||
|
t, 'InvalidStateError',
|
||||||
|
characteristic.writeValueWithoutResponse(array_buffer));
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,17 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected = new DOMException(
|
||||||
|
'GATT Characteristic no longer exists.', 'InvalidStateError');
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_characteristic} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
await fake_characteristic.remove();
|
||||||
|
await assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithoutResponse(new ArrayBuffer(1 /* length */)),
|
||||||
|
expected, 'Characteristic got removed.');
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,27 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
// Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected = new DOMException(
|
||||||
|
'GATT Characteristic no longer exists.', 'InvalidStateError');
|
||||||
|
let fake_peripheral, characteristic, fake_characteristic;
|
||||||
|
|
||||||
|
bluetooth_test(
|
||||||
|
() =>
|
||||||
|
getMeasurementIntervalCharacteristic()
|
||||||
|
.then(
|
||||||
|
_ => (
|
||||||
|
{fake_peripheral, characteristic, fake_characteristic} = _))
|
||||||
|
.then(() => characteristic.getDescriptor(user_description.name))
|
||||||
|
.then(
|
||||||
|
() => null,
|
||||||
|
(e) => assert_unreached('Caught error unexpectedly.', e))
|
||||||
|
.then(() => fake_characteristic.remove())
|
||||||
|
.then(() => fake_peripheral.simulateGATTServicesChanged())
|
||||||
|
.then(
|
||||||
|
() => assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithoutResponse(new Uint8Array(1)), expected)),
|
||||||
|
test_desc);
|
|
@ -0,0 +1,18 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
|
||||||
|
const expected =
|
||||||
|
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_peripheral, fake_service} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
await fake_service.remove();
|
||||||
|
await fake_peripheral.simulateGATTServicesChanged();
|
||||||
|
await assert_promise_rejects_with_message(
|
||||||
|
characteristic.writeValueWithoutResponse(new ArrayBuffer(1 /* length */)),
|
||||||
|
expected, 'Service got removed.');
|
||||||
|
}, test_desc);
|
|
@ -0,0 +1,41 @@
|
||||||
|
// META: script=/resources/testdriver.js
|
||||||
|
// META: script=/resources/testdriver-vendor.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-test.js
|
||||||
|
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
|
||||||
|
'use strict';
|
||||||
|
const test_desc = 'A regular write request to a writable characteristic ' +
|
||||||
|
'should succeed.';
|
||||||
|
|
||||||
|
bluetooth_test(async () => {
|
||||||
|
const {characteristic, fake_characteristic} =
|
||||||
|
await getMeasurementIntervalCharacteristic();
|
||||||
|
|
||||||
|
let lastValue, lastWriteType;
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_equals(lastValue, null);
|
||||||
|
assert_equals(lastWriteType, 'none');
|
||||||
|
|
||||||
|
const typed_array = Uint8Array.of(1, 2);
|
||||||
|
await characteristic.writeValueWithoutResponse(typed_array);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [1, 2]);
|
||||||
|
assert_equals(lastWriteType, 'without-response');
|
||||||
|
|
||||||
|
const array_buffer = Uint8Array.of(3, 4).buffer;
|
||||||
|
await characteristic.writeValueWithoutResponse(array_buffer);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [3, 4]);
|
||||||
|
assert_equals(lastWriteType, 'without-response');
|
||||||
|
|
||||||
|
const data_view = new DataView(new ArrayBuffer(2));
|
||||||
|
data_view.setUint8(0, 5);
|
||||||
|
data_view.setUint8(1, 6);
|
||||||
|
await characteristic.writeValueWithoutResponse(data_view);
|
||||||
|
({lastValue, lastWriteType} =
|
||||||
|
await fake_characteristic.getLastWrittenValue());
|
||||||
|
assert_array_equals(lastValue, [5, 6]);
|
||||||
|
assert_equals(lastWriteType, 'without-response');
|
||||||
|
}, test_desc);
|
|
@ -17,6 +17,8 @@ bluetooth_test(() => getMeasurementIntervalCharacteristic()
|
||||||
getDescriptors()|
|
getDescriptors()|
|
||||||
readValue()|
|
readValue()|
|
||||||
writeValue(new Uint8Array(1))|
|
writeValue(new Uint8Array(1))|
|
||||||
|
writeValueWithResponse(new Uint8Array(1))|
|
||||||
|
writeValueWithoutResponse(new Uint8Array(1))|
|
||||||
startNotifications()
|
startNotifications()
|
||||||
]), expected)),
|
]), expected)),
|
||||||
test_desc);
|
test_desc);
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
var img = document.createElement('img');
|
var img = document.createElement('img');
|
||||||
img.onerror = t.step_func_done(_ => w.close());
|
img.onerror = t.step_func_done(_ => w.close());
|
||||||
img.onload = t.unreached_func();
|
img.onload = t.unreached_func();
|
||||||
w.document.body.appendChild(img);
|
|
||||||
img.src = "/images/red-16x16.png";
|
img.src = "/images/red-16x16.png";
|
||||||
|
w.document.body.appendChild(img);
|
||||||
}, "window.open() inherits policy.");
|
}, "window.open() inherits policy.");
|
||||||
|
|
||||||
async_test(t => {
|
async_test(t => {
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
|
|
||||||
import sys
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
def main(request, response):
|
def main(request, response):
|
||||||
"""
|
"""
|
||||||
Returns cookie name and path from query params in a Set-Cookie header.
|
Returns cookie name and path from query params in a Set-Cookie header.
|
||||||
|
@ -20,10 +16,14 @@ def main(request, response):
|
||||||
< Date: Tue, 04 Oct 2016 18:16:06 GMT
|
< Date: Tue, 04 Oct 2016 18:16:06 GMT
|
||||||
< Content-Length: 80
|
< Content-Length: 80
|
||||||
"""
|
"""
|
||||||
params = urlparse.parse_qs(request.url_parts.query)
|
|
||||||
|
name = request.GET[b'name']
|
||||||
|
path = request.GET[b'path']
|
||||||
|
cookie = b"%s=1; Path=%s; Expires=Wed, 09 Jun 2021 10:18:14 GMT" % (name, path)
|
||||||
|
|
||||||
headers = [
|
headers = [
|
||||||
("Content-Type", "application/json"),
|
(b"Content-Type", b"application/json"),
|
||||||
("Set-Cookie", "{name[0]}=1; Path={path[0]}; Expires=Wed, 09 Jun 2021 10:18:14 GMT".format(**params))
|
(b"Set-Cookie", cookie)
|
||||||
]
|
]
|
||||||
body = "{}"
|
body = b"{}"
|
||||||
return headers, body
|
return headers, body
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
border: 3px solid teal;
|
border: 3px solid teal;
|
||||||
contain: size;
|
contain: size;
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
contain: size;
|
contain: size;
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
width: max-content; /* This means 0, given 'contain:size'. */
|
width: max-content; /* This means 0, given 'contain:size'. */
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
contain: size;
|
contain: size;
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
height: max-content; /* This means 0, given 'contain:size'. */
|
height: max-content; /* This means 0, given 'contain:size'. */
|
||||||
|
width: auto;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html style="background:green">
|
||||||
|
<title>CSS Test Reference</title>
|
||||||
|
<p>Pass if the background is green.</p>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>CSS Test: display:contents on root element blockified with rendered background.</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-display/#the-display-properties">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-display/#transformations">
|
||||||
|
<link rel="match" href="display-contents-root-background-ref.html">
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
display: contents;
|
||||||
|
background-image: url(../support/1x1-green.png);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Pass if the background is green.</p>
|
|
@ -4,8 +4,9 @@
|
||||||
<title>CSS Test Reference: flex container multiline wrapping-reverse in column-reverse direction</title>
|
<title>CSS Test Reference: flex container multiline wrapping-reverse in column-reverse direction</title>
|
||||||
<link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
|
<link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
|
||||||
<link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
|
<link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||||
<style>
|
<style>
|
||||||
* { margin:0; padding:0; font-size:100%; line-height:1; }
|
* { margin:0; padding:0; font-size:100%; line-height:1; font-family: Ahem; }
|
||||||
|
|
||||||
.test {
|
.test {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
|
@ -21,26 +22,32 @@
|
||||||
|
|
||||||
#row1-col1 {
|
#row1-col1 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#row1-col2 {
|
#row1-col2 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
#row1-col3 {
|
#row1-col3 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#row2-col1 {
|
#row2-col1 {
|
||||||
height: 140px;
|
height: 140px;
|
||||||
|
color: yellow;
|
||||||
}
|
}
|
||||||
|
|
||||||
#row2-col2 {
|
#row2-col2 {
|
||||||
height: 140px;
|
height: 140px;
|
||||||
|
color: magenta;
|
||||||
}
|
}
|
||||||
|
|
||||||
#row3-col1 {
|
#row3-col1 {
|
||||||
height: 290px;
|
height: 290px;
|
||||||
|
color: cyan;
|
||||||
}
|
}
|
||||||
|
|
||||||
.clear {
|
.clear {
|
||||||
|
|
|
@ -7,9 +7,10 @@
|
||||||
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
|
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
|
||||||
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
|
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
|
||||||
<link rel="match" href="multi-line-wrap-reverse-column-reverse-ref.html">
|
<link rel="match" href="multi-line-wrap-reverse-column-reverse-ref.html">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||||
<meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in column-reverse direction.">
|
<meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in column-reverse direction.">
|
||||||
<style>
|
<style>
|
||||||
* { margin:0; padding:0; font-size:100%; line-height:1; }
|
* { margin:0; padding:0; font-size:100%; line-height:1; font-family: Ahem; }
|
||||||
|
|
||||||
#test {
|
#test {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -26,26 +27,32 @@
|
||||||
|
|
||||||
#col1-row1 {
|
#col1-row1 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#col1-row2 {
|
#col1-row2 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
#col1-row3 {
|
#col1-row3 {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#col2-row1 {
|
#col2-row1 {
|
||||||
height: 140px;
|
height: 140px;
|
||||||
|
color: yellow;
|
||||||
}
|
}
|
||||||
|
|
||||||
#col2-row2 {
|
#col2-row2 {
|
||||||
height: 140px;
|
height: 140px;
|
||||||
|
color: magenta;
|
||||||
}
|
}
|
||||||
|
|
||||||
#col3-row1 {
|
#col3-row1 {
|
||||||
height: 290px;
|
height: 290px;
|
||||||
|
color: cyan;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<style>
|
||||||
|
textarea { font-size: 3em; }
|
||||||
|
</style>
|
||||||
|
<textarea>Textarea</textarea>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://crbug.com/1086082">
|
||||||
|
<link rel="match" href="font-size-monospace-adjust-ref.html">
|
||||||
|
<style>
|
||||||
|
textarea {
|
||||||
|
font-size: 3em;
|
||||||
|
transition: margin-bottom 1e10s steps(2, start);
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.margin {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<textarea id=textarea>Textarea</textarea>
|
||||||
|
<script>
|
||||||
|
document.documentElement.offsetTop;
|
||||||
|
textarea.classList.toggle('margin');
|
||||||
|
</script>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
align-content: flex-start;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: baseline;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column wrap;
|
||||||
|
align-content: stretch;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: baseline;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,42 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
align-content: flex-start;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: baseline;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
writing-mode: vertical-lr;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column wrap;
|
||||||
|
align-content: stretch;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
writing-mode: vertical-lr;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
align-content: flex-start;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: start;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
|
||||||
|
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-justify-content">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body { overflow: hidden; }
|
||||||
|
.flexbox {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column wrap;
|
||||||
|
justify-content: stretch;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
font: 25px/1 Ahem;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: start;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.gridItem {
|
||||||
|
background: green;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="flexbox">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="gridItem">XX</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Grid item placement with inherited grid-template-areas</title>
|
||||||
|
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
|
||||||
|
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="Grid placement algorithm is able to select the right line when defined implicitly with an inherited grid-template-areas.">
|
||||||
|
<style>
|
||||||
|
.wrapper {
|
||||||
|
grid-template-areas: "a b" "a c";
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-areas: inherit;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="item" style="grid-area: a"></div>
|
||||||
|
<div class="item" style="grid-area: b"></div>
|
||||||
|
<div class="item" style="grid-area: c"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Layout Test: Grid item placement with non-inherited grid-template-areas</title>
|
||||||
|
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
|
||||||
|
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||||
|
<meta name="assert" content="Checks that inheriting grid-template-columns and grid-template-rows doesn't also inherit grid-template-areas.">
|
||||||
|
<style>
|
||||||
|
.wrapper {
|
||||||
|
grid-template-areas: "area";
|
||||||
|
}
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
grid-auto-columns: 0px 100%;
|
||||||
|
grid-auto-rows: 0px 100%;
|
||||||
|
grid-template-columns: inherit;
|
||||||
|
grid-template-rows: inherit;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
grid-area: area;
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="item"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -11,11 +11,6 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="target"></div>
|
<div id="target"></div>
|
||||||
<style>
|
|
||||||
#target {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script>
|
<script>
|
||||||
test_computed_value("z-index", "auto");
|
test_computed_value("z-index", "auto");
|
||||||
test_computed_value("z-index", "-1");
|
test_computed_value("z-index", "-1");
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Positioned Layout Module Level 3: getComputedStyle().zIndex</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-z-index">
|
||||||
|
<meta name="assert" content="z-index computed value is the keyword auto or an integer.">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/computed-testcommon.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="target"></div>
|
||||||
|
<style>
|
||||||
|
#target {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
test_computed_value("z-index", "auto");
|
||||||
|
test_computed_value("z-index", "-1");
|
||||||
|
test_computed_value("z-index", "calc(3 - 2)", "1");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="test-wait">
|
||||||
|
<link rel="help" href="https://crbug.com/1085994">
|
||||||
|
<style id="style">
|
||||||
|
@property --x {
|
||||||
|
syntax: "<length>";
|
||||||
|
inherits: false;
|
||||||
|
initial-value: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
document.documentElement.offsetTop;
|
||||||
|
style.setAttribute('media', 'braille');
|
||||||
|
document.documentElement.className = '';
|
||||||
|
</script>
|
||||||
|
<p>
|
||||||
|
PASS if no crash
|
||||||
|
</p>
|
||||||
|
</html>
|
|
@ -0,0 +1,3 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>CSS Test Reference</title>
|
||||||
|
<input type="file">
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>::file-chooser-button allows to customize the button in <input type=file></title>
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5049">
|
||||||
|
<link rel="mismatch" href="file-chooser-button-001-notref.html">
|
||||||
|
<style>
|
||||||
|
input::file-chooser-button {
|
||||||
|
background: green;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<input type="file">
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>Shouldn't assert when re-creating a ::file-chooser-button pseudo-element after it being display: none</title>
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5049">
|
||||||
|
<style>
|
||||||
|
.tweak::file-chooser-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<input type="file">
|
||||||
|
<script>
|
||||||
|
let input = document.querySelector("input");
|
||||||
|
input.getBoundingClientRect().top;
|
||||||
|
input.classList.add("tweak");
|
||||||
|
input.getBoundingClientRect().top;
|
||||||
|
input.classList.remove("tweak");
|
||||||
|
</script>
|
72
tests/wpt/web-platform-tests/css/css-ruby/line-spacing.html
Normal file
72
tests/wpt/web-platform-tests/css/css-ruby/line-spacing.html
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-ruby/#line-height">
|
||||||
|
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font: 16px/1 Ahem;
|
||||||
|
}
|
||||||
|
body > div {
|
||||||
|
border: 1px solid lime;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script>
|
||||||
|
function renderRuby(source) {
|
||||||
|
document.body.insertAdjacentHTML('afterbegin', source);
|
||||||
|
const firstChild = document.body.firstChild;
|
||||||
|
const container = firstChild.tagName == 'RUBY' ? null : firstChild;
|
||||||
|
const ruby = firstChild.tagName == 'RUBY' ? firstChild : firstChild.querySelector('ruby');
|
||||||
|
return {container: container, ruby: ruby, rt: ruby.querySelector('rt')}
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderRubyAndGetBoxes(source) {
|
||||||
|
const {container, ruby, rt} = renderRuby(source);
|
||||||
|
return {
|
||||||
|
container: container ? container.getBoundingClientRect() : null,
|
||||||
|
ruby: ruby ? ruby.getBoundingClientRect() : null,
|
||||||
|
rt: rt ? rt.getBoundingClientRect() : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const {container, ruby, rt} = renderRubyAndGetBoxes(
|
||||||
|
'<div><ruby>base<rt>annotation</rt></ruby></div>');
|
||||||
|
assert_true(container.top <= rt.top);
|
||||||
|
assert_true(rt.top < ruby.top);
|
||||||
|
}, 'Over ruby doesn\'t overflow the block');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const {container, ruby, rt} = renderRubyAndGetBoxes(
|
||||||
|
'<div>before <span style="vertical-align:32px;">' +
|
||||||
|
'<ruby>base<rt>annotation</rt></ruby>' +
|
||||||
|
'</span> after</div>');
|
||||||
|
assert_true(container.top <= rt.top);
|
||||||
|
assert_true(rt.top < ruby.top);
|
||||||
|
}, 'Over ruby + vertical-align doesn\'t overflow the block');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const {container, ruby, rt} = renderRubyAndGetBoxes(
|
||||||
|
'<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby></div>');
|
||||||
|
assert_true(container.bottom >= rt.bottom);
|
||||||
|
assert_true(rt.bottom > ruby.bottom);
|
||||||
|
}, 'Under ruby doesn\'t overflow the block');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const {container, ruby, rt} = renderRubyAndGetBoxes(
|
||||||
|
'<div>before <ruby style="vertical-align:-32px; ruby-position:under">' +
|
||||||
|
'base<rt>annotation</rt></ruby> after</div>');
|
||||||
|
assert_true(container.bottom >= rt.bottom);
|
||||||
|
assert_true(rt.bottom > ruby.bottom);
|
||||||
|
}, 'Under ruby + vertical-align doesn\'t overflow the block');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const {container, ruby, rt} = renderRuby(
|
||||||
|
'<div><span>before</span><br><ruby>base<rt style="font-size:16px"' +
|
||||||
|
'>annotation</rt></ruby></div>');
|
||||||
|
const firstLine = container.querySelector('span').getBoundingClientRect();
|
||||||
|
assert_true(ruby.getBoundingClientRect().top - firstLine.bottom > 1);
|
||||||
|
}, 'Expand inter-lines spacing');
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS aspect-ratio: Row flexbox main size</title>
|
||||||
|
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#line-sizing" title="9.2.3.B">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
<meta name="assert" content="A stretched flex item in a definite-height single-line flex container should trigger aspect-ratio.">
|
||||||
|
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
|
<div style="display: flex; height: 100px;">
|
||||||
|
<div style="background: green; aspect-ratio: 1/1; min-width: 0;"></div>
|
||||||
|
</div>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue