Update web-platform-tests to revision 7b078f0d6ff82157c57f343838f61b5200686e53

This commit is contained in:
WPT Sync Bot 2018-10-29 22:02:09 -04:00
parent 2f8dc65519
commit 5682eb7930
39 changed files with 1136 additions and 338 deletions

View file

@ -34,6 +34,3 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -188569,6 +188569,18 @@
{}
]
],
"html/rendering/replaced-elements/the-select-element/select-1-line-height.html": [
[
"/html/rendering/replaced-elements/the-select-element/select-1-line-height.html",
[
[
"/html/rendering/replaced-elements/the-select-element/select-1-line-height-ref.html",
"=="
]
],
{}
]
],
"html/rendering/the-css-user-agent-style-sheet-and-presentational-hints/body-bgcolor-attribute-change.html": [
[
"/html/rendering/the-css-user-agent-style-sheet-and-presentational-hints/body-bgcolor-attribute-change.html",
@ -190649,6 +190661,18 @@
{}
]
],
"svg/linking/reftests/use-hidden-attr-change.html": [
[
"/svg/linking/reftests/use-hidden-attr-change.html",
[
[
"/svg/linking/reftests/use-descendant-combinator-ref.html",
"=="
]
],
{}
]
],
"svg/painting/currentColor-override-pserver-fallback.svg": [
[
"/svg/painting/currentColor-override-pserver-fallback.svg",
@ -291810,6 +291834,11 @@
{}
]
],
"html/rendering/replaced-elements/the-select-element/select-1-line-height-ref.html": [
[
{}
]
],
"html/rendering/replaced-elements/tools/gen-svgsizing-tests.py": [
[
{}
@ -334422,6 +334451,12 @@
{}
]
],
"css/CSS2/abspos/abspos-in-block-in-inline-in-relpos-inline.html": [
[
"/css/CSS2/abspos/abspos-in-block-in-inline-in-relpos-inline.html",
{}
]
],
"css/CSS2/floats/zero-space-between-floats-001.html": [
[
"/css/CSS2/floats/zero-space-between-floats-001.html",
@ -346014,6 +346049,12 @@
{}
]
],
"css/filter-effects/inheritance.html": [
[
"/css/filter-effects/inheritance.html",
{}
]
],
"css/filter-effects/interfaces.any.js": [
[
"/css/filter-effects/interfaces.any.html",
@ -346724,6 +346765,12 @@
{}
]
],
"css/selectors/invalidation/where.html": [
[
"/css/selectors/invalidation/where.html",
{}
]
],
"css/selectors/matches-nested.html": [
[
"/css/selectors/matches-nested.html",
@ -471143,6 +471190,10 @@
"129263ecb7d972fa85974e0423ba59645b2b0424",
"reftest"
],
"css/CSS2/abspos/abspos-in-block-in-inline-in-relpos-inline.html": [
"4b1baff8b956d706b2f90e67277ccf3a7c4d3458",
"testharness"
],
"css/CSS2/abspos/between-float-and-text.html": [
"b4c933e8d8021ed357d9942d2f44b7cd44abbf76",
"reftest"
@ -555912,15 +555963,15 @@
"testharness"
],
"css/css-properties-values-api/registered-property-computation.html": [
"1651295cba45af823a4c5c2b7074dc361308847b",
"180cdf601edd4a82398d29239141bf38e55bd0c1",
"testharness"
],
"css/css-properties-values-api/registered-property-cssom.html": [
"019778e95e03689aaab5e47a0fd6be2382f3fb99",
"59443b3323a89f64e2ae5b07508819b2872ead12",
"testharness"
],
"css/css-properties-values-api/registered-property-initial.html": [
"d655af661f7fd95ed0289cddb9c5546467d28592",
"24543d5c5fdc84706a28502d8cf8c2c7f925978e",
"testharness"
],
"css/css-properties-values-api/resources/utils.js": [
@ -584515,6 +584566,10 @@
"9ecef28aa54d133dfaea55551dbed91305cf9d0e",
"reftest"
],
"css/filter-effects/inheritance.html": [
"2bd854ac051d78048e2d83b681d346762d9c5728",
"testharness"
],
"css/filter-effects/interfaces.any.js": [
"e7de16e8d62904986610a484b046a4caf0f161e3",
"testharness"
@ -585663,6 +585718,10 @@
"41778239518d4d9b602f7fc18ee3ea5c910da85b",
"reftest"
],
"css/selectors/invalidation/where.html": [
"1c6432f46eb4f2b424fdd3ca9c453925a23710ed",
"testharness"
],
"css/selectors/matches-nested.html": [
"b82d43d09017955af2904f6362e858929a6d4399",
"testharness"
@ -597036,7 +597095,7 @@
"support"
],
"docs/introduction.md": [
"0e3b5915090471a45bc158a6549e2217a19cfa17",
"191e76d39970eab49f4717a6a9838d1590255abc",
"support"
],
"dom/META.yml": [
@ -614135,6 +614194,14 @@
"3b8d992cc2a07dfd902dbb1011e2c348e862baaa",
"reftest"
],
"html/rendering/replaced-elements/the-select-element/select-1-line-height-ref.html": [
"26e5f33282192b10f56cd66fefeda2c1b9d9b389",
"support"
],
"html/rendering/replaced-elements/the-select-element/select-1-line-height.html": [
"e6383f089ffa5550005f99257ecac7984dd09110",
"reftest"
],
"html/rendering/replaced-elements/tools/gen-svgsizing-tests.py": [
"5ba69f8ab5ba0a74810c570d9a4f3d7ddd90a3ba",
"support"
@ -636796,7 +636863,7 @@
"support"
],
"performance-timeline/webtiming-resolution.any.js": [
"4031388a3bce39692e68292596d30864f5dfbaff",
"46e0489352f09767dc847615bd64464946f9088e",
"testharness"
],
"performance-timeline/worker-with-performance-observer.html": [
@ -636844,7 +636911,7 @@
"testharness"
],
"picture-in-picture/picture-in-picture-window.html": [
"6d14cf54c71bd3ec30e0818e0af0713562c4cfcf",
"47b8133274276b407e854bfffc7362fb37777e21",
"testharness"
],
"picture-in-picture/request-picture-in-picture-twice.html": [
@ -646512,7 +646579,7 @@
"support"
],
"resources/idlharness.js": [
"9e6ed236b0a43f32ffaecbbbb2b8fbe7540b83c5",
"40a5fa59cd209d12e6d42dcdff92c4974ae49cf2",
"support"
],
"resources/idlharness.js.headers": [
@ -655795,6 +655862,10 @@
"dae3fc1173b9280de8959edff3d5991a8b4c7593",
"support"
],
"svg/linking/reftests/use-hidden-attr-change.html": [
"4fe535bbac11a457cdd4d9187498e4a9f3bf6f8d",
"reftest"
],
"svg/linking/scripted/a-download-click.svg": [
"b728603d547582b15ff6b0d32bc39e8021fa2bae",
"testharness"
@ -662404,7 +662475,7 @@
"support"
],
"tools/wptserve/tests/functional/test_response.py": [
"daf8e6ed0028502f0876159cbda37e9ac6b6c99c",
"4e1e053d01971477d259c8e8d0e67552f81753bb",
"support"
],
"tools/wptserve/tests/functional/test_server.py": [

View file

@ -0,0 +1,4 @@
[abspos-in-block-in-inline-in-relpos-inline.html]
[Make sure that we're sized by the right ancestor]
expected: FAIL

View file

@ -44,9 +44,6 @@
[Matching font-weight: '500' should prefer '500' over '450 460']
expected: FAIL
[Matching font-weight: '500' should prefer '450 460' over '400']
expected: FAIL
[Matching font-weight: '500' should prefer '400' over '350 399']
expected: FAIL

View file

@ -1,5 +1,4 @@
[properties-value-inherit-002.html]
expected: TIMEOUT
[background-position length(pt) / values]
expected: FAIL
@ -55,7 +54,7 @@
expected: FAIL
[outline-width length(px) / values]
expected: TIMEOUT
expected: FAIL
[border-left-width length(em) / values]
expected: FAIL
@ -70,13 +69,13 @@
expected: FAIL
[opacity number[0,1\](zero-to-one) / values]
expected: TIMEOUT
expected: FAIL
[line-height number(integer) / values]
expected: FAIL
[outline-offset length(px) / values]
expected: TIMEOUT
expected: FAIL
[font-size length(pt) / values]
expected: FAIL
@ -85,7 +84,7 @@
expected: FAIL
[vertical-align length(in) / values]
expected: TIMEOUT
expected: FAIL
[max-height percentage(%) / values]
expected: FAIL
@ -112,7 +111,7 @@
expected: FAIL
[vertical-align percentage(%) / values]
expected: TIMEOUT
expected: FAIL
[border-right-width length(pc) / values]
expected: FAIL
@ -133,10 +132,10 @@
expected: FAIL
[vertical-align length(em) / values]
expected: TIMEOUT
expected: FAIL
[clip rectangle(rectangle) / values]
expected: TIMEOUT
expected: FAIL
[word-spacing length(em) / values]
expected: FAIL
@ -157,7 +156,7 @@
expected: FAIL
[outline-offset length(ex) / values]
expected: TIMEOUT
expected: FAIL
[min-width length(cm) / values]
expected: FAIL
@ -172,16 +171,16 @@
expected: FAIL
[vertical-align length(pc) / values]
expected: TIMEOUT
expected: FAIL
[vertical-align length(cm) / values]
expected: TIMEOUT
expected: FAIL
[max-height length(ex) / values]
expected: FAIL
[vertical-align length(ex) / values]
expected: TIMEOUT
expected: FAIL
[min-height percentage(%) / values]
expected: FAIL
@ -190,7 +189,7 @@
expected: FAIL
[outline-offset length(mm) / values]
expected: TIMEOUT
expected: FAIL
[font-weight font-weight(keyword) / values]
expected: FAIL
@ -199,7 +198,7 @@
expected: FAIL
[outline-offset length(pt) / values]
expected: TIMEOUT
expected: FAIL
[line-height length(mm) / values]
expected: FAIL
@ -232,7 +231,7 @@
expected: FAIL
[vertical-align length(pt) / values]
expected: TIMEOUT
expected: FAIL
[border-left-color color(rgba) / values]
expected: FAIL
@ -295,10 +294,10 @@
expected: FAIL
[outline-offset length(in) / values]
expected: TIMEOUT
expected: FAIL
[outline-width length(pt) / values]
expected: TIMEOUT
expected: FAIL
[border-top-width length(pc) / values]
expected: FAIL
@ -316,7 +315,7 @@
expected: FAIL
[outline-width length(in) / values]
expected: TIMEOUT
expected: FAIL
[word-spacing length(pt) / values]
expected: FAIL
@ -328,7 +327,7 @@
expected: FAIL
[outline-color color(rgba) / values]
expected: TIMEOUT
expected: FAIL
[border-right-width length(pt) / values]
expected: FAIL
@ -346,7 +345,7 @@
expected: FAIL
[outline-width length(ex) / values]
expected: TIMEOUT
expected: FAIL
[font-size length(pc) / values]
expected: FAIL
@ -355,7 +354,7 @@
expected: FAIL
[outline-width length(cm) / values]
expected: TIMEOUT
expected: FAIL
[max-width percentage(%) / values]
expected: FAIL
@ -370,19 +369,19 @@
expected: FAIL
[outline-width length(mm) / values]
expected: TIMEOUT
expected: FAIL
[border-left-width length(pc) / values]
expected: FAIL
[outline-width length(pc) / values]
expected: TIMEOUT
expected: FAIL
[font-weight font-weight(numeric) / values]
expected: FAIL
[vertical-align length(px) / values]
expected: TIMEOUT
expected: FAIL
[letter-spacing length(px) / values]
expected: FAIL
@ -403,7 +402,7 @@
expected: FAIL
[outline-width length(em) / values]
expected: TIMEOUT
expected: FAIL
[border-right-width length(em) / values]
expected: FAIL
@ -415,10 +414,10 @@
expected: FAIL
[outline-offset length(em) / values]
expected: TIMEOUT
expected: FAIL
[outline-offset length(cm) / values]
expected: TIMEOUT
expected: FAIL
[border-top-width length(ex) / values]
expected: FAIL
@ -427,13 +426,13 @@
expected: FAIL
[z-index integer(integer) / values]
expected: TIMEOUT
expected: FAIL
[border-left-width length(pt) / values]
expected: FAIL
[vertical-align length(mm) / values]
expected: TIMEOUT
expected: FAIL
[border-bottom-width length(pc) / values]
expected: FAIL
@ -451,7 +450,7 @@
expected: FAIL
[outline-offset length(pc) / values]
expected: TIMEOUT
expected: FAIL
[max-height length(pc) / values]
expected: FAIL
@ -471,156 +470,42 @@
[word-spacing length(mm) / values]
expected: FAIL
[height length(mm) / values]
expected: FAIL
[word-spacing length(in) / values]
expected: FAIL
[word-spacing length(cm) / values]
expected: FAIL
[right length(pc) / values]
[text-indent length(pc) / values]
expected: FAIL
[outline-width length(pc) / events]
expected: TIMEOUT
[height percentage(%) / values]
[text-indent length(ex) / values]
expected: FAIL
[vertical-align length(px) / events]
expected: TIMEOUT
[outline-offset length(mm) / events]
expected: TIMEOUT
[vertical-align length(in) / events]
expected: TIMEOUT
[padding-left length(px) / values]
[text-indent length(px) / values]
expected: FAIL
[vertical-align length(em) / events]
expected: TIMEOUT
[vertical-align length(cm) / events]
expected: TIMEOUT
[margin-bottom length(pt) / values]
[text-indent length(mm) / values]
expected: FAIL
[outline-offset length(cm) / events]
expected: TIMEOUT
[vertical-align length(mm) / events]
expected: TIMEOUT
[outline-offset length(em) / events]
expected: TIMEOUT
[z-index integer(integer) / events]
expected: TIMEOUT
[height length(px) / values]
[text-indent length(cm) / values]
expected: FAIL
[vertical-align length(ex) / events]
expected: TIMEOUT
[outline-width length(em) / events]
expected: TIMEOUT
[visibility visibility(keyword) / events]
expected: TIMEOUT
[opacity number[0,1\](zero-to-one) / events]
expected: TIMEOUT
[right length(ex) / values]
[text-indent length(pt) / values]
expected: FAIL
[right length(mm) / values]
[text-shadow shadow(shadow) / values]
expected: FAIL
[visibility visibility(keyword) / values]
expected: TIMEOUT
[outline-width length(cm) / events]
expected: TIMEOUT
[padding-right length(ex) / values]
[word-spacing percentage(%) / values]
expected: FAIL
[clip rectangle(rectangle) / events]
expected: TIMEOUT
[margin-left length(pt) / values]
[text-indent length(in) / values]
expected: FAIL
[outline-width length(ex) / events]
expected: TIMEOUT
[outline-width length(mm) / events]
expected: TIMEOUT
[width length(mm) / values]
[text-indent length(em) / values]
expected: FAIL
[vertical-align percentage(%) / events]
expected: TIMEOUT
[outline-width length(pt) / events]
expected: TIMEOUT
[outline-color color(rgba) / events]
expected: TIMEOUT
[height length(pt) / values]
[text-indent percentage(%) / values]
expected: FAIL
[outline-width length(in) / events]
expected: TIMEOUT
[margin-right length(cm) / values]
expected: FAIL
[padding-right length(px) / values]
expected: FAIL
[outline-offset length(ex) / events]
expected: TIMEOUT
[vertical-align length(pc) / events]
expected: TIMEOUT
[vertical-align length(pt) / events]
expected: TIMEOUT
[width length(ex) / values]
expected: FAIL
[outline-offset length(pt) / events]
expected: TIMEOUT
[margin-top length(pc) / values]
expected: FAIL
[right length(pt) / values]
expected: FAIL
[height length(ex) / values]
expected: FAIL
[outline-offset length(px) / events]
expected: TIMEOUT
[outline-offset length(in) / events]
expected: TIMEOUT
[outline-width length(px) / events]
expected: TIMEOUT
[outline-offset length(pc) / events]
expected: TIMEOUT

View file

@ -80,54 +80,42 @@
[border-left-width end]
expected: FAIL
[left end]
expected: FAIL
[width end]
expected: FAIL
[outline-color end]
expected: FAIL
[line-height end]
expected: FAIL
[margin-right intermediate]
expected: FAIL
[padding-top intermediate]
expected: FAIL
[color end]
expected: FAIL
[border-spacing end]
expected: FAIL
[text-indent end]
expected: FAIL
[width intermediate]
expected: FAIL
[outline-width end]
expected: FAIL
[padding-left end]
expected: FAIL
[font-size end]
expected: FAIL
[text-shadow end]
expected: FAIL
[vertical-align end]
expected: FAIL
[border-right-color end]
expected: FAIL
[border-top-color end]
[margin-right end]
expected: FAIL
[max-width end]
expected: FAIL
[height end]
expected: FAIL
[bottom end]
expected: FAIL
[top end]
expected: FAIL
[font-weight end]
expected: FAIL
[border-left-color end]
expected: FAIL
[margin-bottom end]
expected: FAIL
[border-right-width end]
expected: FAIL
[padding-bottom intermediate]
expected: FAIL

View file

@ -0,0 +1,31 @@
[inheritance.html]
[Property color-interpolation-filters has initial value linearrgb]
expected: FAIL
[Property flood-color does not inherit]
expected: FAIL
[Property lighting-color does not inherit]
expected: FAIL
[Property color-interpolation-filters inherits]
expected: FAIL
[Property lighting-color has initial value rgb(255, 255, 255)]
expected: FAIL
[Property flood-opacity does not inherit]
expected: FAIL
[Property flood-opacity has initial value 1]
expected: FAIL
[Property filter does not inherit]
expected: FAIL
[Property filter has initial value none]
expected: FAIL
[Property flood-color has initial value rgb(0, 0, 0)]
expected: FAIL

View file

@ -0,0 +1,16 @@
[where.html]
[Invalidate :where() for complex selector arguments.]
expected: FAIL
[Preconditions.]
expected: FAIL
[Invalidate :where() for simple selector arguments.]
expected: FAIL
[Invalidate :where() for compound selector arguments.]
expected: FAIL
[Invalidate nested :where().]
expected: FAIL

View file

@ -509,7 +509,6 @@
[single-byte-decoder.html?XMLHttpRequest]
expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -535,73 +534,7 @@
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: x-cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: x-cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: latin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: windows-1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: x-cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: windows-1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso_8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: windows-1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: windows-1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: l5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: x-cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-ir-148 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: windows-1255 (XMLHttpRequest)]
expected: TIMEOUT
expected: FAIL
[single-byte-decoder.html?TextDecoder]

View file

@ -0,0 +1,5 @@
[beforeunload-canceling.html]
expected: TIMEOUT
[Returning 0 with a real iframe unloading; setting returnValue to foo]
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,16 @@
[location-protocol-setter-non-broken-weird.html]
[Set location.protocol to data]
expected: FAIL
[Set location.protocol to ftp]
expected: FAIL
[Set location.protocol to gopher]
expected: FAIL
[Set location.protocol to x]
expected: FAIL
[Set location.protocol to http+x]
expected: FAIL

View file

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

View file

@ -5,5 +5,5 @@
expected: NOTRUN
[calling play() on a sufficiently long video should trigger timeupdate event]
expected: FAIL
expected: NOTRUN

View file

@ -13,3 +13,21 @@
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
expected: FAIL
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
expected: FAIL
[img (srcset 1 cand) valid image, resize to wide]
expected: FAIL
[picture: same URL in source (max-width:500px) and img, resize to wide]
expected: FAIL
[img (srcset 1 cand) valid image, resize to narrow]
expected: FAIL
[picture: source (max-width:500px) valid image, img broken image, resize to wide]
expected: FAIL
[picture: same URL in source (max-width:500px) and img, resize to narrow]
expected: FAIL

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -1,5 +0,0 @@
[activation-behavior.window.html]
type: testharness
[<a> that is not connected should be followed]
expected: FAIL

View file

@ -2,3 +2,6 @@
[document.open() after parser is aborted]
expected: FAIL
[async document.open() after parser is aborted]
expected: FAIL

View file

@ -1,5 +1,5 @@
[bailout-exception-vs-return-xml.window.html]
expected: CRASH
expected: TIMEOUT
[document.open should throw an InvalidStateError with XML document even when the ignore-opens-during-unload counter is greater than 0 (during beforeunload event)]
expected: TIMEOUT

View file

@ -9,3 +9,6 @@
[Verifies the resolution of entry.startTime is at least 20 microseconds.]
expected: TIMEOUT
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
expected: TIMEOUT

View file

@ -0,0 +1,283 @@
[limited-quirks.html]
[top: -\\31 .5]
expected: FAIL
[bottom: -1A]
expected: FAIL
[bottom: -1a]
expected: FAIL
[top: @1]
expected: FAIL
[top: "1a"]
expected: FAIL
[top: @a]
expected: FAIL
[bottom: "1"]
expected: FAIL
[bottom: -/**/1]
expected: FAIL
[top: +/**/1]
expected: FAIL
[bottom: @1a]
expected: FAIL
[top: 1\\31 ]
expected: FAIL
[top: url('1')]
expected: FAIL
[bottom: -\\31 ]
expected: FAIL
[top: calc(1)]
expected: FAIL
[top: \\31 ]
expected: FAIL
[bottom: +1\\31 ]
expected: FAIL
[bottom: 1\\31 .5]
expected: FAIL
[bottom: #0001]
expected: FAIL
[top: calc(2 * 2px)]
expected: FAIL
[bottom: 1a]
expected: FAIL
[bottom: A]
expected: FAIL
[bottom: #01]
expected: FAIL
[top: +\\31 .5]
expected: FAIL
[bottom: #1]
expected: FAIL
[top: -/**/1]
expected: FAIL
[bottom: +\\31 .5]
expected: FAIL
[bottom: \\31 ]
expected: FAIL
[bottom: calc(1)]
expected: FAIL
[top: #001]
expected: FAIL
[top: +\\31 ]
expected: FAIL
[bottom: +\\31 ]
expected: FAIL
[top: +1.5]
expected: FAIL
[top: +1\\31 ]
expected: FAIL
[bottom: @a]
expected: FAIL
[bottom: @1]
expected: FAIL
[top: #1]
expected: FAIL
[top: 1a]
expected: FAIL
[bottom: +1a]
expected: FAIL
[bottom: +1A]
expected: FAIL
[bottom: "a"]
expected: FAIL
[top: #00001]
expected: FAIL
[bottom: -1\\31 .5]
expected: FAIL
[top: "1"]
expected: FAIL
[bottom: 1.5]
expected: FAIL
[bottom: -\\31 .5]
expected: FAIL
[bottom: url('1')]
expected: FAIL
[bottom: -1.5]
expected: FAIL
[top: \\31 .5]
expected: FAIL
[bottom: "1a"]
expected: FAIL
[bottom: calc(2 * 2px)]
expected: FAIL
[bottom: +1\\31 .5]
expected: FAIL
[bottom: 1\\31 ]
expected: FAIL
[bottom: +/**/1]
expected: FAIL
[bottom: #00001]
expected: FAIL
[top: url(1)]
expected: FAIL
[bottom: #001]
expected: FAIL
[top: +1\\31 .5]
expected: FAIL
[top: -1a]
expected: FAIL
[top: -1A]
expected: FAIL
[bottom: url(1)]
expected: FAIL
[top: a]
expected: FAIL
[top: A]
expected: FAIL
[top: #000001]
expected: FAIL
[top: 1]
expected: FAIL
[top: 1\\31 .5]
expected: FAIL
[bottom: a]
expected: FAIL
[bottom: 1]
expected: FAIL
[bottom: +1]
expected: FAIL
[bottom: #000001]
expected: FAIL
[bottom: +a]
expected: FAIL
[bottom: +A]
expected: FAIL
[top: 1.5]
expected: FAIL
[top: +A]
expected: FAIL
[top: +a]
expected: FAIL
[top: +1]
expected: FAIL
[top: -1.5]
expected: FAIL
[top: -1\\31 .5]
expected: FAIL
[top: +1a]
expected: FAIL
[top: +1A]
expected: FAIL
[top: @1a]
expected: FAIL
[bottom: \\31 .5]
expected: FAIL
[top: "a"]
expected: FAIL
[top: #01]
expected: FAIL
[bottom: +1.5]
expected: FAIL
[bottom: -A]
expected: FAIL
[bottom: -a]
expected: FAIL
[bottom: -1\\31 ]
expected: FAIL
[top: #0001]
expected: FAIL
[bottom: -1]
expected: FAIL
[top: -\\31 ]
expected: FAIL
[top: -A]
expected: FAIL
[top: -a]
expected: FAIL
[top: -1]
expected: FAIL
[top: -1\\31 ]
expected: FAIL

View file

@ -0,0 +1,283 @@
[quirks.html]
[top: -\\31 .5]
expected: FAIL
[bottom: -1A]
expected: FAIL
[bottom: -1a]
expected: FAIL
[top: @1]
expected: FAIL
[top: "1a"]
expected: FAIL
[top: @a]
expected: FAIL
[bottom: "1"]
expected: FAIL
[bottom: -/**/1]
expected: FAIL
[top: +/**/1]
expected: FAIL
[bottom: @1a]
expected: FAIL
[top: 1\\31 ]
expected: FAIL
[top: url('1')]
expected: FAIL
[bottom: -\\31 ]
expected: FAIL
[top: calc(1)]
expected: FAIL
[top: \\31 ]
expected: FAIL
[bottom: +1\\31 ]
expected: FAIL
[bottom: 1\\31 .5]
expected: FAIL
[bottom: #0001]
expected: FAIL
[top: calc(2 * 2px)]
expected: FAIL
[bottom: 1a]
expected: FAIL
[bottom: A]
expected: FAIL
[bottom: #01]
expected: FAIL
[top: +\\31 .5]
expected: FAIL
[bottom: #1]
expected: FAIL
[top: -/**/1]
expected: FAIL
[bottom: +\\31 .5]
expected: FAIL
[bottom: \\31 ]
expected: FAIL
[bottom: calc(1)]
expected: FAIL
[top: #001]
expected: FAIL
[top: +\\31 ]
expected: FAIL
[bottom: +\\31 ]
expected: FAIL
[top: +1.5]
expected: FAIL
[top: +1\\31 ]
expected: FAIL
[bottom: @a]
expected: FAIL
[bottom: @1]
expected: FAIL
[top: #1]
expected: FAIL
[top: 1a]
expected: FAIL
[bottom: +1a]
expected: FAIL
[bottom: +1A]
expected: FAIL
[bottom: "a"]
expected: FAIL
[top: #00001]
expected: FAIL
[bottom: -1\\31 .5]
expected: FAIL
[top: "1"]
expected: FAIL
[bottom: 1.5]
expected: FAIL
[bottom: -\\31 .5]
expected: FAIL
[bottom: url('1')]
expected: FAIL
[bottom: -1.5]
expected: FAIL
[top: \\31 .5]
expected: FAIL
[bottom: "1a"]
expected: FAIL
[bottom: calc(2 * 2px)]
expected: FAIL
[bottom: +1\\31 .5]
expected: FAIL
[bottom: 1\\31 ]
expected: FAIL
[bottom: +/**/1]
expected: FAIL
[bottom: #00001]
expected: FAIL
[top: url(1)]
expected: FAIL
[bottom: #001]
expected: FAIL
[top: +1\\31 .5]
expected: FAIL
[top: -1a]
expected: FAIL
[top: -1A]
expected: FAIL
[bottom: url(1)]
expected: FAIL
[top: a]
expected: FAIL
[top: A]
expected: FAIL
[top: #000001]
expected: FAIL
[top: 1]
expected: FAIL
[top: 1\\31 .5]
expected: FAIL
[bottom: a]
expected: FAIL
[bottom: 1]
expected: FAIL
[bottom: +1]
expected: FAIL
[bottom: #000001]
expected: FAIL
[bottom: +a]
expected: FAIL
[bottom: +A]
expected: FAIL
[top: 1.5]
expected: FAIL
[top: +A]
expected: FAIL
[top: +a]
expected: FAIL
[top: +1]
expected: FAIL
[top: -1.5]
expected: FAIL
[top: -1\\31 .5]
expected: FAIL
[top: +1a]
expected: FAIL
[top: +1A]
expected: FAIL
[top: @1a]
expected: FAIL
[bottom: \\31 .5]
expected: FAIL
[top: "a"]
expected: FAIL
[top: #01]
expected: FAIL
[bottom: +1.5]
expected: FAIL
[bottom: -A]
expected: FAIL
[bottom: -a]
expected: FAIL
[bottom: -1\\31 ]
expected: FAIL
[top: #0001]
expected: FAIL
[bottom: -1]
expected: FAIL
[top: -\\31 ]
expected: FAIL
[top: -A]
expected: FAIL
[top: -a]
expected: FAIL
[top: -1]
expected: FAIL
[top: -1\\31 ]
expected: FAIL

View file

@ -191,6 +191,3 @@
[HTMLElement interface: attribute ontouchcancel]
expected: FAIL
[idl_test setup]
expected: FAIL

View file

@ -1,23 +1,11 @@
[urlencoded-parser.any.html]
[response.formData() with input: a=b&c=d]
expected: FAIL
[request.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]
expected: FAIL
[request.formData() with input: _charset_=windows-1252&test=%C2x]
expected: FAIL
[response.formData() with input: a=b&c=d&]
expected: FAIL
[response.formData() with input: _charset_=windows-1252&test=%C2x]
[request.formData() with input: a&b&c]
expected: FAIL
@ -25,12 +13,18 @@
[request.formData() with input: a&b&c]
expected: FAIL
[request.formData() with input: a=b&c=d&]
expected: FAIL
[response.formData() with input: a=b&c=d&]
expected: FAIL
[response.formData() with input: a=b&c=d]
expected: FAIL
[response.formData() with input: a&b&c]
expected: FAIL
[request.formData() with input: &&&a=b&&&&c=d&]
expected: FAIL
[response.formData() with input: _charset_=windows-1252&test=%C2x]
expected: FAIL

View file

@ -1,6 +1,5 @@
[005.html]
type: testharness
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#containing-block-details">
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#anonymous-block-level">
<style>
.rel { position:relative; }
.inline-block { display:inline-block; width:100px; height:1px; }
.inline-block.large { width:200px; }
#target { position:absolute; width:100%; height:100px; background:green; }
</style>
<p>There should be a green square below.</p>
<div style="height:200px;">
<span class="rel" id="notContainingBlockOfTarget">
<div class="large inline-block"></div>
<br>
<span id="containingBlockOfTarget" class="rel">
<div class="inline-block"></div>
<span>
<div>
<div id="target"></div>
</div>
</span>
<div class="inline-block"></div></span><br>
<div class="large inline-block"></div>
</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
assert_equals(document.getElementById("target").offsetWidth, 100);
}, "Make sure that we're sized by the right ancestor");
</script>

View file

@ -29,7 +29,7 @@ for (let element of [divWithFontSizeSet, divWithFontSizeInherited]) {
// Because we want to include the parsing step, insert a stylesheet
// node with textContent.
let node = document.createElement('style');
node.textContent = `#${id} { ${name}: ${value}; }`;
node.textContent = `#${id} { ${name}:${value}; }`;
document.body.append(node);
try {
@ -123,5 +123,29 @@ for (let element of [divWithFontSizeSet, divWithFontSizeInherited]) {
test(function() {
assert_computed_value('<integer>+', '15 calc(2.4) calc(2.6)', '15 2 3');
}, "<integer>+ values are computed correctly for " + id);
test(function() {
assert_computed_value('<color>', '#ff0000', 'rgb(255, 0, 0)');
assert_computed_value('<color>', '#000f00', 'rgb(0, 15, 0)');
assert_computed_value('<color>', '#00000a', 'rgb(0, 0, 10)');
assert_computed_value('<color>', '#badbee', 'rgb(186, 219, 238)');
assert_computed_value('<color>', '#badbee33', 'rgba(186, 219, 238, 0.2)');
assert_computed_value('<color>', 'tomato', 'rgb(255, 99, 71)');
assert_computed_value('<color>', 'plum', 'rgb(221, 160, 221)');
assert_computed_value('<color>', 'currentcolor', 'currentcolor');
}, "<color> values are computed correctly for " + id);
test(function() {
assert_computed_value('*', 'tomato', 'tomato');
assert_computed_value('tomato | plum', 'plum', 'plum');
assert_computed_value('tomato | plum | <color>', 'plum', 'plum');
}, "ident values that look like color keywords are not converted to colors" + id);
test(function() {
assert_computed_value('*', '-50grad', '-50grad');
assert_computed_value('<angle>', '180deg', '180deg');
assert_computed_value('<angle>', '400grad', '360deg');
assert_computed_value('<angle>', 'calc(360deg + 400grad)', '720deg');
}, "<angle> values computed correctly for " + id);
}
</script>

View file

@ -46,7 +46,7 @@ test(function() {
assert_equals(inlineStyle.getPropertyValue('--length'), '5');
assert_equals(inlineStyle.getPropertyValue('--color'), 'hello');
assert_equals(computedStyle.getPropertyValue('--length'), '0px');
assert_equals(computedStyle.getPropertyValue('--color'), 'blue');
assert_equals(computedStyle.getPropertyValue('--color'), 'rgb(0, 0, 255)');
}, "Formerly valid values are still readable from inline styles but are computed as the unset value");
test(function() {
@ -62,7 +62,7 @@ test(function() {
assert_equals(inlineStyle.getPropertyValue('--length'), '');
assert_equals(inlineStyle.getPropertyValue('--color'), '');
assert_equals(computedStyle.getPropertyValue('--length'), '10px');
assert_equals(computedStyle.getPropertyValue('--color'), 'red');
assert_equals(computedStyle.getPropertyValue('--color'), 'rgb(255, 0, 0)');
}, "Values can be removed from inline styles");
test(function() {
@ -80,9 +80,9 @@ test(function() {
assert_equals(inlineStyle.getPropertyValue('--length'), '30px');
assert_equals(inlineStyle.getPropertyValue('--color'), 'pink');
assert_equals(computedStyle.getPropertyValue('--length'), '30px');
assert_equals(computedStyle.getPropertyValue('--color'), 'pink');
assert_equals(computedStyle.getPropertyValue('--color'), 'rgb(255, 192, 203)');
inlineStyle.setProperty('--color', 'inherit');
assert_equals(inlineStyle.getPropertyValue('--color'), 'inherit');
assert_equals(computedStyle.getPropertyValue('--color'), 'blue');
assert_equals(computedStyle.getPropertyValue('--color'), 'rgb(0, 0, 255)');
}, "Valid values can be set on inline styles");
</script>

View file

@ -23,8 +23,8 @@ test(function() {
computedStyle = getComputedStyle(target);
assert_equals(computedStyle.getPropertyValue('--length'), '25px');
assert_equals(computedStyle.getPropertyValue('--length-percentage'), 'calc(100px + 10%)');
assert_equals(computedStyle.getPropertyValue('--inherited-color'), 'pink');
assert_equals(computedStyle.getPropertyValue('--non-inherited-color'), 'purple');
assert_equals(computedStyle.getPropertyValue('--inherited-color'), 'rgb(255, 192, 203)');
assert_equals(computedStyle.getPropertyValue('--non-inherited-color'), 'rgb(128, 0, 128)');
assert_equals(computedStyle.getPropertyValue('--transform-function'), 'rotate(42deg)');
assert_equals(computedStyle.getPropertyValue('--single-transform-list'), 'scale(4)');
assert_equals(computedStyle.getPropertyValue('--multiple-transform-list'), 'scale(3) translateX(4px)');

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Inheritance of Filter Effects properties</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects/#property-index">
<meta name="assert" content="Properties inherit according to the spec.">
<meta name="assert" content="Properties have initial values according to the spec.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/inheritance-testcommon.js"></script>
</head>
<body>
<div id="container">
<div id="target"></div>
</div>
<script>
assert_inherited('color-interpolation-filters', 'linearrgb', 'srgb');
assert_not_inherited('filter', 'none', 'blur(10px)');
assert_not_inherited('flood-color', 'rgb(0, 0, 0)', 'rgb(42, 53, 64)');
assert_not_inherited('flood-opacity', '1', '0.5');
assert_not_inherited('lighting-color', 'rgb(255, 255, 255)', 'rgb(42, 53, 64)');
</script>
</body>
</html>

View file

@ -0,0 +1,108 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Selectors Invalidation: :where()</title>
<link rel="author" title="Victoria Su" href="mailto:victoriaytsu@google.com">
<link rel="help" href="https://drafts.csswg.org/selectors-4/#zero-matches">
<meta name="assert" content="This tests that the :where() selector is effective">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
* {
color: black;
}
.b {
color: yellow;
}
/*Simple selector arguments */
:where(.b, .c) {
color: red;
}
/*Compound selector arguments */
.a~:where(.c#d, .e) {
color: green;
}
/* Complex selector arguments */
.h {
color: red;
}
:where(.a~.h, .a~.h+.f) {
color: yellow;
}
/* Nested */
:where(.a>:where(.g+.h, .b)~.i) {
color: blue;
}
:where(:matches(.a~.h)) {
color: yellow;
}
</style>
</head>
<body>
<div id="a1">
<div class="g">
</div>
<div class="h">
</div>
<div class="i" id="i1">
Blue
</div>
</div>
<div class="b" id="b1">
Yellow
</div>
<div class="c" id="c1">
Red
</div>
<div class="c" id="d">
Green
</div>
<div class="h" id="h1">
Red
</div>
<div class="f" id="f1">
Yellow
</div>
<script>
document.body.offsetTop;
var black = "rgb(0, 0, 0)";
var green = "rgb(0, 128, 0)";
var red = "rgb(255, 0, 0)";
var yellow = "rgb(255, 255, 0)";
var blue = "rgb(0, 0, 255)";
test(() => {
assert_equals(getComputedStyle(b1).color, yellow);
assert_equals(getComputedStyle(c1).color, red);
assert_equals(getComputedStyle(d).color, red);
assert_equals(getComputedStyle(h1).color, red);
assert_equals(getComputedStyle(f1).color, black);
assert_equals(getComputedStyle(i1).color, black);
}, "Preconditions.");
test(() => {
a1.className = "a";
assert_equals(getComputedStyle(b1).color, yellow);
assert_equals(getComputedStyle(c1).color, red);
}, "Invalidate :where() for simple selector arguments.");
test(() => {
a1.className = "a";
assert_equals(getComputedStyle(d).color, green);
}, "Invalidate :where() for compound selector arguments.");
test(() => {
a1.className = "a";
assert_equals(getComputedStyle(h1).color, red);
assert_equals(getComputedStyle(f1).color, yellow);
}, "Invalidate :where() for complex selector arguments.");
test(() => {
a1.className = "a";
assert_equals(getComputedStyle(i1).color, blue);
}, "Invalidate nested :where().");
</script>
</body>
</html>

View file

@ -9,6 +9,12 @@ the [web platform][web-platform]; it excludes only ECMAScript (whose
testsuite lives in [test262][test262]) and WebGL (whose testsuite
lives in [WebGL][WebGL]).
## Watch a Talk
If you prefer watching a video, here is a talk introducing web-platform-tests:
<iframe width="560" height="315" src="https://www.youtube.com/embed/XnfE3MfH5hQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
## Help!
If you get stuck or want clarification about anything, feel free to

View file

@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: Combobox ignores CSS 'line-height'</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<style type="text/css">
html,body {
color:black; background-color:white; font:16px/1 monospace;
}
</style>
</head>
<body>
<select><option>aaaaaaaaaa<option>bbbbbbbbbb</select>
</body>
</html>

View file

@ -0,0 +1,35 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Test: Combobox ignores CSS 'line-height'</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="match" href="select-1-line-height-ref.html">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#the-select-element-2">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1501908">
<style type="text/css">
html,body {
color:black; background-color:white; font:16px/1 monospace;
}
select { line-height:100px; }
</style>
</head>
<body>
<select><option>aaaaaaaaaa<option>bbbbbbbbbb</select>
<script>
document.body.offsetHeight;
var cv = window.getComputedStyle(document.querySelector('select')).lineHeight;
if (cv == "normal" || parseInt(cv) > 50) {
document.body.appendChild(document.createTextNode(
"FAIL: got computed line-height '" + cv + "', expected a length <= 50px"));
}</script>
</body>
</html>

View file

@ -5,8 +5,9 @@ function testTimeResolution(highResTimeFunc, funcString) {
while (t0 == t1) {
t1 = highResTimeFunc();
}
assert_greater_than_equal(t1 - t0, 0.02, 'The second ' + funcString + ' should be much greater than the first');
}, 'Verifies the resolution of ' + funcString + ' is at least 20 microseconds.');
const epsilon = 1e-5;
assert_greater_than_equal(t1 - t0, 0.005 - epsilon, 'The second ' + funcString + ' should be much greater than the first');
}, 'Verifies the resolution of ' + funcString + ' is at least 5 microseconds.');
}
function timeByPerformanceNow() {

View file

@ -16,7 +16,7 @@ promise_test(async t => {
assert_not_equals(pipWindow.height, 0);
const videoAspectRatio = video.videoWidth / video.videoHeight;
const pipWindowAspectRatio = pipWindow.width / pipWindow.height;
assert_equals(videoAspectRatio, pipWindowAspectRatio);
assert_approx_equals(videoAspectRatio, pipWindowAspectRatio, 0.01);
});
}, 'Picture-in-Picture window dimensions are set after entering Picture-in-Picture');

View file

@ -305,7 +305,13 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options)
if (parsed[dep_type]) {
const inheriting = parsed[dep_type];
const inheritor = parsed.name || parsed.target;
for (const dep of [inheriting, inheritor]) {
const deps = [inheriting];
// For A includes B, we can ignore A unless B is being tested.
if (dep_type !== "includes"
|| (inheriting in this.members && !this.members[inheriting].untested)) {
deps.push(inheritor);
}
for (const dep of deps) {
new_options.only.push(dep);
all_deps.add(dep);
follow_up.add(dep);
@ -320,7 +326,7 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options)
next.forEach(process);
}
}
});
}.bind(this));
}.bind(this);
for (let parsed of parsed_idls) {

View file

@ -0,0 +1,32 @@
<!doctype html>
<meta charset=utf-8>
<title>use element reacts to attribute changes when it's not rendered</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="help" href="https://svgwg.org/svg2-draft/struct.html#UseElement">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1502658">
<link rel="match" href="/svg/linking/reftests/use-descendant-combinator-ref.html">
<style>
</style>
<p>
You should see a green square, and no red.
</p>
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
style="display: none">
<defs>
<g id="square">
<rect width="100" height="100" fill="green" />
</g>
</defs>
<g id="test">
<use />
</g>
</svg>
<script>
onload = () => {
document.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink", "href", "#square");
document.querySelector("svg").style.display = "";
}
</script>

View file

@ -2,10 +2,10 @@ import sys
import os
import unittest
import json
from types import MethodType
from io import BytesIO
import pytest
from six import create_bound_method
wptserve = pytest.importorskip("wptserve")
from .base import TestUsingServer, TestUsingH2Server, doc_root
@ -19,13 +19,11 @@ def send_body_as_header(self):
self._headers_complete = True
class TestResponse(TestUsingServer):
@pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2")
def test_head_without_body(self):
@wptserve.handlers.handler
def handler(request, response):
response.writer.end_headers = MethodType(send_body_as_header,
response.writer,
wptserve.response.ResponseWriter)
response.writer.end_headers = create_bound_method(send_body_as_header,
response.writer)
return [("X-Test", "TEST")], "body\r\n"
route = ("GET", "/test/test_head_without_body", handler)
@ -35,14 +33,12 @@ class TestResponse(TestUsingServer):
self.assertEqual("TEST", resp.info()['x-Test'])
self.assertEqual("", resp.info()['x-body'])
@pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2")
def test_head_with_body(self):
@wptserve.handlers.handler
def handler(request, response):
response.send_body_for_head_request = True
response.writer.end_headers = MethodType(send_body_as_header,
response.writer,
wptserve.response.ResponseWriter)
response.writer.end_headers = create_bound_method(send_body_as_header,
response.writer)
return [("X-Test", "TEST")], "body\r\n"
route = ("GET", "/test/test_head_with_body", handler)