Auto merge of #21569 - servo-wpt-sync:wpt_update_01-09-2018, r=jdm

Sync WPT with upstream (01-09-2018)

Automated downstream sync of changes from upstream as of 01-09-2018.
[no-wpt-sync]

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21569)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-09-02 10:21:43 -04:00 committed by GitHub
commit aa61200eca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
844 changed files with 19802 additions and 3093 deletions

View file

@ -0,0 +1,4 @@
[2d.text.draw.baseline.alphabetic.html]
[Canvas test: 2d.text.draw.baseline.alphabetic]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -1,2 +0,0 @@
[floats-in-table-caption-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[anonymous-inline-inherit-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-height-204.html]
expected: FAIL

View file

@ -41,9 +41,6 @@
[Matching font-weight: '430' should prefer '340 398' over '501 550']
expected: FAIL
[Matching font-weight: '430' should prefer '501 550' over '502 560']
expected: FAIL
[Matching font-weight: '500' should prefer '500' over '450 460']
expected: FAIL

View file

@ -1,2 +0,0 @@
[css3-text-line-break-opclns-050.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css3-text-line-break-opclns-054.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css3-text-line-break-opclns-059.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css3-text-line-break-opclns-164.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css3-text-line-break-opclns-165.html]
expected: FAIL

View file

@ -11,3 +11,6 @@
[FE19 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS may NOT appear at line start if zh and strict]
expected: FAIL
[22EF MIDLINE HORIZONTAL ELLIPSIS may NOT appear at line start if zh and strict]
expected: FAIL

View file

@ -0,0 +1,2 @@
[css-transforms-3d-on-anonymous-block-001.html]
expected: FAIL

View file

@ -0,0 +1,13 @@
[webkit-pseudo-element.html]
[webkit-prefixed pseudo-element selectors should be accessible from CSSOM]
expected: FAIL
[qS and qSA shouldn't throw exception]
expected: FAIL
[webkit-prefix without dash is invalid]
expected: FAIL
[rules include webkit-prefixed pseudo-element should be cascaded]
expected: FAIL

View file

@ -1,2 +1,2 @@
[parser-sets-attributes-and-children.html]
expected: TIMEOUT
expected: CRASH

View file

@ -22,6 +22,66 @@
[idlharness]
expected: FAIL
[TextDecoderStream interface: attribute readable]
expected: FAIL
[TextEncoderStream interface object length]
expected: FAIL
[TextDecoderStream interface object length]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface object]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[TextEncoderStream interface object name]
expected: FAIL
[TextDecoderStream interface: attribute fatal]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[TextDecoderStream interface: attribute ignoreBOM]
expected: FAIL
[TextEncoderStream interface: attribute writable]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface object]
expected: FAIL
[TextDecoderStream interface: attribute encoding]
expected: FAIL
[TextEncoderStream interface: attribute readable]
expected: FAIL
[TextEncoderStream interface: attribute encoding]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object]
expected: FAIL
[TextDecoderStream interface object name]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object]
expected: FAIL
[TextDecoderStream interface: attribute writable]
expected: FAIL
[idlharness.any.worker.html]
[Untitled]
@ -30,6 +90,66 @@
[idlharness]
expected: FAIL
[TextDecoderStream interface: attribute readable]
expected: FAIL
[TextEncoderStream interface object length]
expected: FAIL
[TextDecoderStream interface object length]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface object]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[TextEncoderStream interface object name]
expected: FAIL
[TextDecoderStream interface: attribute fatal]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[TextDecoderStream interface: attribute ignoreBOM]
expected: FAIL
[TextEncoderStream interface: attribute writable]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface object]
expected: FAIL
[TextDecoderStream interface: attribute encoding]
expected: FAIL
[TextEncoderStream interface: attribute readable]
expected: FAIL
[TextEncoderStream interface: attribute encoding]
expected: FAIL
[TextDecoderStream interface: existence and properties of interface prototype object]
expected: FAIL
[TextDecoderStream interface object name]
expected: FAIL
[TextEncoderStream interface: existence and properties of interface prototype object]
expected: FAIL
[TextDecoderStream interface: attribute writable]
expected: FAIL
[idlharness.any.serviceworker.html]
expected: TIMEOUT

View file

@ -2,10 +2,512 @@
type: testharness
[single-byte-decoder.html?document]
expected: CRASH
[windows-1254: iso_8859-9 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso-8859-8 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso_8859-4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: arabic (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-U: koi8-u (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso8859-2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso-8859-5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: csisolatin1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: latin2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: dos-874 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: iso885911 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso_8859-6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1257: windows-1257 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: latin1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-R: koi (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: windows-1252 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: csisolatincyrillic (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: iso-ir-148 (document.characterSet and document.inputEncoding)]
expected: FAIL
[x-mac-cyrillic: x-mac-cyrillic (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso-8859-6-e (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1255: cp1255 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso-ir-109 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: cp1254 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-13: iso8859-13 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: cp1252 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: l4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso-ir-127 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: latin5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-14: iso885914 (document.characterSet and document.inputEncoding)]
expected: FAIL
[IBM866: cp866 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-R: koi8 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: csisolatingreek (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: greek8 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso88597 (document.characterSet and document.inputEncoding)]
expected: FAIL
[macintosh: mac (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: csisolatin4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso_8859-7 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1250: windows-1250 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: elot_928 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: tis-620 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso8859-3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1250: cp1250 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: windows-874 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso-8859-2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[macintosh: csmacintosh (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: iso_8859-15 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso-8859-3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1253: windows-1253 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-R: koi8-r (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1251: windows-1251 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: csisolatin5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: x-cp1254 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: csisolatin3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso8859-5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: l3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: iso885910 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: l5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: l1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso88595 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: ecma-114 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-14: iso8859-14 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso-8859-6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-R: koi8_r (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1258: windows-1258 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: x-cp1252 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-13: iso885913 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso-ir-138 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso-8859-8-e (document.characterSet and document.inputEncoding)]
expected: FAIL
[IBM866: ibm866 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-14: iso-8859-14 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: csisolatinhebrew (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: cp819 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: latin6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1253: x-cp1253 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: us-ascii (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso_8859-7:1987 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso8859-1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: latin3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: l6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso88592 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: iso-8859-10 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: windows-1254 (document.characterSet and document.inputEncoding)]
expected: FAIL
[IBM866: 866 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso-8859-7 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso8859-8 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: iso-8859-11 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: ascii (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso_8859-3 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: ibm819 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso88591 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1258: cp1258 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso8859-7 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso-ir-100 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso_8859-5 (document.characterSet and document.inputEncoding)]
expected: FAIL
[IBM866: csibm866 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: hebrew (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso-ir-144 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: iso8859-9 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: l9 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso_8859-6:1987 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1255: x-cp1255 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: cyrillic (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1256: cp1256 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-5: iso_8859-5:1988 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: csiso88596i (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso8859-6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: csiso88596e (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1251: x-cp1251 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: csisolatin2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso8859-4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: greek (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: sun_eu_greek (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: latin4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1255: windows-1255 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: iso_8859-9:1989 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso88596 (document.characterSet and document.inputEncoding)]
expected: FAIL
[macintosh: macintosh (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso_8859-1:1987 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: iso-8859-9 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: ecma-118 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: iso8859-15 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: l2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso88593 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1256: x-cp1256 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1251: cp1251 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: iso885915 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso88594 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso_8859-2 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-3: iso_8859-3:1988 (document.characterSet and document.inputEncoding)]
expected: FAIL
[x-mac-cyrillic: x-mac-ukrainian (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-13: iso-8859-13 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso_8859-2:1987 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-874: iso8859-11 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1256: windows-1256 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: csiso88598e (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: asmo-708 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso-ir-110 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1254: iso88599 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1257: cp1257 (document.characterSet and document.inputEncoding)]
expected: FAIL
[macintosh: x-mac-roman (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: csisolatin9 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: iso-8859-6-i (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: csisolatin6 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8-I: csiso88598i (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: iso8859-10 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1250: x-cp1250 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1258: x-cp1258 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso_8859-1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: visual (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1253: cp1253 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso_8859-8:1988 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: ansi_x3.4-1968 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-7: iso-ir-126 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-R: cskoi8r (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8-I: iso-8859-8-i (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-10: iso-ir-157 (document.characterSet and document.inputEncoding)]
expected: FAIL
[KOI8-U: koi8-ru (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1257: x-cp1257 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso_8859-8 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8-I: logical (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-8: iso88598 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-2: iso-ir-101 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-15: iso-8859-15 (document.characterSet and document.inputEncoding)]
expected: FAIL
[windows-1252: iso-8859-1 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-16: iso-8859-16 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-4: iso-8859-4 (document.characterSet and document.inputEncoding)]
expected: FAIL
[ISO-8859-6: csisolatinarabic (document.characterSet and document.inputEncoding)]
expected: FAIL
[single-byte-decoder.html?XMLHttpRequest]
expected: CRASH
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -31,67 +533,7 @@
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso_8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: x-cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: windows-1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: windows-1254 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: csisolatin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: x-cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: x-cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: latin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-ir-148 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: windows-1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: windows-1255 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
expected: TIMEOUT
expected: FAIL
[single-byte-decoder.html?TextDecoder]

View file

@ -0,0 +1,17 @@
[backpressure.any.sharedworker.html]
[backpressure]
expected: FAIL
[backpressure.any.html]
[backpressure]
expected: FAIL
[backpressure.any.serviceworker.html]
expected: TIMEOUT
[backpressure.any.worker.html]
[backpressure]
expected: FAIL

View file

@ -0,0 +1,17 @@
[decode-bad-chunks.any.html]
[decode-bad-chunks]
expected: FAIL
[decode-bad-chunks.any.worker.html]
[decode-bad-chunks]
expected: FAIL
[decode-bad-chunks.any.serviceworker.html]
expected: TIMEOUT
[decode-bad-chunks.any.sharedworker.html]
[decode-bad-chunks]
expected: FAIL

View file

@ -0,0 +1,83 @@
[decode-ignore-bom.any.html]
[ignoreBOM should work for encoding utf-16be, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 0]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 0]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 0]
expected: FAIL
[decode-ignore-bom.any.serviceworker.html]
expected: TIMEOUT
[decode-ignore-bom.any.sharedworker.html]
[decode-ignore-bom]
expected: FAIL
[decode-ignore-bom.any.worker.html]
[ignoreBOM should work for encoding utf-16be, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 0]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16be, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 0]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-8, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 3]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 2]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 1]
expected: FAIL
[ignoreBOM should work for encoding utf-16le, split at character 0]
expected: FAIL

View file

@ -0,0 +1,23 @@
[decode-incomplete-input.any.serviceworker.html]
expected: TIMEOUT
[decode-incomplete-input.any.sharedworker.html]
[decode-incomplete-input]
expected: FAIL
[decode-incomplete-input.any.worker.html]
[incomplete input with error mode "fatal" should error the stream]
expected: FAIL
[incomplete input with error mode "replacement" should end with a replacement character]
expected: FAIL
[decode-incomplete-input.any.html]
[incomplete input with error mode "fatal" should error the stream]
expected: FAIL
[incomplete input with error mode "replacement" should end with a replacement character]
expected: FAIL

View file

@ -0,0 +1,71 @@
[decode-non-utf8.any.sharedworker.html]
[decode-non-utf8]
expected: FAIL
[decode-non-utf8.any.worker.html]
[TextDecoderStream should be able to reject invalid sequences in Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to reject invalid sequences in UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to reject invalid sequences in UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to decode UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to decode ISO-8859-14]
expected: FAIL
[decode-non-utf8.any.html]
[TextDecoderStream should be able to reject invalid sequences in Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to reject invalid sequences in UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to reject invalid sequences in UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode Shift_JIS]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to decode UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode invalid sequences in UTF-16BE]
expected: FAIL
[TextDecoderStream should be able to decode UTF-16LE]
expected: FAIL
[TextDecoderStream should be able to decode ISO-8859-14]
expected: FAIL
[decode-non-utf8.any.serviceworker.html]
expected: TIMEOUT

View file

@ -0,0 +1,77 @@
[decode-split-character.any.serviceworker.html]
expected: TIMEOUT
[decode-split-character.any.sharedworker.html]
[decode-split-character]
expected: FAIL
[decode-split-character.any.worker.html]
[an empty chunk inside a code point split between chunks should not change the output; split point = 3]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 1]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 2]
expected: FAIL
[a code point should be emitted as soon as all bytes are available]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 4]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 5]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 6]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 4]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 5]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 2]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 3]
expected: FAIL
[decode-split-character.any.html]
[an empty chunk inside a code point split between chunks should not change the output; split point = 3]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 1]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 2]
expected: FAIL
[a code point should be emitted as soon as all bytes are available]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 4]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 5]
expected: FAIL
[an empty chunk inside a code point split between chunks should not change the output; split point = 6]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 4]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 5]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 2]
expected: FAIL
[a code point split between chunks should not be emitted until all bytes are available; split point = 3]
expected: FAIL

View file

@ -0,0 +1,35 @@
[decode-utf8.any.serviceworker.html]
expected: TIMEOUT
[decode-utf8.any.sharedworker.html]
[decode-utf8]
expected: FAIL
[decode-utf8.any.html]
[decoding one UTF-8 chunk should give one output string]
expected: FAIL
[a trailing empty chunk should be ignored]
expected: FAIL
[decoding an empty chunk should give no output chunks]
expected: FAIL
[an initial empty chunk should be ignored]
expected: FAIL
[decode-utf8.any.worker.html]
[decoding one UTF-8 chunk should give one output string]
expected: FAIL
[a trailing empty chunk should be ignored]
expected: FAIL
[decoding an empty chunk should give no output chunks]
expected: FAIL
[an initial empty chunk should be ignored]
expected: FAIL

View file

@ -0,0 +1,47 @@
[encode-bad-chunks.any.html]
[a chunk that cannot be converted to a string should error the streams]
expected: FAIL
[input of type numeric should be converted correctly to string]
expected: FAIL
[input of type undefined should be converted correctly to string]
expected: FAIL
[input of type array should be converted correctly to string]
expected: FAIL
[input of type object should be converted correctly to string]
expected: FAIL
[input of type null should be converted correctly to string]
expected: FAIL
[encode-bad-chunks.any.worker.html]
[a chunk that cannot be converted to a string should error the streams]
expected: FAIL
[input of type numeric should be converted correctly to string]
expected: FAIL
[input of type undefined should be converted correctly to string]
expected: FAIL
[input of type array should be converted correctly to string]
expected: FAIL
[input of type object should be converted correctly to string]
expected: FAIL
[input of type null should be converted correctly to string]
expected: FAIL
[encode-bad-chunks.any.sharedworker.html]
[encode-bad-chunks]
expected: FAIL
[encode-bad-chunks.any.serviceworker.html]
expected: TIMEOUT

View file

@ -0,0 +1,125 @@
[encode-utf8.any.html]
[two leading chunks should result in two replacement characters]
expected: FAIL
[characters in the ISO-8859-1 range should be encoded correctly]
expected: FAIL
[a terminal unpaired trailing surrogate should immediately be replaced]
expected: FAIL
[a character split between chunks should be correctly encoded]
expected: FAIL
[an empty string should result in no output chunk]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by an ascii character in the next chunk should be replaced with the replacement character at the start of the next output chunk]
expected: FAIL
[a leading empty chunk should be ignored]
expected: FAIL
[encoding one string of UTF-8 should give one complete chunk]
expected: FAIL
[a leading surrogate chunk should be carried past empty chunks]
expected: FAIL
[a leading surrogate chunk should error when it is clear it didn't form a pair]
expected: FAIL
[a trailing empty chunk should be ignored]
expected: FAIL
[a plain ASCII chunk should be converted]
expected: FAIL
[a character following one split between chunks should be correctly encoded]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by a plane 1 character split into two chunks should result in the encoded plane 1 character appearing in the last output chunk]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by an astral character in the next chunk should be replaced with the replacement character at the start of the next output chunk]
expected: FAIL
[two consecutive astral characters each split down the middle should be correctly reassembled]
expected: FAIL
[a non-terminal unpaired leading surrogate should immediately be replaced]
expected: FAIL
[two consecutive astral characters each split down the middle with an invalid surrogate in the middle should be correctly encoded]
expected: FAIL
[a stream ending in a leading surrogate should emit a replacement character as a final chunk]
expected: FAIL
[encode-utf8.any.worker.html]
[two leading chunks should result in two replacement characters]
expected: FAIL
[characters in the ISO-8859-1 range should be encoded correctly]
expected: FAIL
[a terminal unpaired trailing surrogate should immediately be replaced]
expected: FAIL
[a character split between chunks should be correctly encoded]
expected: FAIL
[an empty string should result in no output chunk]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by an ascii character in the next chunk should be replaced with the replacement character at the start of the next output chunk]
expected: FAIL
[a leading empty chunk should be ignored]
expected: FAIL
[encoding one string of UTF-8 should give one complete chunk]
expected: FAIL
[a leading surrogate chunk should be carried past empty chunks]
expected: FAIL
[a leading surrogate chunk should error when it is clear it didn't form a pair]
expected: FAIL
[a trailing empty chunk should be ignored]
expected: FAIL
[a plain ASCII chunk should be converted]
expected: FAIL
[a character following one split between chunks should be correctly encoded]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by a plane 1 character split into two chunks should result in the encoded plane 1 character appearing in the last output chunk]
expected: FAIL
[an unmatched surrogate at the end of a chunk followed by an astral character in the next chunk should be replaced with the replacement character at the start of the next output chunk]
expected: FAIL
[two consecutive astral characters each split down the middle should be correctly reassembled]
expected: FAIL
[a non-terminal unpaired leading surrogate should immediately be replaced]
expected: FAIL
[two consecutive astral characters each split down the middle with an invalid surrogate in the middle should be correctly encoded]
expected: FAIL
[a stream ending in a leading surrogate should emit a replacement character as a final chunk]
expected: FAIL
[encode-utf8.any.sharedworker.html]
[encode-utf8]
expected: FAIL
[encode-utf8.any.serviceworker.html]
expected: TIMEOUT

View file

@ -0,0 +1,23 @@
[readable-writable-properties.any.html]
[TextDecoderStream readable and writable properties must pass brand checks]
expected: FAIL
[TextEncoderStream readable and writable properties must pass brand checks]
expected: FAIL
[readable-writable-properties.any.serviceworker.html]
expected: TIMEOUT
[readable-writable-properties.any.worker.html]
[TextDecoderStream readable and writable properties must pass brand checks]
expected: FAIL
[TextEncoderStream readable and writable properties must pass brand checks]
expected: FAIL
[readable-writable-properties.any.sharedworker.html]
[readable-writable-properties]
expected: FAIL

View file

@ -0,0 +1,2 @@
[realms.window.html]
expected: TIMEOUT

View file

@ -0,0 +1,11 @@
[header-value-null-byte.any.html]
[header-value-null-byte.any.sharedworker.html]
[header-value-null-byte]
expected: FAIL
[header-value-null-byte.any.worker.html]
[header-value-null-byte.any.serviceworker.html]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[fetch-in-iframe.html]
expected: CRASH
[Untitled]
expected: FAIL
@ -7,9 +8,13 @@
[Cross-origin fetch in a data: iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
expected: FAIL
[Cross-origin fetch in a data: iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-site' response header.]
expected: FAIL
[Cross-origin fetch in a cross origin iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-origin' response header.]
expected: FAIL
[Cross-origin fetch in a cross origin iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-site' response header.]
expected: FAIL

View file

@ -0,0 +1,10 @@
[cross-site-redirect.tentative.https.sub.html]
[Cross-Site -> Cross-Site redirect]
expected: FAIL
[Cross-Site -> Same-Site redirect]
expected: FAIL
[Cross-Site -> Same-Origin redirect]
expected: FAIL

View file

@ -0,0 +1,4 @@
[multiple-redirect-cross-site.tentative.https.sub.html]
[Same-Origin -> Cross-Site -> Same-Origin redirect]
expected: FAIL

View file

@ -0,0 +1,4 @@
[multiple-redirect-same-site.tentative.https.sub.html]
[Same-Origin -> Same-Site -> Same-Origin redirect]
expected: FAIL

View file

@ -0,0 +1,10 @@
[same-origin-redirect.tentative.https.sub.html]
[Same-Origin -> Cross-Site redirect]
expected: FAIL
[Same-Origin -> Same-Site redirect]
expected: FAIL
[Same-Origin -> Same-Origin redirect]
expected: FAIL

View file

@ -0,0 +1,10 @@
[same-site-redirect.tentative.https.sub.html]
[Same-Site -> Same-Origin redirect]
expected: FAIL
[Same-Site -> Same-Site redirect]
expected: FAIL
[Same-Site -> Cross-Site redirect]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -30,3 +30,6 @@
[Set HTTP URL frame location.protocol to data]
expected: FAIL
[Set HTTP URL frame location.protocol to x]
expected: FAIL

View file

@ -0,0 +1,4 @@
[fieldset-block-formatting-context.html]
[The fieldset element: block formatting context]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-border-gap.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[fieldset-border-radius-hittest.html]
[fieldset, border-radius and hit testing]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-containing-block.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[fieldset-default-style.html]
[fieldset default style]
expected: FAIL

View file

@ -0,0 +1,58 @@
[fieldset-display.html]
[fieldset with display: ruby-text]
expected: FAIL
[fieldset with display: table-footer-group]
expected: FAIL
[fieldset with display: table-column]
expected: FAIL
[fieldset with display: table-row]
expected: FAIL
[fieldset with display: table-cell]
expected: FAIL
[fieldset with display: table]
expected: FAIL
[fieldset with display: list-item]
expected: FAIL
[fieldset with display: flow]
expected: FAIL
[fieldset with display: table-header-group]
expected: FAIL
[fieldset with display: inline-table]
expected: FAIL
[fieldset with display: ruby]
expected: FAIL
[fieldset with display: flow-root]
expected: FAIL
[fieldset with display: ruby-base]
expected: FAIL
[fieldset with display: table-caption]
expected: FAIL
[fieldset with display: run-in]
expected: FAIL
[fieldset with display: table-column-group]
expected: FAIL
[fieldset with display: ruby-base-container]
expected: FAIL
[fieldset with display: table-row-group]
expected: FAIL
[fieldset with display: ruby-text-container]
expected: FAIL

View file

@ -0,0 +1,7 @@
[fieldset-grid.html]
[Inline grid]
expected: FAIL
[Grid]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-list-item.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-overflow-hidden.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-painting-order.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fieldset-vertical.html]
expected: FAIL

View file

@ -0,0 +1,10 @@
[legend-block-formatting-context.html]
[rendered-legend]
expected: FAIL
[in-fieldset-second-child]
expected: FAIL
[in-fieldset-descendant]
expected: FAIL

View file

@ -0,0 +1,73 @@
[legend-display.html]
[rendered legend with display: ruby-base-container]
expected: FAIL
[rendered legend with display: ruby-text-container]
expected: FAIL
[rendered legend with display: flow]
expected: FAIL
[rendered legend with display: flow-root]
expected: FAIL
[rendered legend with display: table-column-group]
expected: FAIL
[rendered legend with display: table-row]
expected: FAIL
[rendered legend with display: table-caption]
expected: FAIL
[rendered legend with display: inline-grid]
expected: FAIL
[rendered legend with display: grid]
expected: FAIL
[rendered legend with display: flex]
expected: FAIL
[rendered legend with display: table-row-group]
expected: FAIL
[rendered legend with display: table-cell]
expected: FAIL
[rendered legend with display: ruby]
expected: FAIL
[rendered legend with display: list-item]
expected: FAIL
[rendered legend with display: table-header-group]
expected: FAIL
[rendered legend with display: table-footer-group]
expected: FAIL
[rendered legend with display: table]
expected: FAIL
[rendered legend with display: inline-flex]
expected: FAIL
[rendered legend with display: run-in]
expected: FAIL
[rendered legend with display: inline-block]
expected: FAIL
[rendered legend with display: ruby-text]
expected: FAIL
[rendered legend with display: ruby-base]
expected: FAIL
[rendered legend with display: inline]
expected: FAIL
[rendered legend with display: table-column]
expected: FAIL

View file

@ -0,0 +1,13 @@
[legend-float-abspos.html]
[dynamic changes to float]
expected: FAIL
[dynamic changes to position]
expected: FAIL
[inserting a new legend and removing it again]
expected: FAIL
[no dynamic changes]
expected: FAIL

View file

@ -0,0 +1,10 @@
[legend-grid-flex-multicol.html]
[multicol]
expected: FAIL
[inline-grid]
expected: FAIL
[grid]
expected: FAIL

View file

@ -0,0 +1,2 @@
[legend-list-item.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[legend-position-relative.html]
expected: FAIL

View file

@ -0,0 +1,7 @@
[legend-sans-fieldset-display.html]
[.ruby]
expected: FAIL
[.rt]
expected: FAIL

View file

@ -0,0 +1,4 @@
[legend.html]
[rendered-legend: width]
expected: FAIL

View file

@ -0,0 +1,16 @@
[min-inline-size.html]
[horizontal-tb ]
expected: FAIL
[vertical-rl ]
expected: FAIL
[vertical-lr ]
expected: FAIL
[vertical-lr override]
expected: FAIL
[vertical-rl override]
expected: FAIL

View file

@ -1,2 +0,0 @@
[script-onerror-insertion-point-2.html]
expected: TIMEOUT

View file

@ -0,0 +1,13 @@
[quirks.window.html]
[document.open() sets document to no-quirks mode (write new doctype)]
expected: FAIL
[document.open() sets document to no-quirks mode, not limited-quirks mode]
expected: FAIL
[document.open() sets document to no-quirks mode (write no doctype)]
expected: FAIL
[document.open() sets document to no-quirks mode (write old doctype)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[readiness.window.html]
[document.open() and readiness]
expected: FAIL

View file

@ -0,0 +1,4 @@
[url-fragment.window.html]
[document.open() and document's URL containing a fragment (entry is not relevant)]
expected: FAIL

View file

@ -0,0 +1,145 @@
[excluded-properties-001.html]
[Property grid-auto-rows does not support quirky length]
expected: FAIL
[Property background-position-x does not support quirky length]
expected: FAIL
[Property scroll-padding-left does not support quirky length]
expected: FAIL
[Property grid-template-rows does not support quirky length]
expected: FAIL
[Property padding-block-end does not support quirky length]
expected: FAIL
[Property inline-size does not support quirky length]
expected: FAIL
[Property padding-inline-end does not support quirky length]
expected: FAIL
[Property scroll-margin-inline-end does not support quirky length]
expected: FAIL
[Property border-bottom-left-radius does not support quirky length]
expected: FAIL
[Property scroll-padding-inline-start does not support quirky length]
expected: FAIL
[Property offset-distance does not support quirky length]
expected: FAIL
[Property grid-auto-columns does not support quirky length]
expected: FAIL
[Property padding-inline-start does not support quirky length]
expected: FAIL
[Property scroll-padding-block-end does not support quirky length]
expected: FAIL
[Property outline-width does not support quirky length]
expected: FAIL
[Property column-rule-width does not support quirky length]
expected: FAIL
[Property scroll-margin-bottom does not support quirky length]
expected: FAIL
[Property grid-template-columns does not support quirky length]
expected: FAIL
[Property perspective does not support quirky length]
expected: FAIL
[Property margin-block-end does not support quirky length]
expected: FAIL
[Property margin-block-start does not support quirky length]
expected: FAIL
[Property scroll-margin-right does not support quirky length]
expected: FAIL
[Property margin-inline-end does not support quirky length]
expected: FAIL
[Property scroll-padding-right does not support quirky length]
expected: FAIL
[Property block-size does not support quirky length]
expected: FAIL
[Property scroll-padding-bottom does not support quirky length]
expected: FAIL
[Property scroll-margin-top does not support quirky length]
expected: FAIL
[Property background-position-y does not support quirky length]
expected: FAIL
[Property border-top-left-radius does not support quirky length]
expected: FAIL
[Property column-width does not support quirky length]
expected: FAIL
[Property min-block-size does not support quirky length]
expected: FAIL
[Property outline-offset does not support quirky length]
expected: FAIL
[Property flex-basis does not support quirky length]
expected: FAIL
[Property scroll-padding-block-start does not support quirky length]
expected: FAIL
[Property padding-block-start does not support quirky length]
expected: FAIL
[Property scroll-margin-block-end does not support quirky length]
expected: FAIL
[Property row-gap does not support quirky length]
expected: FAIL
[Property min-inline-size does not support quirky length]
expected: FAIL
[Property margin-inline-start does not support quirky length]
expected: FAIL
[Property scroll-margin-inline-start does not support quirky length]
expected: FAIL
[Property scroll-padding-top does not support quirky length]
expected: FAIL
[Property border-bottom-right-radius does not support quirky length]
expected: FAIL
[Property scroll-padding-inline-end does not support quirky length]
expected: FAIL
[Property border-top-right-radius does not support quirky length]
expected: FAIL
[Property column-gap does not support quirky length]
expected: FAIL
[Property scroll-margin-block-start does not support quirky length]
expected: FAIL
[Property scroll-margin-left does not support quirky length]
expected: FAIL
[Property shape-margin does not support quirky length]
expected: FAIL

View file

@ -0,0 +1,34 @@
[excluded-properties-002.html]
[Property mask does not support quirky length]
expected: FAIL
[Property background-blend-mode does not support quirky length]
expected: FAIL
[Property transform-origin does not support quirky length]
expected: FAIL
[Property filter does not support quirky length]
expected: FAIL
[Property text-shadow does not support quirky length]
expected: FAIL
[Property clip-path does not support quirky length]
expected: FAIL
[Property column-span does not support quirky length]
expected: FAIL
[Property background-size does not support quirky length]
expected: FAIL
[Property box-shadow does not support quirky length]
expected: FAIL
[Property perspective-origin does not support quirky length]
expected: FAIL
[Property object-position does not support quirky length]
expected: FAIL

View file

@ -1,17 +1,11 @@
[urlencoded-parser.any.html]
[response.formData() with input: a&b&c]
expected: FAIL
[request.formData() with input: a&b&c]
expected: FAIL
[request.formData() with input: &&&a=b&&&&c=d&]
[request.formData() with input: a=b&c=d]
expected: FAIL
[response.formData() with input: &&&a=b&&&&c=d&]
expected: FAIL
[response.formData() with input: a=b&c=d]
[response.formData() with input: _charset_=windows-1252&test=%C2x]
expected: FAIL
@ -22,15 +16,9 @@
[request.formData() with input: a&b&c]
expected: FAIL
[response.formData() with input: a=b&c=d&]
expected: FAIL
[request.formData() with input: a=b&c=d]
expected: FAIL
[response.formData() with input: a=b&c=d]
expected: FAIL
[request.formData() with input: a=b&c=d&]
expected: FAIL
[request.formData() with input: _charset_=windows-1252&test=%C2x]
expected: FAIL

View file

@ -29,10 +29,10 @@
[X gain.gain.setValueCurveAtTime(curve, 1, 0) threw "TypeError" instead of EcmaScript error RangeError.]
expected: FAIL
[X gain.gain.setValueCurveAtTime(\[0,0,0\],1,-1) threw "TypeError" instead of EcmaScript error RangeError.]
[X gain.gain.setValueCurveAtTime([0,0,0\],1,-1) threw "TypeError" instead of EcmaScript error RangeError.]
expected: FAIL
[X gain.gain.setValueCurveAtTime(\[0,0,0\],-1,1) threw "TypeError" instead of EcmaScript error RangeError.]
[X gain.gain.setValueCurveAtTime([0,0,0\],-1,1) threw "TypeError" instead of EcmaScript error RangeError.]
expected: FAIL
[< [special cases 1\] 8 out of 8 assertions were failed.]
@ -53,3 +53,9 @@
[# AUDIT TASK RUNNER FINISHED: 2 out of 6 tasks were failed.]
expected: FAIL
[< [special cases 1\] 9 out of 9 assertions were failed.]
expected: FAIL
[X gain.gain.setValueCurveAtTime(curve, 1, -1) threw "TypeError" instead of EcmaScript error RangeError.]
expected: FAIL

View file

@ -9,3 +9,12 @@
[X () => context.createDelay(-1) threw "TypeError" instead of Delay length cannot be negative.]
expected: FAIL
[X Setting Delay length to negative threw "TypeError" instead of NotSupportedError.]
expected: FAIL
[X Setting Delay length to 0 seconds threw "TypeError" instead of NotSupportedError.]
expected: FAIL
[X Setting Delay length to 180 seconds or more threw "TypeError" instead of NotSupportedError.]
expected: FAIL

View file

@ -1,4 +1,5 @@
[ctor-panner.html]
expected: ERROR
[X context = new OfflineAudioContext(...) incorrectly threw ReferenceError: "OfflineAudioContext is not defined".]
expected: FAIL
@ -20,3 +21,9 @@
[X node6.channelInterpretation is not equal to discrete. Got speakers.]
expected: FAIL
[X node = new PannerNode(c, {"panningModel":"HRTF","positionX":1.4142135623730951,"positionY":2.8284271247461903,"positionZ":4.242640687119286,"orientationX":-1.4142135623730951,"orientationY":-2.8284271247461903,"orientationZ":-4.242640687119286,"distanceModel":"linear","refDistance":3.141592653589793,"maxDistance":6.283185307179586,"rolloffFactor":9.42477796076938,"coneInnerAngle":12.566370614359172,"coneOuterAngle":15.707963267948966,"coneOuterGain":18.84955592153876}) incorrectly threw InvalidStateError: "The object is in an invalid state.".]
expected: FAIL
[X node instanceof PannerNode is not equal to true. Got false.]
expected: FAIL

View file

@ -1,5 +1,4 @@
[sharedworker-in-worker.html]
expected: ERROR
[Base URL in workers: new SharedWorker()]
expected: FAIL

View file

@ -6,15 +6,9 @@
[Header value: \\0hello_world]
expected: FAIL
[Header value: hello\\0world]
expected: FAIL
[Header value: hello_world[tab\]]
expected: FAIL
[Header value: [tab\]hello_world[tab\]]
expected: FAIL
[Header value: \\0]
expected: FAIL

View file

@ -1,2 +0,0 @@
[transition_calc_implicit.html]
expected: TIMEOUT

View file

@ -38,6 +38,13 @@ step_timeout(t.step_func_done(function () {
_assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58");
_assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70");
_assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80");
var tm = ctx.measureText('Hello');
_assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]");
_assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]");
_assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]");
_assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]");
_assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]");
}), 500);

View file

@ -31,11 +31,13 @@ step_timeout(t.step_func_done(function () {
ctx.font = '50px CanvasTest';
ctx.direction = 'ltr';
ctx.align = 'left'
_assertSame(ctx.measureText('A').emHeightAscent, 124, "ctx.measureText('A').emHeightAscent", "124");
_assertSame(Math.abs(ctx.measureText('A').emHeightDescent), 0, "Math.abs(ctx.measureText('A').emHeightDescent)", "0");
_assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5");
_assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5");
_assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50");
_assertSame(ctx.measureText('ABCD').emHeightAscent, 124, "ctx.measureText('ABCD').emHeightAscent", "124");
_assertSame(Math.abs(ctx.measureText('ABCD').emHeightDescent), 0, "Math.abs(ctx.measureText('ABCD').emHeightDescent)", "0");
_assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5");
_assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5");
_assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50");
}), 500);

View file

@ -9,7 +9,6 @@
2d.fillRect: "drawing-rectangles-to-the-canvas"
2d.strokeRect: "drawing-rectangles-to-the-canvas"
2d.text.draw: "drawing-text-to-the-canvas"
2d.text.draw.baseline.alphabetic: "drawing-text-to-the-canvas"
2d.text.draw.space.basic: "drawing-text-to-the-canvas"
2d.text.draw.space.collapse: "drawing-text-to-the-canvas"
2d.text.measure: "drawing-text-to-the-canvas"

View file

@ -1037,6 +1037,13 @@
@assert ctx.measureText('Hello').advances[2] >= 58;
@assert ctx.measureText('Hello').advances[3] >= 70;
@assert ctx.measureText('Hello').advances[4] >= 80;
var tm = ctx.measureText('Hello');
@assert ctx.measureText('Hello').advances[0] === tm.advances[0];
@assert ctx.measureText('Hello').advances[1] === tm.advances[1];
@assert ctx.measureText('Hello').advances[2] === tm.advances[2];
@assert ctx.measureText('Hello').advances[3] === tm.advances[3];
@assert ctx.measureText('Hello').advances[4] === tm.advances[4];
}), 500);
- name: 2d.text.measure.actualBoundingBox
@ -1096,11 +1103,13 @@
ctx.font = '50px CanvasTest';
ctx.direction = 'ltr';
ctx.align = 'left'
@assert ctx.measureText('A').emHeightAscent === 124;
@assert Math.abs(ctx.measureText('A').emHeightDescent) === 0;
@assert ctx.measureText('A').emHeightAscent === 37.5;
@assert ctx.measureText('A').emHeightDescent === 12.5;
@assert ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent === 50;
@assert ctx.measureText('ABCD').emHeightAscent === 124;
@assert Math.abs(ctx.measureText('ABCD').emHeightDescent) === 0;
@assert ctx.measureText('ABCD').emHeightAscent === 37.5;
@assert ctx.measureText('ABCD').emHeightDescent === 12.5;
@assert ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent === 50;
}), 500);
- name: 2d.text.measure.baselines

View file

@ -1,6 +1,5 @@
<!DOCTYPE html>
<title>Aliases enumerated on CSSStyleDeclaration</title>
<link rel="author" title="Anders Hartvoll Ruud" href="andruud@chromium.org">
<link rel="help" href="https://compat.spec.whatwg.org/#css-simple-aliases">
<meta name="assert" content="This test verifies that aliases are enumerated on CSSStyleDeclaration" />

View file

@ -0,0 +1,57 @@
<!doctype html>
<title>-webkit-appearance</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<button id=button>Test</button>
<script>
const button = document.getElementById('button');
// values from https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance
// intersection of Firefox and Chrome.
const values = ["none",
"button",
"button-bevel",
"caret",
"checkbox",
"listbox",
"listitem",
"menulist",
"menulist-button",
"menulist-text",
"menulist-textfield",
"radio",
"searchfield",
"textfield",
];
for (const value of values) {
test(() => {
button.removeAttribute('style');
button.style.setProperty('-webkit-appearance', value);
assert_equals(button.style.WebkitAppearance, value);
assert_equals(button.style.webkitAppearance, value); // lowercase w
const style = getComputedStyle(button);
assert_equals(style.WebkitAppearance, value);
assert_equals(style.webkitAppearance, value); // lowercase w
}, `-webkit-appearance: ${value}`);
}
const invalidValues = ["bogus-button"];
for (const invalidValue of invalidValues) {
test(() => {
button.removeAttribute('style');
button.style.setProperty('-webkit-appearance', invalidValue);
assert_equals(button.style.WebkitAppearance, "");
assert_equals(button.style.webkitAppearance, ""); // lowercase w
const style = getComputedStyle(button);
assert_equals(style.WebkitAppearance, "button");
assert_equals(style.webkitAppearance, "button"); // lowercase w
}, `-webkit-appearance: ${invalidValue} (invalid)`);
}
test(() => {
button.removeAttribute('style');
button.style.setProperty('appearance', 'auto');
assert_equals(button.style.appearance, undefined);
const style = getComputedStyle(button);
assert_equals(style.appearance, undefined);
}, 'appearance');
</script>

View file

@ -9,8 +9,14 @@
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body>
<div id="log"></div>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });

View file

@ -0,0 +1,39 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests cookie charset functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "charset0001", name: "charset0001"},
{file: "charset0002", name: "charset0002"},
{file: "charset0003", name: "charset0003"},
{file: "charset0004", name: "charset0004"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,58 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests chromium cookie functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "chromium0001", name: "chromium0001"},
{file: "chromium0002", name: "chromium0002"},
{file: "chromium0003", name: "chromium0003"},
{file: "chromium0004", name: "chromium0004"},
{file: "chromium0005", name: "chromium0005"},
{file: "chromium0006", name: "chromium0006"},
{file: "chromium0007", name: "chromium0007"},
{file: "chromium0008", name: "chromium0008"},
{file: "chromium0009", name: "chromium0009"},
{file: "chromium0010", name: "chromium0010"},
{file: "chromium0011", name: "chromium0011"},
{file: "chromium0012", name: "chromium0012"},
{file: "chromium0013", name: "chromium0013"},
{file: "chromium0014", name: "chromium0014"},
{file: "chromium0015", name: "chromium0015"},
{file: "chromium0016", name: "chromium0016"},
{file: "chromium0017", name: "chromium0017"},
{file: "chromium0018", name: "chromium0018"},
{file: "chromium0019", name: "chromium0019"},
{file: "disabled-chromium0020", name: "disabled-chromium0020"},
{file: "chromium0021", name: "chromium0021"},
{file: "disabled-chromium0022", name: "disabled-chromium0022"},
{file: "disabled-chromium0023", name: "disabled-chromium0023"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,42 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests cookie setting comma functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "comma0001", name: "comma0001"},
{file: "comma0002", name: "comma0002"},
{file: "comma0003", name: "comma0003"},
{file: "comma0004", name: "comma0004"},
{file: "comma0005", name: "comma0005"},
{file: "comma0006", name: "comma0006"},
{file: "comma0007", name: "comma0007"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,79 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests cookie setting domain functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "domain0001", name: "domain0001"},
{file: "domain0002", name: "domain0002"},
{file: "domain0003", name: "domain0003"},
{file: "domain0004", name: "domain0004"},
{file: "domain0005", name: "domain0005"},
{file: "domain0006", name: "domain0006"},
{file: "domain0007", name: "domain0007"},
{file: "domain0008", name: "domain0008"},
{file: "domain0009", name: "domain0009"},
{file: "domain0010", name: "domain0010"},
{file: "domain0011", name: "domain0011"},
{file: "domain0012", name: "domain0012"},
{file: "domain0013", name: "domain0013"},
{file: "domain0014", name: "domain0014"},
{file: "domain0015", name: "domain0015"},
{file: "domain0016", name: "domain0016"},
{file: "domain0017", name: "domain0017"},
{file: "domain0018", name: "domain0018"},
{file: "domain0019", name: "domain0019"},
{file: "domain0020", name: "domain0020"},
{file: "domain0021", name: "domain0021"},
{file: "domain0022", name: "domain0022"},
{file: "domain0023", name: "domain0023"},
{file: "domain0024", name: "domain0024"},
{file: "domain0025", name: "domain0025"},
{file: "domain0026", name: "domain0026"},
{file: "domain0027", name: "domain0027"},
{file: "domain0028", name: "domain0028"},
{file: "domain0029", name: "domain0029"},
{file: "optional-domain0030", name: "optional-domain0030"},
{file: "domain0031", name: "domain0031"},
{file: "domain0033", name: "domain0033"},
{file: "domain0034", name: "domain0034"},
{file: "domain0035", name: "domain0035"},
{file: "domain0036", name: "domain0036"},
{file: "domain0037", name: "domain0037"},
{file: "domain0038", name: "domain0038"},
{file: "domain0039", name: "domain0039"},
{file: "domain0040", name: "domain0040"},
{file: "domain0041", name: "domain0041"},
{file: "domain0042", name: "domain0042"},
{file: "optional-domain0041", name: "optional-domain0041"},
{file: "optional-domain0042", name: "optional-domain0042"},
{file: "optional-domain0043", name: "optional-domain0043"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -9,8 +9,14 @@
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body>
<div id="log"></div>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });

View file

@ -0,0 +1,52 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "mozilla0001", name: "mozilla0001"},
{file: "mozilla0002", name: "mozilla0002"},
{file: "mozilla0003", name: "mozilla0003"},
{file: "mozilla0004", name: "mozilla0004"},
{file: "mozilla0005", name: "mozilla0005"},
{file: "mozilla0006", name: "mozilla0006"},
{file: "mozilla0007", name: "mozilla0007"},
{file: "mozilla0008", name: "mozilla0008"},
{file: "mozilla0009", name: "mozilla0009"},
{file: "mozilla0010", name: "mozilla0010"},
{file: "mozilla0011", name: "mozilla0011"},
{file: "mozilla0012", name: "mozilla0012"},
{file: "mozilla0013", name: "mozilla0013"},
{file: "mozilla0014", name: "mozilla0014"},
{file: "mozilla0015", name: "mozilla0015"},
{file: "mozilla0016", name: "mozilla0016"},
{file: "mozilla0017", name: "mozilla0017"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "name0001", name: "name0001"},
{file: "name0002", name: "name0002"},
{file: "name0003", name: "name0003"},
{file: "name0004", name: "name0004"},
{file: "name0005", name: "name0005"},
{file: "name0006", name: "name0006"},
{file: "name0007", name: "name0007"},
{file: "name0008", name: "name0008"},
{file: "name0009", name: "name0009"},
{file: "name0010", name: "name0010"},
{file: "name0011", name: "name0011"},
{file: "name0012", name: "name0012"},
{file: "name0013", name: "name0013"},
{file: "name0014", name: "name0014"},
{file: "name0015", name: "name0015"},
{file: "name0016", name: "name0016"},
{file: "name0017", name: "name0017"},
{file: "name0018", name: "name0018"},
{file: "name0019", name: "name0019"},
{file: "name0020", name: "name0020"},
{file: "name0021", name: "name0021"},
{file: "name0022", name: "name0022"},
{file: "name0023", name: "name0023"},
{file: "name0024", name: "name0024"},
{file: "name0025", name: "name0025"},
{file: "name0026", name: "name0026"},
{file: "name0027", name: "name0027"},
{file: "name0028", name: "name0028"},
{file: "name0029", name: "name0029"},
{file: "name0030", name: "name0030"},
{file: "name0031", name: "name0031"},
{file: "name0032", name: "name0032"},
{file: "name0033", name: "name0033"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,36 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "ordering0001", name: "ordering0001"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });
const TEST_CASES = [
{file: "path0001", name: "path0001"},
{file: "path0002", name: "path0002"},
{file: "path0003", name: "path0003"},
{file: "path0004", name: "path0004"},
{file: "path0005", name: "path0005"},
{file: "path0006", name: "path0006"},
{file: "path0007", name: "path0007"},
{file: "path0008", name: "path0008"},
{file: "path0009", name: "path0009"},
{file: "path0010", name: "path0010"},
{file: "path0011", name: "path0011"},
{file: "path0012", name: "path0012"},
{file: "path0013", name: "path0013"},
{file: "path0014", name: "path0014"},
{file: "path0015", name: "path0015"},
{file: "path0016", name: "path0016"},
{file: "path0017", name: "path0017"},
{file: "path0018", name: "path0018"},
{file: "path0019", name: "path0019"},
{file: "path0020", name: "path0020"},
{file: "path0021", name: "path0021"},
{file: "path0022", name: "path0022"},
{file: "path0023", name: "path0023"},
{file: "path0024", name: "path0024"},
{file: "path0025", name: "path0025"},
{file: "path0026", name: "path0026"},
{file: "path0027", name: "path0027"},
{file: "path0028", name: "path0028"},
{file: "disabled-path0029", name: "disabled-path0029"},
{file: "path0029", name: "path0029"},
{file: "path0030", name: "path0030"},
{file: "path0031", name: "path0031"},
{file: "path0032", name: "path0032"},
];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -0,0 +1,79 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="cookie-http-state-template.js"></script>
</head>
<body style="background:#EEE">
<h1>Cookie Tests</h1>
This page is a debug page for cookie tests. To run a test in isolation,
append "?debug=" and the test id to this URL. E.g. to debug "value0001", use
this url:<br>
<a href="cookie-setter.py?debug=value0001">
cookie-setter.py?debug=value0001
</a><br>
<br>
To request, append "?file=" and the file name (stripped of
"-tests.html"). For value0001, this would be:<br>
<a href="cookie-setter.py?file=value0001">
cookie-setter.py?file=value0001
</a><br>
<br>
Please note, the general tests are one level higher:<br>
<a href="../attribute-tests.html"> ../attribute-tests.html </a><br>
<a href="../charset-tests.html"> ../charset-tests.html </a><br>
<a href="../chromium-tests.html"> ../chromium-tests.html </a><br>
<a href="../comma-tests.html"> ../comma-tests.html </a><br>
<a href="../domain-tests.html"> ../domain-tests.html </a><br>
<a href="../general-tests.html"> ../general-tests.html </a><br>
<a href="../mozilla-tests.html"> ../mozilla-tests.html </a><br>
<a href="../name-tests.html"> ../name-tests.html </a><br>
<a href="../ordering-tests.html"> ../ordering-tests.html </a><br>
<a href="../path-tests.html"> ../path-tests.html </a><br>
<a href="../value-tests.html"> ../value-tests.html </a><br>
<h2>Current Cookies</h2>
These are all cookies, currently set by the browser for this domain: <br>
<span id="cookies">(None)</span>
<script type="text/javascript">
setInterval(() => {
document.getElementById("cookies").textContent =
document.cookie || "(None)";
}, 500);
</script>
<h2>All Tests</h2>
Below, all tests are running. The Log contains messages (e.g. when cookies
are left over) and the IFrames list preserves all requested files and shows
which cookies were expected to show. <br>
<h3>Log</h3>
<div id="log" style="height:50px; overflow-y:scroll; background: #FFF">
</div>
<h3>IFrames</h3>
<div id="iframes" style="height:170px; overflow-y:scroll; background: #FFF">
</div>
<h3>Test Results</h3>
<!-- No element should come after this - the test harness appends the result
here when it finished running all of them. -->
<script type="text/javascript">
setup({ explicit_timeout: true });
const TEST_CASES = [%s];
for (const i in TEST_CASES) {
const t = TEST_CASES[i];
promise_test(createCookieTest(t.file),
t.file + " - " + t.name,
{ timeout: 3000 });
}
</script>
</body>
</html>

View file

@ -1,16 +1,32 @@
const SERVER_LOCATION = "resources";
const SERVER_SCRIPT = SERVER_LOCATION + "/cookie-setter.py";
/* Adds a div with "<time> [<tag>] - <message>" to the "#log" container.*/
function log(message, tag) {
let log_str = document.createElement('div');
log_str.textContent = new Date().toTimeString().replace(/\s.+$/, '');
if (tag) {
log_str.textContent += " [" + tag + "] ";
}
log_str.textContent += " - " + message;
let log_container = document.getElementById("log");
log_container.appendChild(log_str);
log_container.scrollTo(0, log_container.scrollHeight);
}
/* Removes the "Cookie: " prefix and strip any leading or trailing whitespace.*/
function stripPrefixAndWhitespace(cookie_text) {
return cookie_text.replace(/^Cookie: /, '').replace(/^\s+|\s+$/g, '');
}
/* Returns the absolute path of the resource folder, ignoring any navigation. */
function getLocalResourcesPath() {
let replace = "(" + SERVER_LOCATION + "\/)*"; // Redundant location.
replace += "[^\/]*$"; // Everything after the last "/".
return location.pathname.replace(new RegExp(replace), "") + SERVER_LOCATION;
}
/* Returns the absolute server location ignoring any navgation.*/
function getAbsoluteServerLocation() {
// Replace the server location and everything coming after it ...
let replace = SERVER_LOCATION + ".*$";
@ -18,6 +34,7 @@ function getAbsoluteServerLocation() {
return getLocalResourcesPath().replace(new RegExp(replace),'')+ SERVER_SCRIPT;
}
/* Expires a cookie by name by setting it's expiry date into the past.*/
function expireCookie(name, expiry_date, path) {
name = name || "";
expiry_date = expiry_date || "Thu, 01 Jan 1970 00:00:00 UTC";
@ -25,10 +42,16 @@ function expireCookie(name, expiry_date, path) {
document.cookie = name + "=; expires=" + expiry_date + "; path=" + path + ";";
}
/* Captures a snapshot of cookies with |parse| and allows to diff it with a
second snapshot with |diffWith|. This allows to run tests even if cookies were
previously set that would mess with the expected final set of Cookies.
With |resetCookies|, all cookies set between first and second snapshot are
expired. */
function CookieManager() {
this.initial_cookies = [];
}
/* Creates a snapshot of the current given document cookies.*/
CookieManager.prototype.parse = document_cookies => {
this.initial_cookies = [];
document_cookies = document_cookies.replace(/^Cookie: /, '');
@ -37,22 +60,25 @@ CookieManager.prototype.parse = document_cookies => {
}
}
/* Creates a diff of newly added cookies between the initial snapshot and the
newly given cookies. The diff is stored for cleaning purposes. A second call
will replace the the stored diff entirely.*/
CookieManager.prototype.diffWith = document_cookies => {
this.actual_cookies = document_cookies;
for (let i in initial_cookies) {
let no_spaces_cookie_regex =
new RegExp(/\s*[\;]*\s/.source + initial_cookies[i]);
this.actual_cookies = actual_cookies.replace(no_spaces_cookie_regex, '');
new RegExp(/\s*[\;]*\s/.source + initial_cookies[i].replace(/\\/, "\\\\"));
this.actual_cookies = this.actual_cookies.replace(no_spaces_cookie_regex, '');
}
return this.actual_cookies;
}
/* Cleans cookies between the first and the second snapshot.
Some tests might set cookies to the root path or cookies without key. Both cases
are dropped here.*/
CookieManager.prototype.resetCookies = () => {
expireCookie(/*name=*/""); // If a cookie without keys was accepted, drop it.
if (this.actual_cookies == "") {
return; // There is nothing to reset here.
}
let cookies_to_delete = this.actual_cookies.split(/\s*;\s*/)
// If a cookie without keys was accepted, drop it additionally.
let cookies_to_delete = [""].concat(this.actual_cookies.split(/\s*;\s*/))
for (let i in cookies_to_delete){
expireCookie(cookies_to_delete[i].replace(/=.*$/, ""));
// Drop cookies with same name that were set to the root path which happens
@ -63,14 +89,27 @@ CookieManager.prototype.resetCookies = () => {
}
}
/* Returns a new cookie test.
The test creates an iframe where a |file| from the cookie-setter.py is loaded.
This sets cookies which are diffed with an initial cookie snapshot and compared
to the expectation that the server returned.
Finally, it cleans up newly set cookies and all cookies in the root path or
without key. */
function createCookieTest(file) {
return t => {
let iframe_container = document.getElementById("iframes");
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
iframe_container.appendChild(iframe);
iframe_container.scrollTo(0, iframe_container.scrollHeight);
let diff_tool = new CookieManager();
t.add_cleanup(diff_tool.resetCookies);
return new Promise((resolve, reject) => {
diff_tool.parse(document.cookie);
if (diff_tool.initial_cookies.length > 0) {
// The cookies should ideally be empty. If that isn't the case, log it.
//Cookies with equal keys (e.g. foo=) may have unwanted side-effects.
log("Run with existing cookies: " + diff_tool.initial_cookies, file);
}
window.addEventListener("message", t.step_func(e => {
assert_true(!!e.data, "Message contains data")
resolve(e.data);

View file

@ -1,5 +1,17 @@
from os import path;
from os import path
from os import listdir
"""
The main purpose of this script is to set cookies based on files in this folder:
cookies/http-state/resources
If a wpt server is running, navigate to
http://<server>/cookies/http-state/resources/cookie-setter.py
which will run all cookie tests and explain the usage of this script in detail.
If you want to run a test in isolation, append "?debug=" and the test id to the
URL above.
"""
SETUP_FILE_TEMPLATE = "{}-test"
EXPECTATION_FILE_TEMPLATE = "{}-expected"
@ -7,13 +19,18 @@ EXPECTATION_HTML_SCAFFOLD = "iframe-expectation-doc.html.py-str"
DEBUGGING_HTML_SCAFFOLD = "debugging-single-test.html.py-str"
DEFAULT_RESOURCE_DIR = path.join("cookies", "http-state", "resources")
DEFAULT_TEST_DIR = "test-files"
ALL_TESTS = "all-tests.html.py-str"
def dump_file(directory, filename):
"""Reads a file into a string."""
return open(path.join(directory, filename), "r").read()
class CookieTestResponse(object):
"""Loads the Set-Cookie header from a given file name. Relies on the naming
convention that ever test file is called '<test_id>-test' and every
expectation is called '<test_id>-expected'."""
def __init__(self, file, root):
super(CookieTestResponse, self).__init__()
self.__test_file = SETUP_FILE_TEMPLATE.format(file)
@ -22,16 +39,36 @@ class CookieTestResponse(object):
self.__test_files_dir = path.join(self.__resources_dir, DEFAULT_TEST_DIR)
def cookie_setting_header(self):
"""Returns the loaded header."""
return dump_file(self.__test_files_dir, self.__test_file)
def body_with_expectation(self):
"""Returns a full HTML document which contains the expectation."""
html_frame = dump_file(self.__resources_dir, EXPECTATION_HTML_SCAFFOLD)
expected_data = dump_file(self.__test_files_dir, self.__expectation_file);
expected_data = dump_file(self.__test_files_dir, self.__expectation_file)
return html_frame.format(**{'data' : expected_data})
def find_all_test_files(root):
"""Retrieves all files from the test-files/ folder and returns them as
string pair as used in the JavaScript object. Sorted by filename."""
all_files = []
line_template = '{{file: "{filename}", name: "{filename}"}},'
for file in listdir(path.join(root, DEFAULT_RESOURCE_DIR, DEFAULT_TEST_DIR)):
if file.endswith('-test'):
name = file.replace('-test', '')
all_files.append(line_template.format(**{'filename' : name}))
all_files.sort()
return all_files
def generate_for_all_tests(root):
"""Returns an HTML document which loads and executes all tests in the
test-files/ directory."""
html_frame = dump_file(path.join(root, DEFAULT_RESOURCE_DIR), ALL_TESTS)
return html_frame % '\n'.join(find_all_test_files(root))
def main(request, response):
if "debug" in request.GET:
"""If '?debug=' is set, return the document for a single test."""
response.writer.write_status(200)
response.writer.end_headers()
html_frame = dump_file(path.join(request.doc_root, DEFAULT_RESOURCE_DIR),
@ -40,15 +77,18 @@ def main(request, response):
response.writer.write_content(test_file)
return;
if not "file" in request.GET:
response.writer.write_status(404)
if "file" in request.GET:
"""If '?file=' is set, send a cookie and a document which contains the
expectation of which cookies should be set by the browser in response."""
cookie_response = CookieTestResponse(request.GET['file'], request.doc_root)
response.writer.write_status(200)
response.writer.write(cookie_response.cookie_setting_header())
response.writer.end_headers()
response.writer.write_content("The 'file' parameter is missing!")
response.writer.write_content(cookie_response.body_with_expectation())
return;
cookie_response = CookieTestResponse(request.GET['file'], request.doc_root)
"""Without any arguments, return documentation and run all available tests."""
response.writer.write_status(200)
response.writer.write(cookie_response.cookie_setting_header())
response.writer.end_headers()
response.writer.write_content(cookie_response.body_with_expectation())
response.writer.write_content(generate_for_all_tests(request.doc_root))

View file

@ -8,9 +8,19 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="cookie-http-state-template.js"></script>
<style type="text/css">
.scrollable {
height:150px;
overflow-y:scroll;
}
</style>
</head>
<body>
<div id="log"></div>
<h3>Log</h3>
<div id="log" class="scrollable"></div>
<h3>IFrame</h3>
<div id="iframes" class="toggleable scrollable"></div>
<h3>Test Results</h3>
<script>
setup({ explicit_timeout: true });

View file

@ -0,0 +1 @@
Cookie: foo=春节回家路·春运完全手册

View file

@ -0,0 +1 @@
Set-Cookie: foo=春节回家路·春运完全手册

View file

@ -0,0 +1 @@
Cookie: 春节回=家路·春运完全手册

View file

@ -0,0 +1 @@
Set-Cookie: 春节回=家路·春运完全手册

View file

@ -0,0 +1 @@
Cookie: 春节回=家路·春运

View file

@ -0,0 +1 @@
Set-Cookie: 春节回=家路·春运; 完全手册

View file

@ -0,0 +1 @@
Cookie: foo="春节回家路·春运完全手册"

View file

@ -0,0 +1 @@
Set-Cookie: foo="春节回家路·春运完全手册"

Some files were not shown because too many files have changed in this diff Show more