mirror of
https://github.com/servo/servo.git
synced 2025-06-28 19:13:41 +01:00
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:
commit
aa61200eca
844 changed files with 19802 additions and 3093 deletions
|
@ -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
|
@ -1,2 +0,0 @@
|
|||
[floats-in-table-caption-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[anonymous-inline-inherit-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[line-height-204.html]
|
||||
expected: FAIL
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[css3-text-line-break-opclns-050.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[css3-text-line-break-opclns-054.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[css3-text-line-break-opclns-059.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[css3-text-line-break-opclns-164.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[css3-text-line-break-opclns-165.html]
|
||||
expected: FAIL
|
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[css-transforms-3d-on-anonymous-block-001.html]
|
||||
expected: FAIL
|
|
@ -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
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
[parser-sets-attributes-and-children.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
17
tests/wpt/metadata/encoding/streams/backpressure.any.js.ini
Normal file
17
tests/wpt/metadata/encoding/streams/backpressure.any.js.ini
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
||||
|
35
tests/wpt/metadata/encoding/streams/decode-utf8.any.js.ini
Normal file
35
tests/wpt/metadata/encoding/streams/decode-utf8.any.js.ini
Normal 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
|
||||
|
|
@ -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
|
125
tests/wpt/metadata/encoding/streams/encode-utf8.any.js.ini
Normal file
125
tests/wpt/metadata/encoding/streams/encode-utf8.any.js.ini
Normal 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
|
|
@ -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
|
||||
|
2
tests/wpt/metadata/encoding/streams/realms.window.js.ini
Normal file
2
tests/wpt/metadata/encoding/streams/realms.window.js.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[realms.window.html]
|
||||
expected: TIMEOUT
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[multiple-redirect-cross-site.tentative.https.sub.html]
|
||||
[Same-Origin -> Cross-Site -> Same-Origin redirect]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[multiple-redirect-same-site.tentative.https.sub.html]
|
||||
[Same-Origin -> Same-Site -> Same-Origin redirect]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
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,4 @@
|
|||
[fieldset-block-formatting-context.html]
|
||||
[The fieldset element: block formatting context]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-border-gap.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[fieldset-border-radius-hittest.html]
|
||||
[fieldset, border-radius and hit testing]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-containing-block.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[fieldset-default-style.html]
|
||||
[fieldset default style]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[fieldset-grid.html]
|
||||
[Inline grid]
|
||||
expected: FAIL
|
||||
|
||||
[Grid]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-list-item.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-overflow-hidden.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-painting-order.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[fieldset-vertical.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,10 @@
|
|||
[legend-block-formatting-context.html]
|
||||
[rendered-legend]
|
||||
expected: FAIL
|
||||
|
||||
[in-fieldset-second-child]
|
||||
expected: FAIL
|
||||
|
||||
[in-fieldset-descendant]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[legend-grid-flex-multicol.html]
|
||||
[multicol]
|
||||
expected: FAIL
|
||||
|
||||
[inline-grid]
|
||||
expected: FAIL
|
||||
|
||||
[grid]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[legend-list-item.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[legend-position-relative.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,7 @@
|
|||
[legend-sans-fieldset-display.html]
|
||||
[.ruby]
|
||||
expected: FAIL
|
||||
|
||||
[.rt]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[legend.html]
|
||||
[rendered-legend: width]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -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
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[readiness.window.html]
|
||||
[document.open() and readiness]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[url-fragment.window.html]
|
||||
[document.open() and document's URL containing a fragment (entry is not relevant)]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[sharedworker-in-worker.html]
|
||||
expected: ERROR
|
||||
[Base URL in workers: new SharedWorker()]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" />
|
||||
|
||||
|
|
57
tests/wpt/web-platform-tests/compat/webkit-appearance.html
Normal file
57
tests/wpt/web-platform-tests/compat/webkit-appearance.html
Normal 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>
|
|
@ -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 });
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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 });
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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);
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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 });
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Cookie: foo=春节回家路·春运完全手册
|
|
@ -0,0 +1 @@
|
|||
Set-Cookie: foo=春节回家路·春运完全手册
|
|
@ -0,0 +1 @@
|
|||
Cookie: 春节回=家路·春运完全手册
|
|
@ -0,0 +1 @@
|
|||
Set-Cookie: 春节回=家路·春运完全手册
|
|
@ -0,0 +1 @@
|
|||
Cookie: 春节回=家路·春运
|
|
@ -0,0 +1 @@
|
|||
Set-Cookie: 春节回=家路·春运; 完全手册
|
|
@ -0,0 +1 @@
|
|||
Cookie: foo="春节回家路·春运完全手册"
|
|
@ -0,0 +1 @@
|
|||
Set-Cookie: foo="春节回家路·春运完全手册"
|
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