mirror of
https://github.com/servo/servo.git
synced 2025-06-27 18:43:40 +01:00
Update web-platform-tests to revision 36634cbcf3253dfe8d220990a27ad4eeebf8ec2f
This commit is contained in:
parent
0964d055cd
commit
7295abcc2a
245 changed files with 5966 additions and 1901 deletions
|
@ -14,9 +14,6 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[url-with-fetch.any.html]
|
||||
[Untitled]
|
||||
|
@ -37,6 +34,3 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -50,3 +50,75 @@
|
|||
[animationName has default value of empty string]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to -0.5]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to [\]]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to null]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to an object with a valueOf function]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to an object with a valueOf function]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to NaN]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to true]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to '']
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to [0.5\]]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to undefined]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to true]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to false]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime set to [\]]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to [0.5, 1.0\]]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to null]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to an object]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to 'sample']
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to undefined]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to [1, 2, 3\]]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to false]
|
||||
expected: FAIL
|
||||
|
||||
[animationName set to a number]
|
||||
expected: FAIL
|
||||
|
||||
[elapsedTime cannot be set to an object]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,13 +1,4 @@
|
|||
[css-text-line-break-ja-hyphens-strict.html]
|
||||
[2010 HYPHEN may NOT appear at line start if ja and strict]
|
||||
expected: FAIL
|
||||
|
||||
[2013 EN DASH may NOT appear at line start if ja and strict]
|
||||
expected: FAIL
|
||||
|
||||
[30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN may NOT appear at line start if ja and strict]
|
||||
expected: FAIL
|
||||
|
||||
[301C WAVE DASH may NOT appear at line start if ja and strict]
|
||||
expected:
|
||||
if os == "linux": FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[tab-min-rendered-width-1.html]
|
||||
expected: FAIL
|
|
@ -1,6 +1,7 @@
|
|||
[properties-value-inherit-002.html]
|
||||
expected: TIMEOUT
|
||||
[outline-width length(px) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-left-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
@ -24,13 +25,13 @@
|
|||
expected: FAIL
|
||||
|
||||
[opacity number[0,1\](zero-to-one) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[line-height number(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(px) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[font-size length(pt) / values]
|
||||
expected: FAIL
|
||||
|
@ -39,7 +40,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[vertical-align length(in) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[max-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
@ -75,7 +76,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[vertical-align percentage(%) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[background-position length(in) / events]
|
||||
expected: FAIL
|
||||
|
@ -99,10 +100,10 @@
|
|||
expected: FAIL
|
||||
|
||||
[vertical-align length(em) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[clip rectangle(rectangle) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[word-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
@ -126,7 +127,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(ex) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[min-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
@ -141,16 +142,16 @@
|
|||
expected: FAIL
|
||||
|
||||
[vertical-align length(pc) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(cm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[max-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(ex) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[min-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
@ -159,7 +160,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(mm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[font-weight font-weight(keyword) / values]
|
||||
expected: FAIL
|
||||
|
@ -168,7 +169,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(pt) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[line-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
@ -201,7 +202,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[vertical-align length(pt) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-left-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
@ -270,10 +271,10 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(in) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(pt) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-top-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
@ -291,7 +292,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-width length(in) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[word-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
@ -303,7 +304,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[background-position length(ex) / events]
|
||||
expected: FAIL
|
||||
|
@ -327,7 +328,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-width length(ex) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[font-size length(pc) / values]
|
||||
expected: FAIL
|
||||
|
@ -339,7 +340,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-width length(cm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[max-width percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
@ -354,19 +355,19 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-width length(mm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-left-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(pc) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[font-weight font-weight(numeric) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(px) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[letter-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
@ -393,7 +394,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-width length(em) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-right-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
@ -405,10 +406,10 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(em) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(cm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[background-position length(mm) / events]
|
||||
expected: FAIL
|
||||
|
@ -420,13 +421,13 @@
|
|||
expected: FAIL
|
||||
|
||||
[z-index integer(integer) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-left-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(mm) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[border-bottom-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
@ -447,7 +448,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[outline-offset length(pc) / values]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[max-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
@ -473,39 +474,135 @@
|
|||
[min-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(in) / values]
|
||||
[outline-width length(pc) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(em) / values]
|
||||
[vertical-align length(px) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[padding-right length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent percentage(%) / values]
|
||||
[outline-offset length(mm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(in) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[padding-left length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(em) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(cm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(cm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(mm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(em) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[z-index integer(integer) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(ex) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(em) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[visibility visibility(keyword) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[opacity number[0,1\](zero-to-one) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[margin-bottom length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[visibility visibility(keyword) / values]
|
||||
expected: TIMEOUT
|
||||
|
||||
[width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(cm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[clip rectangle(rectangle) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(ex) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(mm) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align percentage(%) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(pt) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-color color(rgba) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(in) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(ex) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[padding-top length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(pc) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[vertical-align length(pt) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[top length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(pt) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(px) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(in) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-width length(px) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
[outline-offset length(pc) / events]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
[transitionevent-interface.html]
|
||||
[elapsedTime set to undefined]
|
||||
expected: FAIL
|
||||
|
||||
[propertyName set to undefined]
|
||||
expected: FAIL
|
||||
|
|
@ -20,9 +20,6 @@
|
|||
[right intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[min-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[background-position end]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -35,42 +32,81 @@
|
|||
[font-weight intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[clip intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[min-height intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[max-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[max-height intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[border-spacing intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[left intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[bottom intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width end]
|
||||
expected: FAIL
|
||||
|
||||
[max-height end]
|
||||
expected: FAIL
|
||||
|
||||
[height end]
|
||||
expected: FAIL
|
||||
|
||||
[line-height end]
|
||||
expected: FAIL
|
||||
|
||||
[min-height end]
|
||||
expected: FAIL
|
||||
|
||||
[bottom end]
|
||||
expected: FAIL
|
||||
|
||||
[clip end]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight end]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width end]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width end]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width end]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing end]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom end]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width end]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color end]
|
||||
expected: FAIL
|
||||
|
||||
[color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-spacing end]
|
||||
expected: FAIL
|
||||
|
||||
[visibility end]
|
||||
expected: FAIL
|
||||
|
||||
[left end]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[shadow-relatedTarget.html]
|
||||
[shadow-relatedTarget]
|
||||
expected: FAIL
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
type: testharness
|
||||
|
||||
[single-byte-decoder.html?document]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[windows-1254: iso_8859-9 (document.characterSet and document.inputEncoding)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
5
tests/wpt/metadata/eventsource/format-field-id-2.htm.ini
Normal file
5
tests/wpt/metadata/eventsource/format-field-id-2.htm.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[format-field-id-2.htm]
|
||||
expected: TIMEOUT
|
||||
[EventSource: Last-Event-ID (2)]
|
||||
expected: TIMEOUT
|
||||
|
5
tests/wpt/metadata/eventsource/format-field-id.htm.ini
Normal file
5
tests/wpt/metadata/eventsource/format-field-id.htm.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[format-field-id.htm]
|
||||
expected: TIMEOUT
|
||||
[EventSource: Last-Event-ID]
|
||||
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_4.html]
|
||||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
[location-protocol-setter-non-broken-weird.html]
|
||||
type: testharness
|
||||
[Set location.protocol to x]
|
||||
expected: FAIL
|
||||
|
||||
[Set location.protocol to data]
|
||||
expected: FAIL
|
||||
|
||||
[Set location.protocol to ftp]
|
||||
expected: FAIL
|
||||
|
||||
[Set location.protocol to gopher]
|
||||
expected: FAIL
|
||||
|
||||
[Set location.protocol to http+x]
|
||||
expected: FAIL
|
||||
|
|
@ -30,3 +30,6 @@
|
|||
[Set HTTP URL frame location.protocol to data]
|
||||
expected: FAIL
|
||||
|
||||
[Set HTTP URL frame location.protocol to x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[transformed-tbody-tr-collapsed-border.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[legend-list-item-numbering.html]
|
||||
expected: FAIL
|
|
@ -3,3 +3,39 @@
|
|||
[Should get an error event for a text/plain response.]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, same-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, same-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
[link-style-error-limited-quirks.html]
|
||||
[Stylesheet loading using @import with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, same-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, same-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
[link-style-error-quirks.html]
|
||||
[Stylesheet loading using @import with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with broken Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with no Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using @import with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, cross-origin, and no nosniff]
|
||||
expected: FAIL
|
||||
|
||||
[Stylesheet loading using <link> with wrong Content-Type, same-origin, and nosniff]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[iframe-nosrc.html]
|
||||
[load event of iframe should not be fired after processing the element]
|
||||
expected: FAIL
|
||||
|
|
@ -13,21 +13,3 @@
|
|||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
||||
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
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
@ -183,3 +183,18 @@
|
|||
[off is an allowed autocomplete field name]
|
||||
expected: FAIL
|
||||
|
||||
[Unknown field]
|
||||
expected: FAIL
|
||||
|
||||
[Test maximum number of tokens]
|
||||
expected: FAIL
|
||||
|
||||
[Serialize combinations of section, mode, contact, and field]
|
||||
expected: FAIL
|
||||
|
||||
[Test 'wearing the autofill anchor mantle' with off/on]
|
||||
expected: FAIL
|
||||
|
||||
[Test whitespace-only attribute value]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[document.open() after parser is aborted]
|
||||
expected: FAIL
|
||||
|
||||
[async document.open() after parser is aborted]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,283 +0,0 @@
|
|||
[limited-quirks.html]
|
||||
[top: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[top: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #01]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[top: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: a]
|
||||
expected: FAIL
|
||||
|
||||
[top: A]
|
||||
expected: FAIL
|
||||
|
||||
[top: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: +a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #01]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: -A]
|
||||
expected: FAIL
|
||||
|
||||
[top: -a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,283 +0,0 @@
|
|||
[no-quirks.html]
|
||||
[top: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[top: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #01]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[top: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: a]
|
||||
expected: FAIL
|
||||
|
||||
[top: A]
|
||||
expected: FAIL
|
||||
|
||||
[top: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: +a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #01]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: -A]
|
||||
expected: FAIL
|
||||
|
||||
[top: -a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,283 +0,0 @@
|
|||
[quirks.html]
|
||||
[top: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[top: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #01]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[top: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: a]
|
||||
expected: FAIL
|
||||
|
||||
[top: A]
|
||||
expected: FAIL
|
||||
|
||||
[top: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: +a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #01]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: -A]
|
||||
expected: FAIL
|
||||
|
||||
[top: -a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[external-import-stylesheet.html]
|
||||
[Child css from external stylesheet.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[internal-import-stylesheet.html]
|
||||
[Child css from internal stylesheet.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Child css via a ProcessingInstruction.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[external-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Font from imported stylesheet (external).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[external-stylesheet.html]
|
||||
[Font from external stylesheet.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[internal-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Font from imported stylesheet (internal).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[internal-stylesheet.html]
|
||||
[Font from internal stylesheet.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Font from external stylesheet (from ProcessingInstruction).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[external-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from imported stylesheet (external).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[external-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from external stylesheet.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[inline-style.html]
|
||||
expected: ERROR
|
||||
[Image from inline styles.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[internal-import-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from imported stylesheet (internal).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[internal-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Image from internal stylesheet.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[presentation-attribute.html]
|
||||
[Image from presentation attributes.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Image from external stylesheet (from ProcessingInstruction).]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[external-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Test styling SVG from external style fill]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Test styling SVG from external style stroke]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[inline-style.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from inline styles stroke]
|
||||
expected: NOTRUN
|
||||
|
||||
[Styling SVG from inline styles fill]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[internal-stylesheet.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from internal styles stroke]
|
||||
expected: NOTRUN
|
||||
|
||||
[Styling SVG from internal styles fill]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[presentation-attribute.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from presentation attributes fill]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Styling SVG from presentation attributes stroke]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[processing-instruction.html]
|
||||
expected: ERROR
|
||||
[Styling SVG from ProcessingInstruction stroke]
|
||||
expected: NOTRUN
|
||||
|
||||
[Styling SVG from ProcessingInstruction fill]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -2,15 +2,18 @@
|
|||
[request.formData() with input: &&&a=b&&&&c=d&]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[urlencoded-parser.any.worker.html]
|
||||
[request.formData() with input: a&b&c]
|
||||
|
@ -22,6 +25,12 @@
|
|||
[response.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: &&&a=b&&&&c=d&]
|
||||
[response.formData() with input: a=b&c=d&]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
[Changing the buffer]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[compile.any.html]
|
||||
[Invalid arguments]
|
||||
|
@ -43,3 +46,6 @@
|
|||
[Changing the buffer]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -68,6 +68,12 @@
|
|||
[getter order for imports object: Module argument]
|
||||
expected: FAIL
|
||||
|
||||
[stray argument: BufferSource argument]
|
||||
expected: FAIL
|
||||
|
||||
[stray argument: Module argument]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[instantiate.any.worker.html]
|
||||
[Invalid arguments]
|
||||
|
@ -139,3 +145,9 @@
|
|||
[getter order for imports object: Module argument]
|
||||
expected: FAIL
|
||||
|
||||
[stray argument: BufferSource argument]
|
||||
expected: FAIL
|
||||
|
||||
[stray argument: Module argument]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -92,6 +92,9 @@
|
|||
[Explicit value "3" for type f32]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[constructor.any.worker.html]
|
||||
[Explicit value object with toString for type f32]
|
||||
|
@ -187,3 +190,6 @@
|
|||
[Explicit value "3" for type f32]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
|
207
tests/wpt/metadata/wasm/jsapi/global/value-get-set.any.js.ini
Normal file
207
tests/wpt/metadata/wasm/jsapi/global/value-get-set.any.js.ini
Normal file
|
@ -0,0 +1,207 @@
|
|||
[value-get-set.any.worker.html]
|
||||
[Mutable f64 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[i64 with default]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (undefined)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Calling setter without argument]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (undefined)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Branding]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (undefined)]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[value-get-set.any.html]
|
||||
[Mutable f64 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[i64 with default]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (undefined)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Calling setter without argument]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (undefined)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable i32 (one)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (true on prototype)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (false)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable i32 (missing)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f32 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (null)]
|
||||
expected: FAIL
|
||||
|
||||
[Branding]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f64 (zero)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (true)]
|
||||
expected: FAIL
|
||||
|
||||
[Mutable f64 (string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (empty string)]
|
||||
expected: FAIL
|
||||
|
||||
[Immutable f32 (undefined)]
|
||||
expected: FAIL
|
||||
|
|
@ -2,8 +2,14 @@
|
|||
[Branding]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[valueOf.any.html]
|
||||
[Branding]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -38,6 +38,9 @@
|
|||
[Basic]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[grow.any.worker.html]
|
||||
[Out-of-range argument: 68719476736]
|
||||
|
@ -79,3 +82,6 @@
|
|||
[Basic]
|
||||
expected: FAIL
|
||||
|
||||
[Stray argument]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
2
tests/wpt/mozilla/meta/mozilla/unitless-length.html.ini
Normal file
2
tests/wpt/mozilla/meta/mozilla/unitless-length.html.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[unitless-length.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,67 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var tests = [
|
||||
// Make sure that csp works properly in normal situations
|
||||
{ "csp": "", "expected": true, "name": "Should load image without any CSP" },
|
||||
{ "csp": "img-src 'none';", "expected": false, "name": "Should not load image with 'none' CSP" },
|
||||
// Ensure ASCII whitespaces are properly parsed
|
||||
// ASCII whitespace is U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, or U+0020 SPACE.
|
||||
|
||||
// between directive name and value
|
||||
{ "csp": "img-src\u0009'none';", "expected": false, "name": "U+0009 TAB should be properly parsed between directive name and value" },
|
||||
{ "csp": "img-src\u000C'none';", "expected": false, "name": "U+000C FF should be properly parsed between directive name and value" },
|
||||
{ "csp": "img-src\u000A'none';", "expected": false, "name": "U+000A LF should be properly parsed between directive name and value" },
|
||||
{ "csp": "img-src\u000D'none';", "expected": false, "name": "U+000D CR should be properly parsed between directive name and value" },
|
||||
{ "csp": "img-src\u0020'none';", "expected": false, "name": "U+0020 SPACE should be properly parsed between directive name and value" },
|
||||
|
||||
// inside directive value
|
||||
{ "csp": "img-src http://example.com\u0009http://example2.com;", "expected": false, "name": "U+0009 TAB should be properly parsed inside directive value" },
|
||||
{ "csp": "img-src http://example.com\u000Chttp://example2.com;", "expected": false, "name": "U+000C FF should be properly parsed inside directive value" },
|
||||
{ "csp": "img-src http://example.com\u000Ahttp://example2.com;", "expected": false, "name": "U+000A LF should be properly parsed inside directive value" },
|
||||
{ "csp": "img-src http://example.com\u000Dhttp://example2.com;", "expected": false, "name": "U+000D CR should be properly parsed inside directive value" },
|
||||
{ "csp": "img-src http://example.com\u0020http://example2.com;", "expected": false, "name": "U+0020 SPACE should be properly parsed inside directive value" },
|
||||
|
||||
// Ensure nbsp (U+00A0) is not considered a valid whitespace
|
||||
// https://github.com/webcompat/web-bugs/issues/18902 has more details about why this particularly relevant
|
||||
{ "csp": "img-src\u00A0'none';", "expected": true, "name": "U+00A0 NBSP should not be parsed between directive name and value" },
|
||||
{ "csp": "img-src http://example.com\u00A0http://example2.com;", "expected": true, "name": "U+00A0 NBSP should not be parsed inside directive value" },
|
||||
];
|
||||
|
||||
tests.forEach(test => {
|
||||
async_test(t => {
|
||||
var url = "support/load_img_and_post_result_meta.sub.html?csp=" + encodeURIComponent(test.csp);
|
||||
test_image_loads_as_expected(test, t, url);
|
||||
}, test.name + " - meta tag");
|
||||
|
||||
// We can't test csp delivered in an HTTP header if we're testing CR/LF characters
|
||||
if (test.csp.indexOf("\u000A") == -1 && test.csp.indexOf("\u000D") == -1) {
|
||||
async_test(t => {
|
||||
var url = "support/load_img_and_post_result_meta.sub.html?csp=" + encodeURIComponent(test.csp);
|
||||
test_image_loads_as_expected(test, t, url);
|
||||
}, test.name + " - HTTP header");
|
||||
}
|
||||
});
|
||||
|
||||
function test_image_loads_as_expected(test, t, url) {
|
||||
var i = document.createElement('iframe');
|
||||
i.src = url;
|
||||
window.addEventListener('message', t.step_func(function(e) {
|
||||
if (e.source != i.contentWindow) return;
|
||||
if (test.expected) {
|
||||
assert_equals(e.data, "img loaded");
|
||||
} else {
|
||||
assert_equals(e.data, "img not loaded");
|
||||
}
|
||||
t.done();
|
||||
}));
|
||||
document.body.appendChild(i);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,11 @@
|
|||
<html>
|
||||
<body>
|
||||
<script>
|
||||
var img = document.createElement("img");
|
||||
img.src = "/content-security-policy/support/pass.png";
|
||||
img.onload = function() { parent.postMessage('img loaded', '*'); }
|
||||
img.onerror = function() { parent.postMessage('img not loaded', '*'); }
|
||||
document.body.appendChild(img);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
Content-Security-Policy: {{GET[csp]}}
|
|
@ -0,0 +1,14 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Security-Policy" content="{{GET[csp]}}">
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var img = document.createElement("img");
|
||||
img.src = "/content-security-policy/support/pass.png";
|
||||
img.onload = function() { parent.postMessage('img loaded', '*'); }
|
||||
img.onerror = function() { parent.postMessage('img not loaded', '*'); }
|
||||
document.body.appendChild(img);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -78,11 +78,139 @@
|
|||
assert_equals(event.animationName, "sample");
|
||||
}, "animationName set to 'sample'");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: undefined});
|
||||
assert_equals(event.animationName, "");
|
||||
}, "animationName set to undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: null});
|
||||
assert_equals(event.animationName, "null");
|
||||
}, "animationName set to null");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: false});
|
||||
assert_equals(event.animationName, "false");
|
||||
}, "animationName set to false");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: true});
|
||||
assert_equals(event.animationName, "true");
|
||||
}, "animationName set to true");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: 0.5});
|
||||
assert_equals(event.animationName, "0.5");
|
||||
}, "animationName set to a number");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: []});
|
||||
assert_equals(event.animationName, "");
|
||||
}, "animationName set to []");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: [1, 2, 3]});
|
||||
assert_equals(event.animationName, "1,2,3");
|
||||
}, "animationName set to [1, 2, 3]");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {animationName: {sample: 0.5}});
|
||||
assert_equals(event.animationName, "[object Object]");
|
||||
}, "animationName set to an object");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test",
|
||||
{animationName: {valueOf: function () { return 'sample'; }}});
|
||||
assert_equals(event.animationName, "[object Object]");
|
||||
}, "animationName set to an object with a valueOf function");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: 0.5});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to 0.5");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: -0.5});
|
||||
assert_equals(event.elapsedTime, -0.5);
|
||||
}, "elapsedTime set to -0.5");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: undefined});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: null});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to null");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: false});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to false");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: true});
|
||||
assert_equals(event.elapsedTime, 1);
|
||||
}, "elapsedTime set to true");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: ""});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to ''");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: []});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to []");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent("test", {elapsedTime: [0.5]});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to [0.5]");
|
||||
|
||||
test(function() {
|
||||
var event = new AnimationEvent(
|
||||
"test", {elapsedTime: { valueOf: function() { return 0.5; }}});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to an object with a valueOf function");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: NaN});
|
||||
}, 'elapsedTime cannot be NaN so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to NaN");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: Infinity});
|
||||
}, 'elapsedTime cannot be Infinity so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to Infinity");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: -Infinity});
|
||||
}, 'elapsedTime cannot be -Infinity so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to -Infinity");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: "sample"});
|
||||
}, 'elapsedTime cannot be a string so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to 'sample'");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: [0.5, 1.0]});
|
||||
}, 'elapsedTime cannot be a multi-element array so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to [0.5, 1.0]");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new AnimationEvent("test", {elapsedTime: { sample: 0.5}});
|
||||
}, 'elapsedTime cannot be an object so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to an object");
|
||||
|
||||
test(function() {
|
||||
var eventInit = {animationName: "sample", elapsedTime: 0.5};
|
||||
var event = new AnimationEvent("test", eventInit);
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<title>Historical CSS Animation features must be removed</title>
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-animations">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function isInterfaceNuked(name) {
|
||||
test(function() {
|
||||
assert_equals(window[name], undefined)
|
||||
}, "Historical CSS features must be removed: " + name)
|
||||
}
|
||||
var nukedInterfaces = [
|
||||
"WebKitAnimationEvent", // Replaced by unprefixed AnimationEvent
|
||||
];
|
||||
nukedInterfaces.forEach(isInterfaceNuked);
|
||||
</script>
|
|
@ -31,5 +31,4 @@
|
|||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
});
|
||||
inner.style.backgroundClip = "border-box";
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Size containment on fieldset</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||
<link rel="match" href="reference/contain-size-fieldset-001-ref.html">
|
||||
<meta name=assert content="Size containment does apply to fieldsets, thus their size is the same than if they don't have contents.">
|
||||
<style>
|
||||
fieldset {
|
||||
contain: size;
|
||||
display: inline-block;
|
||||
color: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>This test passes if it has the same output as the reference. You see the word "before", a small space, and then the word "after".</p>
|
||||
before<fieldset><legend>legend</legend></fieldset>after
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Reference file</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<style>
|
||||
fieldset {
|
||||
display: inline-block;
|
||||
color: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>This test passes if it has the same output as the reference. You see the word "before", a small space, and then the word "after".</p>
|
||||
before<fieldset></fieldset>after
|
|
@ -0,0 +1,62 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'align-self' property's value of a grid item from 'baseline' will exclude such item from its baseline context, which implies recomputing all the baseline offsets and aligning the items left in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 100px / 50px 50px 50px;
|
||||
background: grey;
|
||||
align-items: baseline;
|
||||
}
|
||||
#item1 {
|
||||
height: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
height: 50px;
|
||||
background: green;
|
||||
}
|
||||
#item3 {
|
||||
height: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-y": 30 },
|
||||
item2: {"data-offset-y": 0 },
|
||||
item3: {"data-offset-y": 20 }
|
||||
};
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-y": 10 },
|
||||
item2: {"data-offset-y": 50 },
|
||||
item3: {"data-offset-y": 0 }
|
||||
};
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.alignSelf = "end";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="50" data-expected-height="20" data-offset-x="0"></div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="50" data-offset-x="50"></div>
|
||||
<div id="item3" data-expected-width="50" data-expected-height="30" data-offset-x="100"></div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'align-self' property's value of a grid item to 'baseline' will include such item into a baseline context, which implies recomputing all the baseline offsets and aligning the items in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 100px / 50px 50px 50px;
|
||||
background: grey;
|
||||
align-items: baseline;
|
||||
}
|
||||
#item1 {
|
||||
height: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
height: 50px;
|
||||
background: green;
|
||||
align-self: center;
|
||||
}
|
||||
#item3 {
|
||||
height: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-y": 10 },
|
||||
item2: {"data-offset-y": 25 },
|
||||
item3: {"data-offset-y": 0 }
|
||||
};
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-y": 30 },
|
||||
item2: {"data-offset-y": 0 },
|
||||
item3: {"data-offset-y": 20 }
|
||||
};
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.alignSelf = "baseline";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="50" data-expected-height="20" data-offset-x="0"></div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="50" data-offset-x="50"></div>
|
||||
<div id="item3" data-expected-width="50" data-expected-height="30" data-offset-x="100"></div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing the Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#justify-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the justify-self' property's value of a grid item from 'baseline' will exclude such item from its baseline context, which implies recomputing all the baseline offsets and aligning the items left in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 50px 50px 50px / 100px;
|
||||
background: grey;
|
||||
justify-items: baseline;
|
||||
}
|
||||
#container > div { writing-mode: vertical-rl; }
|
||||
#item1 {
|
||||
width: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
width: 50px;
|
||||
background: green;
|
||||
}
|
||||
#item3 {
|
||||
width: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-x": 30 },
|
||||
item2: {"data-offset-x": 0 },
|
||||
item3: {"data-offset-x": 20 }
|
||||
};
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-x": 10 },
|
||||
item2: {"data-offset-x": 50 },
|
||||
item3: {"data-offset-x": 0 }
|
||||
};
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.justifySelf = "end";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="20" data-expected-height="50" data-offset-y="0"></div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="50" data-offset-y="50"></div>
|
||||
<div id="item3" data-expected-width="30" data-expected-height="50" data-offset-y="100"></div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing the Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#justify-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'justify-self' property's value of a grid item to 'baseline' will include such item into a baseline context, which implies recomputing all the baseline offsets and aligning the items in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 50px 50px 50px / 100px;
|
||||
background: grey;
|
||||
justify-items: baseline;
|
||||
}
|
||||
#container > div { writing-mode: vertical-rl; }
|
||||
#item1 {
|
||||
width: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
width: 50px;
|
||||
background: green;
|
||||
justify-self: center;
|
||||
}
|
||||
#item3 {
|
||||
width: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-x": 10 },
|
||||
item2: {"data-offset-x": 25 },
|
||||
item3: {"data-offset-x": 0 }
|
||||
};
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-x": 30 },
|
||||
item2: {"data-offset-x": 0 },
|
||||
item3: {"data-offset-x": 20 }
|
||||
};
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.justifySelf = "baseline";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="20" data-expected-height="50" data-offset-y="0"></div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="50" data-offset-y="50"></div>
|
||||
<div id="item3" data-expected-width="30" data-expected-height="50" data-offset-y="100"></div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'align-self' property's value of a grid item from 'baseline' will exclude such item from its baseline context, which implies recomputing all the baseline offsets and aligning the items left in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 100px / 50px 50px 50px;
|
||||
background: grey;
|
||||
align-items: baseline;
|
||||
font-family: Ahem;
|
||||
}
|
||||
#item1 {
|
||||
font-size: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
font-size: 40px;
|
||||
background: green;
|
||||
}
|
||||
#item3 {
|
||||
font-size: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-y": 16 },
|
||||
item2: {"data-offset-y": 0 },
|
||||
item3: {"data-offset-y": 8 }
|
||||
}
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-y": 8 },
|
||||
item2: {"data-offset-y": 60 },
|
||||
item3: {"data-offset-y": 0 }
|
||||
}
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.alignSelf = "end";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="50" data-expected-height="20" data-offset-x="0">É</div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="40" data-offset-x="50">É</div>
|
||||
<div id="item3" data-expected-width="50" data-expected-height="30" data-offset-x="100">É</div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'align-self' property's value of a grid item to 'baseline' will include such item into a baseline context, which implies recomputing all the baseline offsets and aligning the items in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 100px / 50px 50px 50px;
|
||||
background: grey;
|
||||
align-items: baseline;
|
||||
font-family: Ahem;
|
||||
}
|
||||
#item1 {
|
||||
font-size: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
font-size: 40px;
|
||||
background: green;
|
||||
align-self: center;
|
||||
}
|
||||
#item3 {
|
||||
font-size: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-y": 8 },
|
||||
item2: {"data-offset-y": 30 },
|
||||
item3: {"data-offset-y": 0 }
|
||||
}
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-y": 16 },
|
||||
item2: {"data-offset-y": 0 },
|
||||
item3: {"data-offset-y": 8 }
|
||||
}
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.alignSelf = "baseline";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="50" data-expected-height="20" data-offset-x="0">É</div>
|
||||
<div id="item2" data-expected-width="50" data-expected-height="40" data-offset-x="50">É</div>
|
||||
<div id="item3" data-expected-width="50" data-expected-height="30" data-offset-x="100">É</div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing the value of Self-Alignment properties</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#justify-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'align-self' property's value of a grid item from 'baseline' will exclude such item from its baseline context, which implies recomputing all the baseline offsets and aligning the items left in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 50px 50px 50px / 100px;
|
||||
background: grey;
|
||||
justify-items: baseline;
|
||||
font-family: Ahem;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#container > div { writing-mode: vertical-lr; }
|
||||
#item1 {
|
||||
font-size: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
font-size: 40px;
|
||||
background: green;
|
||||
}
|
||||
#item3 {
|
||||
font-size: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-x": 4 },
|
||||
item2: {"data-offset-x": 0 },
|
||||
item3: {"data-offset-x": 2 }
|
||||
}
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-x": 2 },
|
||||
item2: {"data-offset-x": 60 },
|
||||
item3: {"data-offset-x": 0 }
|
||||
}
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.justifySelf = "end";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="20" data-expected-height="50" data-offset-y="0">É</div>
|
||||
<div id="item2" data-expected-width="40" data-expected-height="50" data-offset-y="50">É</div>
|
||||
<div id="item3" data-expected-width="30" data-expected-height="50" data-offset-y="100">É</div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Changing the Self-Alignment properties to interfere in Baseline Alignment</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#self-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#justify-self-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align/#typedef-baseline-position">
|
||||
<meta name="assert" content="Changing the 'justify-self' property's value of a grid item to 'baseline' will include such item into a baseline context, which implies recomputing all the baseline offsets and aligning the items in such context.">
|
||||
<style>
|
||||
#container {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
grid: 50px 50px 50px / 100px;
|
||||
background: grey;
|
||||
justify-items: baseline;
|
||||
font-family: Ahem;
|
||||
}
|
||||
#container > div { writing-mode: vertical-lr; }
|
||||
#item1 {
|
||||
font-size: 20px;
|
||||
background: blue;
|
||||
}
|
||||
#item2 {
|
||||
font-size: 40px;
|
||||
background: green;
|
||||
justify-self: center;
|
||||
}
|
||||
#item3 {
|
||||
font-size: 30px;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script src="support/style-change.js"></script>
|
||||
<script>
|
||||
function runTest() {
|
||||
let before = {
|
||||
item1: {"data-offset-x": 5 },
|
||||
item2: {"data-offset-x": 30 },
|
||||
item3: {"data-offset-x": 0 }
|
||||
};
|
||||
|
||||
let after = {
|
||||
item1: {"data-offset-x": 10 },
|
||||
item2: {"data-offset-x": 0 },
|
||||
item3: {"data-offset-x": 5 }
|
||||
};
|
||||
|
||||
evaluateStyleChangeMultiple("before", before);
|
||||
item2.style.justifySelf = "baseline";
|
||||
evaluateStyleChangeMultiple("after", after);
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
<body onload="runTest()">
|
||||
<div id="container">
|
||||
<div id="item1" data-expected-width="20" data-expected-height="50" data-offset-y="0">É</div>
|
||||
<div id="item2" data-expected-width="40" data-expected-height="50" data-offset-y="50">É</div>
|
||||
<div id="item3" data-expected-width="30" data-expected-height="50" data-offset-y="100">É</div>
|
||||
</div>
|
||||
<div id="log"></div>
|
||||
</body>
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Self-Baseline alignment and sizing cyclic dependency</title>
|
||||
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline">
|
||||
<link rel="stylesheet" href="../../support/grid.css">
|
||||
<link rel="stylesheet" href="../../support/alignment.css">
|
||||
<meta name="assert" content="Items not participating in baseline may later participate if there is an extra pass of the track sizing algorithm.">
|
||||
<!-- https://github.com/w3c/csswg-drafts/issues/3046 -->
|
||||
<style>
|
||||
.grid {
|
||||
position: relative;
|
||||
display: inline-grid;
|
||||
background: grey;
|
||||
text-orientation: sideways;
|
||||
font-family: Ahem;
|
||||
}
|
||||
.row { grid: minmax(0px, 1fr) / 50px 50px 100px }
|
||||
.column { grid: 50px 50px 100px / minmax(0px, 1fr); }
|
||||
.item1 {
|
||||
font-size: 30px;
|
||||
background: blue;
|
||||
}
|
||||
.item2 {
|
||||
font-size: 20px;
|
||||
background: red;
|
||||
}
|
||||
.item3 {
|
||||
font-size: 80px;
|
||||
background: green;
|
||||
}
|
||||
.height50 { height: 50px; }
|
||||
.relativeHeight { height: 50%; }
|
||||
.relativeWidth { width: 50%; }
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<body onload="checkLayout('.grid')">
|
||||
|
||||
<pre>flex rows - column-axis baseline - the blue orthogonal item didn't participate in the first iteration</pre>
|
||||
<div class="grid row alignItemsBaseline">
|
||||
<div class="item1 verticalLR" data-offset-x="0" data-offset-y="34" data-expected-width="50" data-expected-height="30">É</div>
|
||||
<div class="item2" data-offset-x="50" data-offset-y="48" data-expected-width="50" data-expected-height="20">É</div>
|
||||
<div class="item3" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="80">É</div>
|
||||
</div>
|
||||
|
||||
<pre>flex row - column-axis baseline - the blue relative sized item didn't participate in the first iterarion</pre>
|
||||
<div class="grid row alignItemsBaseline ">
|
||||
<div class="item1 relativeHeight" data-offset-x="0" data-offset-y="40" data-expected-width="50" data-expected-height="40"></div>
|
||||
<div class="item2" data-offset-x="50" data-offset-y="64" data-expected-width="50" data-expected-height="20">É</div>
|
||||
<div class="item3 verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="80">É</div>
|
||||
</div>
|
||||
|
||||
<pre>flex row - both the blue relative sized and red orthogonal didn't participate in the first iteration</pre>
|
||||
<div class="grid row alignItemsBaseline">
|
||||
<div class="item1 relativeHeight" data-offset-x="0" data-offset-y="24" data-expected-width="50" data-expected-height="40"></div>
|
||||
<div class="item2 verticalLR" data-offset-x="50" data-offset-y="44" data-expected-width="50" data-expected-height="20">É</div>
|
||||
<div class="item3" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="80">É</div>
|
||||
</div>
|
||||
|
||||
<pre>flex column - row-axis baseline - the blue orthogonal item didn't participate in the first iteration</pre>
|
||||
<div class="grid column justifyItemsBaseline">
|
||||
<div class="item1" data-offset-x="16" data-offset-y="0" data-expected-width="30" data-expected-height="50">É</div>
|
||||
<div class="item2 verticalLR" data-offset-x="12" data-offset-y="50" data-expected-width="20" data-expected-height="50">É</div>
|
||||
<div class="item3 verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="80" data-expected-height="100">É</div>
|
||||
</div>
|
||||
|
||||
<pre>flex column - column-axis baseline - the blue relative sized item didn't participate in the first iterarion</pre>
|
||||
<div class="grid column justifyItemsBaseline">
|
||||
<div class="item1 relativeWidth height50" data-offset-x="16" data-offset-y="0" data-expected-width="40" data-expected-height="50"></div>
|
||||
<div class="item2 verticalLR" data-offset-x="12" data-offset-y="50" data-expected-width="20" data-expected-height="50">É</div>
|
||||
<div class="item3 verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="80" data-expected-height="100">É</div>
|
||||
</div>
|
||||
|
||||
<pre>flex columns - both the blue relative sized and red orthogonal didn't participate in the first iteration</pre>
|
||||
<div class="grid column justifyItemsBaseline">
|
||||
<div class="item1 relativeWidth height50" data-offset-x="16" data-offset-y="0" data-expected-width="40" data-expected-height="50"></div>
|
||||
<div class="item2" data-offset-x="16" data-offset-y="50" data-expected-width="20" data-expected-height="50">É</div>
|
||||
<div class="item3 verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="80" data-expected-height="100">É</div>
|
||||
</div>
|
||||
|
||||
</body>
|
|
@ -3,3 +3,12 @@ function evaluateStyleChange(element, phase, expectedProperty, expectedResult) {
|
|||
element.setAttribute(expectedProperty, expectedResult);
|
||||
checkLayout("." + phase, false);
|
||||
}
|
||||
function evaluateStyleChangeMultiple(phase, expectedResult) {
|
||||
for (var item in expectedResult) {
|
||||
var element = document.getElementById(item);
|
||||
element.className += " " + phase;
|
||||
for (var key in expectedResult[item])
|
||||
element.setAttribute(key, expectedResult[item][key]);
|
||||
}
|
||||
checkLayout("." + phase, false);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Multicol under vertical-rl scrolling container</title>
|
||||
<p>Passes if there are two green squares</p>
|
||||
<div id="scroller" style="width: 200px; height: 200px; overflow: scroll; border: 1px solid black">
|
||||
<div style="width: 580px; height: 500px; position: relative">
|
||||
<div style="position: absolute; right: 0">
|
||||
<div style="width: 80px; height: 80px; background: green"></div>
|
||||
<div style="height: 20px"></div>
|
||||
<div style="width: 80px; height: 80px; background: green"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Scroll all the way to the right.
|
||||
scroller.scrollLeft = 800;
|
||||
</script>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Multicol under vertical-rl scrolling container</title>
|
||||
<link rel="match" href="multicol-under-vertical-rl-scroll-ref.html">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-multicol">
|
||||
<p>Passes if there are two green squares</p>
|
||||
<div style="width: 200px; height: 200px; overflow: scroll; writing-mode: vertical-rl; border: 1px solid black">
|
||||
<div style="columns: 2; column-gap: 20px; width: 80px; height: 180px">
|
||||
<div style="width: 160px; background: green"></div>
|
||||
</div>
|
||||
<div style="width: 500px; height: 500px"></div>
|
||||
</div>
|
|
@ -72,4 +72,18 @@ test(function(){
|
|||
assert_equals(getComputedStyle(inner).getPropertyValue('--inherited-length-5'), '42px');
|
||||
}, "Reference to syntax-incompatible variable results in inherited value");
|
||||
|
||||
test(function(){
|
||||
CSS.registerProperty({name: '--inherited-em', syntax: '<length>', initialValue: '0px', inherits: true});
|
||||
outer.style = 'font-size: 11px; --inherited-em: 10em;';
|
||||
inner.style = 'font-size: 22px; --unregistered:var(--inherited-em);';
|
||||
assert_equals(getComputedStyle(inner).getPropertyValue('--unregistered'), '110px');
|
||||
}, "Font-relative units are absolutized before before inheritance");
|
||||
|
||||
test(function(){
|
||||
CSS.registerProperty({name: '--calc-length', syntax: '<length>', initialValue: '0px', inherits: true});
|
||||
outer.style = '--calc-length: calc(10px + 10px);';
|
||||
inner.style = '--unregistered:var(--calc-length);';
|
||||
assert_equals(getComputedStyle(inner).getPropertyValue('--unregistered'), '20px');
|
||||
}, "Calc expressions are resolved before inheritance");
|
||||
|
||||
</script>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function register_length(name) {
|
||||
function register_length(name, inherits=true) {
|
||||
CSS.registerProperty({
|
||||
name: name,
|
||||
syntax: '<length>',
|
||||
initialValue: '0px',
|
||||
inherits: false
|
||||
inherits: inherits
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,9 @@
|
|||
register_length('--font-size-rem-via-var');
|
||||
register_length('--font-size-ex-via-var');
|
||||
register_length('--font-size-ch-via-var');
|
||||
register_length('--font-size-em-inherited', true);
|
||||
register_length('--font-size-ex-inherited', true);
|
||||
register_length('--font-size-ch-inherited', true);
|
||||
</script>
|
||||
<style>
|
||||
:root {
|
||||
|
@ -43,12 +46,20 @@
|
|||
--font-size-ch-via-var: var(--unregistered-ch);
|
||||
}
|
||||
|
||||
#parent {
|
||||
--font-size-em-inherited: 4em;
|
||||
--font-size-ex-inherited: 4ex;
|
||||
--font-size-ch-inherited: 4ch;
|
||||
}
|
||||
|
||||
#target {
|
||||
font-size: 11px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id=parent>
|
||||
<div id=target></div>
|
||||
</div>
|
||||
<div id=ref></div>
|
||||
|
||||
<script>
|
||||
|
@ -170,4 +181,25 @@
|
|||
assert_property_equals('--font-size-rem-via-var', expected10rem, root);
|
||||
}, 'Lengths with rem units are detected via var references');
|
||||
|
||||
test(function() {
|
||||
let expected4em = compute_dimension('4em', 'unset');
|
||||
target.style = 'font-size: var(--font-size-em-inherited);';
|
||||
assert_property_equals('font-size', expected4em);
|
||||
assert_property_equals('--font-size-em-inherited', expected4em);
|
||||
}, 'Inherited lengths with em units may be used');
|
||||
|
||||
test(function() {
|
||||
let expected4ex = compute_dimension('4ex', 'unset');
|
||||
target.style = 'font-size: var(--font-size-ex-inherited);';
|
||||
assert_property_equals('font-size', expected4ex);
|
||||
assert_property_equals('--font-size-ex-inherited', expected4ex);
|
||||
}, 'Inherited lengths with ex units may be used');
|
||||
|
||||
test(function() {
|
||||
let expected4ch = compute_dimension('4ch', 'unset');
|
||||
target.style = 'font-size: var(--font-size-ch-inherited);';
|
||||
assert_property_equals('font-size', expected4ch);
|
||||
assert_property_equals('--font-size-ch-inherited', expected4ch);
|
||||
}, 'Inherited lengths with ch units may be used');
|
||||
|
||||
</script>
|
||||
|
|
|
@ -96,5 +96,43 @@ test(function(){
|
|||
assert_equals(computedStyle.getPropertyValue('--registered-length-list-3'), '1px, 10px, 2px, 1px, 20px, 10px, 2px');
|
||||
}, 'Registered lists may be concatenated');
|
||||
|
||||
test(function(){
|
||||
CSS.registerProperty({
|
||||
name: '--length-em',
|
||||
syntax: '<length>',
|
||||
initialValue: '0px',
|
||||
inherits: false
|
||||
});
|
||||
element.style = 'font-size: 11px; --length-em: 10em; --unregistered:var(--length-em);';
|
||||
let computedStyle = getComputedStyle(element);
|
||||
assert_equals(computedStyle.getPropertyValue('--unregistered'), '110px');
|
||||
element.style = '';
|
||||
}, 'Font-relative units are absolutized when substituting');
|
||||
|
||||
test(function(){
|
||||
CSS.registerProperty({
|
||||
name: '--length-calc',
|
||||
syntax: '<length>',
|
||||
initialValue: '0px',
|
||||
inherits: false
|
||||
});
|
||||
element.style = 'font-size: 11px; --length-calc: calc(10em + 10px); --unregistered:var(--length-calc);';
|
||||
let computedStyle = getComputedStyle(element);
|
||||
assert_equals(computedStyle.getPropertyValue('--unregistered'), '120px');
|
||||
element.style = '';
|
||||
}, 'Calc expressions are resolved when substituting');
|
||||
|
||||
test(function(){
|
||||
CSS.registerProperty({
|
||||
name: '--length-calc-list',
|
||||
syntax: '<length>#',
|
||||
initialValue: '0px',
|
||||
inherits: false
|
||||
});
|
||||
element.style = 'font-size: 11px; --length-calc-list: 10em, calc(10em + 10px); --unregistered:var(--length-calc-list);';
|
||||
let computedStyle = getComputedStyle(element);
|
||||
assert_equals(computedStyle.getPropertyValue('--unregistered'), '110px, 120px');
|
||||
element.style = '';
|
||||
}, 'Lists with relative units are absolutized when substituting');
|
||||
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
<link rel="author" title="David Grogan" href="dgrogan@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-writing-modes-3/#orthogonal-flows">
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="caption margins are resolved against table's height when table has vertical flow" />
|
||||
<style>
|
||||
x-table {
|
||||
display: table;
|
||||
width: 300px;
|
||||
height: 200px;
|
||||
writing-mode: vertical-lr;
|
||||
outline: 2px dashed blue;
|
||||
}
|
||||
x-caption {
|
||||
display: table-caption;
|
||||
height: 50px;
|
||||
width: 120px;
|
||||
writing-mode: horizontal-tb;
|
||||
outline: 1px solid black;
|
||||
}
|
||||
</style>
|
||||
|
||||
<x-table>
|
||||
<x-caption id=captionMarginLeft style="margin-left:20%">caption</x-caption>
|
||||
</x-table>
|
||||
<x-table>
|
||||
<x-caption id=captionMarginTop style="margin:auto 0">caption</x-caption>
|
||||
</x-table>
|
||||
<p>This is a script test because of how ridiculously differently the current
|
||||
engines render these cases.</p>
|
||||
|
||||
|
||||
<script>
|
||||
let caption_margin_left = getComputedStyle(id=captionMarginLeft).marginLeft;
|
||||
test(() => assert_equals(caption_margin_left, "40px"), "Caption percent margins are resolved against table's height for vertical-lr tables");
|
||||
let caption_margin_top = getComputedStyle(captionMarginTop).marginTop;
|
||||
test(() => assert_equals(caption_margin_top, "75px"), "Caption with auto top/bottom margins is centered vertically for vertical-lr tables");
|
||||
</script>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Text Test: minimum rendered width of tab character</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<style>
|
||||
span { background-color: yellow; display: inline-block; letter-spacing: -.1em; }
|
||||
pre { position: absolute; top: 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
</pre>
|
||||
<pre>
|
||||
</pre>
|
||||
<script>
|
||||
let pre = document.getElementsByTagName("pre")[0];
|
||||
let test = "";
|
||||
for (i = 7.0; i <= 8.125; i += 0.125) {
|
||||
test += `<span style="width:${i}ch">${i}ch</span>\n`;
|
||||
}
|
||||
pre.innerHTML = test;
|
||||
pre = document.getElementsByTagName("pre")[1];
|
||||
test = "";
|
||||
for (i = 0; i < 5; i++) {
|
||||
test += `\tfoo\n`;
|
||||
}
|
||||
for (i = 0; i < 5; i++) {
|
||||
test += `\t\tfoo\n`;
|
||||
}
|
||||
pre.innerHTML = test;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Text Test: minimum rendered width of tab character</title>
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="reviewer" title="Xidorn Quan" href="https://www.upsuper.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<link rel="match" href="tab-min-rendered-width-1-ref.html">
|
||||
<meta name="assert" content="If [rendered width of tab would be] less than 0.5ch, then the subsequent tab stop is used instead.">
|
||||
<style>
|
||||
span { background-color: yellow; display: inline-block; letter-spacing: -.1em; }
|
||||
pre { position: absolute; top: 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
</pre>
|
||||
<script>
|
||||
let pre = document.getElementsByTagName("pre")[0];
|
||||
let test = "";
|
||||
for (i = 7.0; i <= 8.125; i += 0.125) {
|
||||
test += `<span style="width:${i}ch">${i}ch</span>	foo\n`;
|
||||
}
|
||||
pre.innerHTML = test;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,229 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Transitions Test: TransitionEvent interface</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transitions-1/#interface-transitionevent">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="transitionevent-interface.js"></script>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
var event = new TransitionEvent("");
|
||||
assert_true(event instanceof window.TransitionEvent);
|
||||
}, "the event is an instance of TransitionEvent");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("");
|
||||
assert_true(event instanceof window.Event);
|
||||
}, "the event inherts from Event");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent();
|
||||
}, 'First argument is required, so was expecting a TypeError.');
|
||||
}, 'Missing type argument');
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test");
|
||||
assert_equals(event.type, "test");
|
||||
}, "type argument is string");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent(null);
|
||||
assert_equals(event.type, "null");
|
||||
}, "type argument is null");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent(undefined);
|
||||
assert_equals(event.type, "undefined");
|
||||
}, "event type set to undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test");
|
||||
assert_equals(event.propertyName, "");
|
||||
}, "propertyName has default value of empty string");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test");
|
||||
assert_equals(event.elapsedTime, 0.0);
|
||||
}, "elapsedTime has default value of 0.0");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test");
|
||||
assert_readonly(event, "propertyName", "readonly attribute value");
|
||||
}, "propertyName is readonly");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test");
|
||||
assert_readonly(event, "elapsedTime", "readonly attribute value");
|
||||
}, "elapsedTime is readonly");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", null);
|
||||
assert_equals(event.propertyName, "");
|
||||
assert_equals(event.elapsedTime, 0.0);
|
||||
}, "animationEventInit argument is null");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", undefined);
|
||||
assert_equals(event.propertyName, "");
|
||||
assert_equals(event.elapsedTime, 0.0);
|
||||
}, "animationEventInit argument is undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {});
|
||||
assert_equals(event.propertyName, "");
|
||||
assert_equals(event.elapsedTime, 0.0);
|
||||
}, "animationEventInit argument is empty dictionary");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {pseudoElement: "::testPseudo"});
|
||||
assert_equals(event.pseudoElement, "::testPseudo");
|
||||
}, "TransitionEvent.pseudoElement initialized from the dictionary");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: "sample"});
|
||||
assert_equals(event.propertyName, "sample");
|
||||
}, "propertyName set to 'sample'");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: undefined});
|
||||
assert_equals(event.propertyName, "");
|
||||
}, "propertyName set to undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: null});
|
||||
assert_equals(event.propertyName, "null");
|
||||
}, "propertyName set to null");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: false});
|
||||
assert_equals(event.propertyName, "false");
|
||||
}, "propertyName set to false");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: true});
|
||||
assert_equals(event.propertyName, "true");
|
||||
}, "propertyName set to true");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: 0.5});
|
||||
assert_equals(event.propertyName, "0.5");
|
||||
}, "propertyName set to a number");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: []});
|
||||
assert_equals(event.propertyName, "");
|
||||
}, "propertyName set to []");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: [1, 2, 3]});
|
||||
assert_equals(event.propertyName, "1,2,3");
|
||||
}, "propertyName set to [1, 2, 3]");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {propertyName: {sample: 0.5}});
|
||||
assert_equals(event.propertyName, "[object Object]");
|
||||
}, "propertyName set to an object");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test",
|
||||
{propertyName: {valueOf: function () { return 'sample'; }}});
|
||||
assert_equals(event.propertyName, "[object Object]");
|
||||
}, "propertyName set to an object with a valueOf function");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: 0.5});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to 0.5");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: -0.5});
|
||||
assert_equals(event.elapsedTime, -0.5);
|
||||
}, "elapsedTime set to -0.5");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: undefined});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to undefined");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: null});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to null");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: false});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to false");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: true});
|
||||
assert_equals(event.elapsedTime, 1);
|
||||
}, "elapsedTime set to true");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: ""});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to ''");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: []});
|
||||
assert_equals(event.elapsedTime, 0);
|
||||
}, "elapsedTime set to []");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent("test", {elapsedTime: [0.5]});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to [0.5]");
|
||||
|
||||
test(function() {
|
||||
var event = new TransitionEvent(
|
||||
"test", {elapsedTime: { valueOf: function() { return 0.5; }}});
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "elapsedTime set to an object with a valueOf function");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: NaN});
|
||||
}, 'elapsedTime cannot be NaN so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to NaN");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: Infinity});
|
||||
}, 'elapsedTime cannot be Infinity so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to Infinity");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: -Infinity});
|
||||
}, 'elapsedTime cannot be -Infinity so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to -Infinity");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: "sample"});
|
||||
}, 'elapsedTime cannot be a string so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to 'sample'");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: [0.5, 1.0]});
|
||||
}, 'elapsedTime cannot be a multi-element array so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to [0.5, 1.0]");
|
||||
|
||||
test(function() {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new TransitionEvent("test", {elapsedTime: { sample: 0.5}});
|
||||
}, 'elapsedTime cannot be an object so was expecting a TypeError');
|
||||
}, "elapsedTime cannot be set to an object");
|
||||
|
||||
test(function() {
|
||||
var eventInit = {propertyName: "sample", elapsedTime: 0.5};
|
||||
var event = new TransitionEvent("test", eventInit);
|
||||
assert_equals(event.propertyName, "sample");
|
||||
assert_equals(event.elapsedTime, 0.5);
|
||||
}, "TransitionEventInit properties set value");
|
||||
</script>
|
|
@ -793,14 +793,6 @@ asserts that one `assert_func(actual, expected_array_N, extra_arg1, ..., extra_a
|
|||
allows multiple behaviours. Test authors should not use this method simply to hide
|
||||
UA bugs.
|
||||
|
||||
### `assert_exists(object, property_name, description)`
|
||||
**deprecated**
|
||||
asserts that object has an own property `property_name`
|
||||
|
||||
### `assert_not_exists(object, property_name, description)`
|
||||
**deprecated**
|
||||
assert that object does not have own property `property_name`
|
||||
|
||||
## Metadata ##
|
||||
|
||||
It is possible to add optional metadata to tests; this can be done in
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<!--
|
||||
This test is adopted from Olli Pettay's test case at
|
||||
http://mozilla.pettay.fi/shadow_focus.html
|
||||
-->
|
||||
<div id="host"></div>
|
||||
<input id="lightInput">
|
||||
<script>
|
||||
const root = host.attachShadow({ mode: "closed" });
|
||||
root.innerHTML = "<input id='shadowInput'>";
|
||||
|
||||
async_test((test) => {
|
||||
root.getElementById("shadowInput").focus();
|
||||
window.addEventListener("focus", test.step_func_done((e) => {
|
||||
assert_equals(e.relatedTarget, host);
|
||||
}, "relatedTarget should be pointing to shadow host."), true);
|
||||
lightInput.focus();
|
||||
}, "relatedTarget should not leak at capturing phase, at window object.");
|
||||
|
||||
async_test((test) => {
|
||||
root.getElementById("shadowInput").focus();
|
||||
lightInput.addEventListener("focus", test.step_func_done((e) => {
|
||||
assert_equals(e.relatedTarget, host);
|
||||
}, "relatedTarget should be pointing to shadow host."), true);
|
||||
lightInput.focus();
|
||||
}, "relatedTarget should not leak at target.");
|
||||
|
||||
</script>
|
|
@ -12,7 +12,7 @@
|
|||
EventSource.prototype.ReturnTrue = function() { return true }
|
||||
var source = new EventSource("resources/message.py")
|
||||
assert_true(source.ReturnTrue())
|
||||
assert_exists(window, "EventSource")
|
||||
assert_own_property(window, "EventSource")
|
||||
source.close()
|
||||
})
|
||||
</scrIpt>
|
||||
|
|
|
@ -19,7 +19,7 @@ async_test(function(t) {
|
|||
}
|
||||
|
||||
function step2_processSubframeMsg(msg) {
|
||||
assert_not_exists(msg, 'error');
|
||||
assert_false(msg.hasOwnProperty('error'), 'unexpected property found: "error"');
|
||||
assert_equals(msg.blob_type, 'text/html');
|
||||
assert_equals(msg.blob_size, 147);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ async_test(t => {
|
|||
const events = [];
|
||||
const callback = t.step_func(event => {
|
||||
// fullscreenElement should have changed before either event is fired.
|
||||
assert_equals(document.fullscreenElement, null, `fullscreenElement in {event.type} event`);
|
||||
assert_equals(document.fullscreenElement, null, `fullscreenElement in ${event.type} event`);
|
||||
events.push(event.type);
|
||||
if (event.type == 'fullscreenchange') {
|
||||
step_timeout(t.unreached_func('timer callback'));
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
<iframe allowfullscreen></iframe>
|
||||
<iframe allowfullscreen></iframe>
|
||||
<script>
|
||||
async_test(function(t)
|
||||
{
|
||||
// wait for load event to avoid https://bugzil.la/1493878
|
||||
window.onload = function() {
|
||||
async_test(function(t) {
|
||||
var iframes = document.getElementsByTagName("iframe");
|
||||
trusted_request(t, iframes[0].contentDocument.body, document.body);
|
||||
iframes[0].contentDocument.onfullscreenchange = t.step_func(function()
|
||||
{
|
||||
iframes[0].contentDocument.onfullscreenchange = t.step_func(function() {
|
||||
assert_equals(document.fullscreenElement, iframes[0]);
|
||||
trusted_request(t, iframes[1].contentDocument.body, iframes[0].contentDocument.body);
|
||||
iframes[1].contentDocument.onfullscreenchange = t.step_func_done(function() {
|
||||
|
@ -21,4 +21,5 @@ async_test(function(t)
|
|||
iframes[1].contentDocument.onfullscreenerror = t.unreached_func("fullscreenchange error");
|
||||
});
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -6,8 +6,9 @@
|
|||
<div id="log"></div>
|
||||
<iframe></iframe>
|
||||
<script>
|
||||
async_test(function(t)
|
||||
{
|
||||
// wait for load event to avoid https://bugzil.la/1493878
|
||||
window.onload = function() {
|
||||
async_test(function(t) {
|
||||
var iframe = document.querySelector("iframe");
|
||||
document.onfullscreenchange = t.unreached_func("document fullscreenchange event");
|
||||
document.onfullscreenerror = t.unreached_func("document fullscreenerror event");
|
||||
|
@ -16,4 +17,5 @@ async_test(function(t)
|
|||
assert_false(iframe.contentDocument.fullscreenEnabled, "fullscreen enabled flag");
|
||||
trusted_request(t, iframe.contentDocument.body, document.body);
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
<div id="log"></div>
|
||||
<iframe allowfullscreen></iframe>
|
||||
<script>
|
||||
// wait for load event to avoid https://bugzil.la/1493878
|
||||
window.onload = function() {
|
||||
async_test(t => {
|
||||
const iframe = document.querySelector('iframe');
|
||||
const iframeDoc = iframe.contentDocument;
|
||||
|
@ -39,4 +41,5 @@ async_test(t => {
|
|||
|
||||
trusted_request(t, iframeBody, iframeBody);
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -28,6 +28,9 @@ async_test(t => {
|
|||
}, 'Timing of fullscreenchange and resize events');
|
||||
|
||||
async_test(t => {
|
||||
// Gecko throttles requestAnimationFrame before the first paint, so
|
||||
// wrap the test to work around that.
|
||||
requestAnimationFrame(t.step_func(() => {
|
||||
var promise = document.createElement('a').requestFullscreen();
|
||||
var promise_executed = false;
|
||||
if (promise) {
|
||||
|
@ -44,5 +47,6 @@ async_test(t => {
|
|||
step_timeout(t.unreached_func('timer callback'));
|
||||
requestAnimationFrame(t.step_func_done());
|
||||
});
|
||||
}));
|
||||
}, 'Timing of fullscreenerror event');
|
||||
</script>
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
<script src="../trusted-click.js"></script>
|
||||
<iframe allowfullscreen></iframe>
|
||||
<script>
|
||||
// wait for load event to avoid https://bugzil.la/1493878
|
||||
window.onload = function() {
|
||||
async_test(t => {
|
||||
const iframe = document.querySelector('iframe');
|
||||
const iframeDoc = iframe.contentDocument;
|
||||
|
@ -34,4 +36,5 @@ async_test(t => {
|
|||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -14,21 +14,32 @@ iframe {
|
|||
<div id="log"></div>
|
||||
<div id="ancestor"><iframe></iframe></div>
|
||||
<script>
|
||||
function assert_dir_properties(style, propBase, value, state) {
|
||||
for (let dir of ["Top", "Right", "Bottom", "Left"]) {
|
||||
let prop = propBase.replace('{}', dir);
|
||||
assert_equals(style[prop], value, `${state} ${prop} style`);
|
||||
}
|
||||
}
|
||||
|
||||
async_test(t => {
|
||||
const ancestor = document.getElementById('ancestor');
|
||||
const iframe = ancestor.firstChild;
|
||||
|
||||
const initialStyle = getComputedStyle(iframe);
|
||||
assert_equals(initialStyle.border, '1px solid rgb(0, 0, 255)', 'initial border style');
|
||||
assert_equals(initialStyle.padding, '1px', 'initial padding style');
|
||||
assert_dir_properties(initialStyle, 'border{}Width', '1px', 'initial');
|
||||
assert_dir_properties(initialStyle, 'border{}Style', 'solid', 'initial');
|
||||
assert_dir_properties(initialStyle, 'border{}Color', 'rgb(0, 0, 255)', 'initial');
|
||||
assert_dir_properties(initialStyle, 'padding{}', '1px', 'initial');
|
||||
assert_equals(initialStyle.transform, 'matrix(0.5, 0, 0, 0.5, 0, 0)', 'initial transform style');
|
||||
|
||||
trusted_request(t, iframe);
|
||||
|
||||
document.addEventListener('fullscreenchange', t.step_func_done(() => {
|
||||
const fullscreenStyle = getComputedStyle(iframe);
|
||||
assert_equals(fullscreenStyle.border, '0px none rgb(0, 0, 0)', 'fullscreen border style');
|
||||
assert_equals(fullscreenStyle.padding, '0px', 'fullscreen padding style');
|
||||
assert_dir_properties(fullscreenStyle, 'border{}Width', '0px', 'fullscreen');
|
||||
assert_dir_properties(fullscreenStyle, 'border{}Style', 'none', 'fullscreen');
|
||||
assert_dir_properties(fullscreenStyle, 'border{}Color', 'rgb(0, 0, 0)', 'fullscreen');
|
||||
assert_dir_properties(fullscreenStyle, 'padding{}', '0px', 'fullscreen');
|
||||
assert_equals(fullscreenStyle.transform, 'none', 'fullscreen transform style');
|
||||
}));
|
||||
});
|
||||
|
|
|
@ -44,7 +44,7 @@ function reportload() {
|
|||
test(function () {
|
||||
assert_equals( history.length, histlength + 1, 'make sure that you loaded the test in a new tab/window' );
|
||||
}, 'history.length should update when setting location.hash');
|
||||
test(function () { assert_true( !!history.pushState, 'critical test; ignore any failures after this' ); }, 'history.pushState must exist'); //assert_exists does not allow prototype inheritance
|
||||
test(function () { assert_true( !!history.pushState, 'critical test; ignore any failures after this' ); }, 'history.pushState must exist'); //assert_own_property does not allow prototype inheritance
|
||||
test(function () { assert_true( !!iframe.contentWindow.history.pushState, 'critical test; ignore any failures after this' ); }, 'history.pushState must exist within iframes');
|
||||
test(function () {
|
||||
assert_equals( iframe.contentWindow.history.state, null );
|
||||
|
@ -250,7 +250,7 @@ function reportload() {
|
|||
assert_equals( ev.state.numdata, 1, 'state numeric data was not correct' );
|
||||
assert_equals( ev.state.strdata, 'string data', 'state string data was not correct' );
|
||||
assert_true( !!ev.state.datedata.getTime, 'state date data was not correct' );
|
||||
assert_exists( ev.state, 'regdata', 'state regex data was not correct' );
|
||||
assert_own_property( ev.state, 'regdata', 'state regex data was not correct' );
|
||||
assert_equals( ev.state.regdata.source, 'a', 'state regex pattern data was not correct' );
|
||||
assert_true( ev.state.regdata.global, 'state regex flag data was not correct' );
|
||||
assert_equals( ev.state.regdata.lastIndex, 0, 'state regex lastIndex data was not correct' );
|
||||
|
|
|
@ -43,7 +43,7 @@ function reportload() {
|
|||
test(function () {
|
||||
assert_equals( history.length, histlength + 1, 'make sure that you loaded the test in a new tab/window' );
|
||||
}, 'history.length should update when setting location.hash');
|
||||
test(function () { assert_true( !!history.replaceState, 'critical test; ignore any failures after this' ); }, 'history.replaceState must exist'); //assert_exists does not allow prototype inheritance
|
||||
test(function () { assert_true( !!history.replaceState, 'critical test; ignore any failures after this' ); }, 'history.replaceState must exist'); //assert_own_property does not allow prototype inheritance
|
||||
test(function () { assert_true( !!iframe.contentWindow.history.replaceState, 'critical test; ignore any failures after this' ); }, 'history.replaceState must exist within iframes');
|
||||
test(function () {
|
||||
assert_equals( iframe.contentWindow.history.state, null );
|
||||
|
@ -225,7 +225,7 @@ function reportload() {
|
|||
assert_equals( ev.state.numdata, 1, 'state numeric data was not correct' );
|
||||
assert_equals( ev.state.strdata, 'string data', 'state string data was not correct' );
|
||||
assert_true( !!ev.state.datedata.getTime, 'state date data was not correct' );
|
||||
assert_exists( ev.state, 'regdata', 'state regex data was not correct' );
|
||||
assert_own_property( ev.state, 'regdata', 'state regex data was not correct' );
|
||||
assert_equals( ev.state.regdata.source, 'a', 'state regex pattern data was not correct' );
|
||||
assert_true( ev.state.regdata.global, 'state regex flag data was not correct' );
|
||||
assert_equals( ev.state.regdata.lastIndex, 0, 'state regex lastIndex data was not correct' );
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
td {
|
||||
border: 5px solid black;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
Passes if there is a grid containing 2x2 squares.
|
||||
<table>
|
||||
<tbody>
|
||||
<tr><td></td><td></td></tr>
|
||||
<tr><td></td><td></td></tr>
|
||||
</tbody>
|
||||
</table>
|
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