aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini6
-rw-r--r--tests/wpt/metadata/FileAPI/file/Worker-read-file-constructor.worker.js.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json347
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm.ini5
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-createAttribute.html.ini26
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-createEvent.html.ini5
-rw-r--r--tests/wpt/metadata/dom/nodes/Element-removeAttributeNS.html.ini5
-rw-r--r--tests/wpt/metadata/dom/nodes/attributes.html.ini41
-rw-r--r--tests/wpt/metadata/encoding/textdecoder-labels.html.ini50
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location_assign.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/Document-defaultView.html.ini15
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/Window-document.html.ini5
-rw-r--r--tests/wpt/metadata/html/dom/elements/global-attributes/custom-attrs.html.ini5
-rw-r--r--tests/wpt/metadata/html/semantics/forms/constraints/form-validation-validity-badInput.html.ini9
-rw-r--r--tests/wpt/metadata/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/forms/the-input-element/input-textselection-01.html.ini71
-rw-r--r--tests/wpt/metadata/html/semantics/forms/the-input-element/selection.html.ini134
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus-autofocus.html.ini6
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm.html.ini1
-rw-r--r--tests/wpt/metadata/mozilla-sync2
-rw-r--r--tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini8
-rw-r--r--tests/wpt/metadata/touch-events/touch-globaleventhandler-interface.html.ini8
-rw-r--r--tests/wpt/metadata/touch-events/touch-touchevent-constructor.html.ini11
-rw-r--r--tests/wpt/metadata/url/a-element-xhtml.xhtml.ini946
-rw-r--r--tests/wpt/metadata/url/a-element.html.ini3
-rw-r--r--tests/wpt/metadata/url/url-constructor.html.ini3
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/blob/Blob-constructor.html84
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js14
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice-overflow.html42
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.js15
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/idbkeyrange-includes.htm33
-rw-r--r--tests/wpt/web-platform-tests/README.md8
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.htm17
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js14
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.worker.js3
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth7/corsenabled.py20
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth8/corsenabled-no-authorize.py20
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth9/auth.py10
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm36
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm61
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/send-send.htm10
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/send-send.js7
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/send-send.worker.js3
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/messages.json2
-rw-r--r--tests/wpt/web-platform-tests/docs/test-format-guidelines.md14
-rw-r--r--tests/wpt/web-platform-tests/dom/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Document-characterSet-normalization.html1
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.html84
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.js27
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/attributes.js1
-rw-r--r--tests/wpt/web-platform-tests/encoding/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/encoding/resources/encodings.js1
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/basic/stream-response.js8
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html2
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html103
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/request/request-consume.html39
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/request/request-init-002.html23
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/resources/utils.js42
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/response/response-clone.html10
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html103
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/response/response-consume.html38
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/response/response-init-002.html4
-rw-r--r--tests/wpt/web-platform-tests/hr-time/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/html-media-capture/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/html/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html2
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/the-window-object/Document-defaultView.html38
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/the-window-object/Window-document.html25
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html11
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-cell-width-s.html55
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-width-s.html31
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html10
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01.html42
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/selection.html131
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html7
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html35
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus.html24
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html3
-rw-r--r--tests/wpt/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html14
-rw-r--r--tests/wpt/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html20
-rw-r--r--tests/wpt/web-platform-tests/media-source/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/OWNERS4
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-finished-add.html24
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-idl.html15
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/stream-ended.html37
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html7
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html6
-rw-r--r--tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html6
-rw-r--r--tests/wpt/web-platform-tests/page-visibility/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html215
-rw-r--r--tests/wpt/web-platform-tests/touch-events/single-touch-manual.html8
-rw-r--r--tests/wpt/web-platform-tests/touch-events/touch-globaleventhandler-interface.html35
-rw-r--r--tests/wpt/web-platform-tests/touch-events/touch-support.js106
-rw-r--r--tests/wpt/web-platform-tests/touch-events/touch-touchevent-constructor.html116
-rw-r--r--tests/wpt/web-platform-tests/url/a-element-xhtml.xhtml52
-rw-r--r--tests/wpt/web-platform-tests/url/a-element.html59
-rw-r--r--tests/wpt/web-platform-tests/url/a-element.js53
-rw-r--r--tests/wpt/web-platform-tests/url/urltestdata.json16
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-effect-timing/duration.html73
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getAnimations.html29
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getComputedStyle.html29
-rw-r--r--tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-currentIteration.html446
-rw-r--r--tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-progress.html446
-rw-r--r--tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/buffers/buffer-data-array-buffer.html2
-rw-r--r--tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/extensions/webgl-depth-texture.html4
-rw-r--r--tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/functions/texImage2DBadArgs.html2
-rw-r--r--tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/util.js34
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/MessageEvent.html21
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/MessageEvent_properties.htm39
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-0.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-1000-reason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-1000.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-NaN.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-Reason-124Bytes.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-clamp.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-null.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-reason-unpaired-surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-string.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Close-undefined.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-blocked-port.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-extensions-empty.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-url-with-space.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-asciiSep-protocol-string.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-invalid-urls.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-non-absolute-url.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-nonAscii-protocol-string.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-protocol-with-space.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-protocols-repeated.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-valid-url-array-protocols.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol-empty.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-valid-url.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-verify-url-set-non-default-port.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Create-wrong-scheme.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/OWNERS1
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-0.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-1000-reason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-1000-verify-code.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-1000.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-1005-verify-code.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-1005.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-2999-reason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-3000-reason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-3000-verify-code.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-4999-reason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-NaN.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-null.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-onlyReason.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closed.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closing.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-server-initiated-close.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-string.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Close-undefined.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-65K-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-binary-blob.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-null.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-paired-surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-unicode-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-0byte-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-65K-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-Unpaired-Surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-before-open.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-binary-65K-arraybuffer.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-binary-arraybuffer.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int8.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-binary-blob.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-data.worker.js2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-null.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-paired-surrogates.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/Send-unicode-data.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/binaryType-wrong-value.htm2
-rw-r--r--tests/wpt/web-platform-tests/websockets/constructor.html2
-rw-r--r--tests/wpt/web-platform-tests/websockets/eventhandlers.html2
-rw-r--r--tests/wpt/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js2
-rw-r--r--tests/wpt/web-platform-tests/websockets/websocket.sub.js (renamed from tests/wpt/web-platform-tests/websockets/websocket.js)0
234 files changed, 4371 insertions, 970 deletions
diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini
index 86ba08df8f3..3b34e8de52e 100644
--- a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini
+++ b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini
@@ -72,3 +72,9 @@
[no-argument Blob constructor without 'new']
expected: FAIL
+ [A plain object with @@iterator should be treated as a sequence for the blobParts argument.]
+ expected: FAIL
+
+ [A plain object with @@iterator and a length property should be treated as a sequence for the blobParts argument.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/FileAPI/file/Worker-read-file-constructor.worker.js.ini b/tests/wpt/metadata/FileAPI/file/Worker-read-file-constructor.worker.js.ini
new file mode 100644
index 00000000000..0a9b6879919
--- /dev/null
+++ b/tests/wpt/metadata/FileAPI/file/Worker-read-file-constructor.worker.js.ini
@@ -0,0 +1,5 @@
+[Worker-read-file-constructor.worker]
+ type: testharness
+ [FileReader in Worker]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 1c1e6a7bd36..996d1204996 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -3246,6 +3246,10 @@
"url": "/uievents/order-of-events/mouse-events/mouseevents-mousemove-manual.htm"
},
{
+ "path": "uievents/order-of-events/mouse-events/mouseover-out-manual.html",
+ "url": "/uievents/order-of-events/mouse-events/mouseover-out-manual.html"
+ },
+ {
"path": "vibration/cancel-when-hidden-manual.html",
"url": "/vibration/cancel-when-hidden-manual.html"
},
@@ -4906,6 +4910,16 @@
"url": "/html/rendering/non-replaced-elements/tables/table-border-2.html"
},
{
+ "path": "html/rendering/non-replaced-elements/tables/table-cell-width-s.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/tables/table-cell-width-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/tables/table-cell-width-s.html"
+ },
+ {
"path": "html/rendering/non-replaced-elements/tables/table-cell-width.html",
"references": [
[
@@ -4936,6 +4950,16 @@
"url": "/html/rendering/non-replaced-elements/tables/table-width-150percent.html"
},
{
+ "path": "html/rendering/non-replaced-elements/tables/table-width-s.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/tables/table-width-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/tables/table-width-s.html"
+ },
+ {
"path": "html/rendering/non-replaced-elements/tables/table-width.html",
"references": [
[
@@ -11074,6 +11098,14 @@
"url": "/FileAPI/blob/Blob-constructor.html"
},
{
+ "path": "FileAPI/blob/Blob-in-worker.worker.js",
+ "url": "/FileAPI/blob/Blob-in-worker.worker"
+ },
+ {
+ "path": "FileAPI/blob/Blob-slice-overflow.html",
+ "url": "/FileAPI/blob/Blob-slice-overflow.html"
+ },
+ {
"path": "FileAPI/blob/Blob-slice.html",
"url": "/FileAPI/blob/Blob-slice.html"
},
@@ -11082,6 +11114,10 @@
"url": "/FileAPI/file/File-constructor.html"
},
{
+ "path": "FileAPI/file/Worker-read-file-constructor.worker.js",
+ "url": "/FileAPI/file/Worker-read-file-constructor.worker"
+ },
+ {
"path": "FileAPI/fileReader.html",
"url": "/FileAPI/fileReader.html"
},
@@ -11742,6 +11778,10 @@
"url": "/IndexedDB/idbindex_openKeyCursor4.htm"
},
{
+ "path": "IndexedDB/idbkeyrange-includes.htm",
+ "url": "/IndexedDB/idbkeyrange-includes.htm"
+ },
+ {
"path": "IndexedDB/idbkeyrange.htm",
"url": "/IndexedDB/idbkeyrange.htm"
},
@@ -12218,6 +12258,10 @@
"url": "/XMLHttpRequest/abort-during-open.htm"
},
{
+ "path": "XMLHttpRequest/abort-during-open.worker.js",
+ "url": "/XMLHttpRequest/abort-during-open.worker"
+ },
+ {
"path": "XMLHttpRequest/abort-during-unsent.htm",
"url": "/XMLHttpRequest/abort-during-unsent.htm"
},
@@ -12614,6 +12658,10 @@
"url": "/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm"
},
{
+ "path": "XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm",
+ "url": "/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm"
+ },
+ {
"path": "XMLHttpRequest/send-authentication-basic-setrequestheader-existing-session.htm",
"url": "/XMLHttpRequest/send-authentication-basic-setrequestheader-existing-session.htm"
},
@@ -12634,6 +12682,10 @@
"url": "/XMLHttpRequest/send-authentication-cors-basic-setrequestheader.htm"
},
{
+ "path": "XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm",
+ "url": "/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm"
+ },
+ {
"path": "XMLHttpRequest/send-conditional.htm",
"url": "/XMLHttpRequest/send-conditional.htm"
},
@@ -12770,6 +12822,10 @@
"url": "/XMLHttpRequest/send-send.htm"
},
{
+ "path": "XMLHttpRequest/send-send.worker.js",
+ "url": "/XMLHttpRequest/send-send.worker"
+ },
+ {
"path": "XMLHttpRequest/send-sync-blocks-async.htm",
"url": "/XMLHttpRequest/send-sync-blocks-async.htm"
},
@@ -13998,6 +14054,10 @@
"url": "/dom/lists/DOMTokenList-stringifier.html"
},
{
+ "path": "dom/lists/DOMTokenList-value.html",
+ "url": "/dom/lists/DOMTokenList-value.html"
+ },
+ {
"path": "dom/nodes/CharacterData-appendData.html",
"url": "/dom/nodes/CharacterData-appendData.html"
},
@@ -14702,6 +14762,10 @@
"url": "/dom/ranges/Range-constructor.html"
},
{
+ "path": "dom/ranges/Range-stringifier.html",
+ "url": "/dom/ranges/Range-stringifier.html"
+ },
+ {
"path": "dom/traversal/NodeFilter-constants.html",
"url": "/dom/traversal/NodeFilter-constants.html"
},
@@ -15502,6 +15566,10 @@
"url": "/fetch/api/request/request-clone.sub.html"
},
{
+ "path": "fetch/api/request/request-consume-empty.html",
+ "url": "/fetch/api/request/request-consume-empty.html"
+ },
+ {
"path": "fetch/api/request/request-consume.html",
"url": "/fetch/api/request/request-consume.html"
},
@@ -15542,6 +15610,10 @@
"url": "/fetch/api/response/response-clone.html"
},
{
+ "path": "fetch/api/response/response-consume-empty.html",
+ "url": "/fetch/api/response/response-consume-empty.html"
+ },
+ {
"path": "fetch/api/response/response-consume.html",
"url": "/fetch/api/response/response-consume.html"
},
@@ -16266,6 +16338,14 @@
"url": "/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html"
},
{
+ "path": "html/browsers/the-window-object/Document-defaultView.html",
+ "url": "/html/browsers/the-window-object/Document-defaultView.html"
+ },
+ {
+ "path": "html/browsers/the-window-object/Window-document.html",
+ "url": "/html/browsers/the-window-object/Window-document.html"
+ },
+ {
"path": "html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html",
"url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html"
},
@@ -16278,6 +16358,10 @@
"url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-03.html"
},
{
+ "path": "html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html",
+ "url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html"
+ },
+ {
"path": "html/browsers/the-window-object/accessing-other-browsing-contexts/window_length.html",
"url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/window_length.html"
},
@@ -18714,6 +18798,10 @@
"url": "/html/semantics/forms/form-control-infrastructure/form.html"
},
{
+ "path": "html/semantics/forms/form-submission-0/getactionurl.html",
+ "url": "/html/semantics/forms/form-submission-0/getactionurl.html"
+ },
+ {
"path": "html/semantics/forms/form-submission-0/url-encoded.html",
"url": "/html/semantics/forms/form-submission-0/url-encoded.html"
},
@@ -18842,10 +18930,6 @@
"url": "/html/semantics/forms/the-input-element/hidden.html"
},
{
- "path": "html/semantics/forms/the-input-element/input-textselection-01.html",
- "url": "/html/semantics/forms/the-input-element/input-textselection-01.html"
- },
- {
"path": "html/semantics/forms/the-input-element/input-type-button.html",
"url": "/html/semantics/forms/the-input-element/input-type-button.html"
},
@@ -18902,6 +18986,10 @@
"url": "/html/semantics/forms/the-input-element/search_input.html"
},
{
+ "path": "html/semantics/forms/the-input-element/selection.html",
+ "url": "/html/semantics/forms/the-input-element/selection.html"
+ },
+ {
"path": "html/semantics/forms/the-input-element/telephone.html",
"url": "/html/semantics/forms/the-input-element/telephone.html"
},
@@ -19290,6 +19378,10 @@
"url": "/html/semantics/selectors/pseudo-classes/enabled.html"
},
{
+ "path": "html/semantics/selectors/pseudo-classes/focus-autofocus.html",
+ "url": "/html/semantics/selectors/pseudo-classes/focus-autofocus.html"
+ },
+ {
"path": "html/semantics/selectors/pseudo-classes/focus.html",
"url": "/html/semantics/selectors/pseudo-classes/focus.html"
},
@@ -19634,6 +19726,10 @@
"url": "/html/webappapis/scripting/events/event-handler-onresize.html"
},
{
+ "path": "html/webappapis/scripting/events/event-handler-processing-algorithm.html",
+ "url": "/html/webappapis/scripting/events/event-handler-processing-algorithm.html"
+ },
+ {
"path": "html/webappapis/scripting/events/event-handler-spec-example.html",
"url": "/html/webappapis/scripting/events/event-handler-spec-example.html"
},
@@ -20134,10 +20230,6 @@
"url": "/mediacapture-streams/stream-api/mediastream/mediastream-removetrack.html"
},
{
- "path": "mediacapture-streams/stream-api/mediastream/stream-ended.html",
- "url": "/mediacapture-streams/stream-api/mediastream/stream-ended.html"
- },
- {
"path": "mediacapture-streams/stream-api/mediastream/video.html",
"url": "/mediacapture-streams/stream-api/mediastream/video.html"
},
@@ -21338,6 +21430,150 @@
"url": "/notifications/permission.html"
},
{
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/form_action.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/form_length.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_height.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_width.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html"
+ },
+ {
+ "path": "old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html",
+ "url": "/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html"
+ },
+ {
"path": "old-tests/submission/Microsoft/dragdrop/dragdrop_004.htm",
"url": "/old-tests/submission/Microsoft/dragdrop/dragdrop_004.htm"
},
@@ -27986,6 +28222,14 @@
"url": "/touch-events/create-touch-touchlist.html"
},
{
+ "path": "touch-events/touch-globaleventhandler-interface.html",
+ "url": "/touch-events/touch-globaleventhandler-interface.html"
+ },
+ {
+ "path": "touch-events/touch-touchevent-constructor.html",
+ "url": "/touch-events/touch-touchevent-constructor.html"
+ },
+ {
"path": "typedarrays/ArrayBuffer_constructor.html",
"url": "/typedarrays/ArrayBuffer_constructor.html"
},
@@ -28138,6 +28382,18 @@
"url": "/web-animations/animatable/animate.html"
},
{
+ "path": "web-animations/animation-effect-timing/duration.html",
+ "url": "/web-animations/animation-effect-timing/duration.html"
+ },
+ {
+ "path": "web-animations/animation-effect-timing/getAnimations.html",
+ "url": "/web-animations/animation-effect-timing/getAnimations.html"
+ },
+ {
+ "path": "web-animations/animation-effect-timing/getComputedStyle.html",
+ "url": "/web-animations/animation-effect-timing/getComputedStyle.html"
+ },
+ {
"path": "web-animations/animation-node/animation-node-after.html",
"url": "/web-animations/animation-node/animation-node-after.html"
},
@@ -28190,6 +28446,14 @@
"url": "/web-animations/keyframe-effect/effect-easing.html"
},
{
+ "path": "web-animations/keyframe-effect/getComputedTiming-currentIteration.html",
+ "url": "/web-animations/keyframe-effect/getComputedTiming-currentIteration.html"
+ },
+ {
+ "path": "web-animations/keyframe-effect/getComputedTiming-progress.html",
+ "url": "/web-animations/keyframe-effect/getComputedTiming-progress.html"
+ },
+ {
"path": "web-animations/keyframe-effect/getComputedTiming.html",
"url": "/web-animations/keyframe-effect/getComputedTiming.html"
},
@@ -30990,6 +31254,10 @@
"url": "/webmessaging/Channel_postMessage_target_source.htm"
},
{
+ "path": "webmessaging/MessageEvent.html",
+ "url": "/webmessaging/MessageEvent.html"
+ },
+ {
"path": "webmessaging/MessageEvent_properties.htm",
"url": "/webmessaging/MessageEvent_properties.htm"
},
@@ -34516,42 +34784,7 @@
},
"local_changes": {
"deleted": [],
- "items": {
- "manual": {
- "uievents/order-of-events/mouse-events/mouseover-out-manual.html": [
- {
- "path": "uievents/order-of-events/mouse-events/mouseover-out-manual.html",
- "url": "/uievents/order-of-events/mouse-events/mouseover-out-manual.html"
- }
- ]
- },
- "testharness": {
- "dom/lists/DOMTokenList-value.html": [
- {
- "path": "dom/lists/DOMTokenList-value.html",
- "url": "/dom/lists/DOMTokenList-value.html"
- }
- ],
- "dom/ranges/Range-stringifier.html": [
- {
- "path": "dom/ranges/Range-stringifier.html",
- "url": "/dom/ranges/Range-stringifier.html"
- }
- ],
- "html/semantics/forms/form-submission-0/getactionurl.html": [
- {
- "path": "html/semantics/forms/form-submission-0/getactionurl.html",
- "url": "/html/semantics/forms/form-submission-0/getactionurl.html"
- }
- ],
- "html/webappapis/scripting/events/event-handler-processing-algorithm.html": [
- {
- "path": "html/webappapis/scripting/events/event-handler-processing-algorithm.html",
- "url": "/html/webappapis/scripting/events/event-handler-processing-algorithm.html"
- }
- ]
- }
- },
+ "items": {},
"reftest_nodes": {}
},
"reftest_nodes": {
@@ -37039,6 +37272,18 @@
"url": "/html/rendering/non-replaced-elements/tables/table-border-2.html"
}
],
+ "html/rendering/non-replaced-elements/tables/table-cell-width-s.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/tables/table-cell-width-s.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/tables/table-cell-width-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/tables/table-cell-width-s.html"
+ }
+ ],
"html/rendering/non-replaced-elements/tables/table-cell-width.html": [
{
"path": "html/rendering/non-replaced-elements/tables/table-cell-width.html",
@@ -37075,6 +37320,18 @@
"url": "/html/rendering/non-replaced-elements/tables/table-width-150percent.html"
}
],
+ "html/rendering/non-replaced-elements/tables/table-width-s.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/tables/table-width-s.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/tables/table-width-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/tables/table-width-s.html"
+ }
+ ],
"html/rendering/non-replaced-elements/tables/table-width.html": [
{
"path": "html/rendering/non-replaced-elements/tables/table-width.html",
@@ -40676,7 +40933,7 @@
}
]
},
- "rev": "efa05bfb3b338ef988f3ebf4523198512a248a99",
+ "rev": "66c4613f823c4384c78ada77346eda17bb128947",
"url_base": "/",
"version": 2
}
diff --git a/tests/wpt/metadata/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm.ini
new file mode 100644
index 00000000000..ae2e5433056
--- /dev/null
+++ b/tests/wpt/metadata/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm.ini
@@ -0,0 +1,5 @@
+[send-authentication-cors-setrequestheader-no-cred.htm]
+ type: testharness
+ [CORS request with setRequestHeader auth to URL accepting Authorization header]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/Document-createAttribute.html.ini b/tests/wpt/metadata/dom/nodes/Document-createAttribute.html.ini
new file mode 100644
index 00000000000..8a9eb43431a
--- /dev/null
+++ b/tests/wpt/metadata/dom/nodes/Document-createAttribute.html.ini
@@ -0,0 +1,26 @@
+[Document-createAttribute.html]
+ type: testharness
+ [HTML document.createAttribute("title")]
+ expected: FAIL
+
+ [XML document.createAttribute("title")]
+ expected: FAIL
+
+ [HTML document.createAttribute("TITLE")]
+ expected: FAIL
+
+ [XML document.createAttribute("TITLE")]
+ expected: FAIL
+
+ [HTML document.createAttribute(null)]
+ expected: FAIL
+
+ [XML document.createAttribute(null)]
+ expected: FAIL
+
+ [HTML document.createAttribute(undefined)]
+ expected: FAIL
+
+ [XML document.createAttribute(undefined)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/Document-createEvent.html.ini b/tests/wpt/metadata/dom/nodes/Document-createEvent.html.ini
new file mode 100644
index 00000000000..04346bd9ee7
--- /dev/null
+++ b/tests/wpt/metadata/dom/nodes/Document-createEvent.html.ini
@@ -0,0 +1,5 @@
+[Document-createEvent.html]
+ type: testharness
+ [Should throw NOT_SUPPORTED_ERR for pluralized non-legacy event interface "KeyEvent"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/Element-removeAttributeNS.html.ini b/tests/wpt/metadata/dom/nodes/Element-removeAttributeNS.html.ini
new file mode 100644
index 00000000000..ed13e73097b
--- /dev/null
+++ b/tests/wpt/metadata/dom/nodes/Element-removeAttributeNS.html.ini
@@ -0,0 +1,5 @@
+[Element-removeAttributeNS.html]
+ type: testharness
+ [removeAttributeNS should take a local name.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/attributes.html.ini b/tests/wpt/metadata/dom/nodes/attributes.html.ini
new file mode 100644
index 00000000000..b1c954cb2cf
--- /dev/null
+++ b/tests/wpt/metadata/dom/nodes/attributes.html.ini
@@ -0,0 +1,41 @@
+[attributes.html]
+ type: testharness
+ [setAttribute should not change the order of previously set attributes.]
+ expected: FAIL
+
+ [setAttribute should set the first attribute with the given name]
+ expected: FAIL
+
+ [setAttribute should set the attribute with the given qualified name]
+ expected: FAIL
+
+ [null and the empty string should result in a null namespace.]
+ expected: FAIL
+
+ [XML-namespaced attributes don't need an xml prefix]
+ expected: FAIL
+
+ [xmlns should be allowed as local name]
+ expected: FAIL
+
+ [xmlns should be allowed as prefix in the XMLNS namespace]
+ expected: FAIL
+
+ [xmlns should be allowed as qualified name in the XMLNS namespace]
+ expected: FAIL
+
+ [Setting the same attribute with another prefix should not change the prefix]
+ expected: FAIL
+
+ [Attributes should work in document fragments.]
+ expected: FAIL
+
+ [Attribute values should not be parsed.]
+ expected: FAIL
+
+ [Specified attributes should be accessible.]
+ expected: FAIL
+
+ [Entities in attributes should have been expanded while parsing.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/encoding/textdecoder-labels.html.ini b/tests/wpt/metadata/encoding/textdecoder-labels.html.ini
new file mode 100644
index 00000000000..749b68cc6f8
--- /dev/null
+++ b/tests/wpt/metadata/encoding/textdecoder-labels.html.ini
@@ -0,0 +1,50 @@
+[textdecoder-labels.html]
+ type: testharness
+ ["ms932" => "shift_jis"]
+ expected: FAIL
+
+ [" ms932" => "shift_jis"]
+ expected: FAIL
+
+ ["ms932 " => "shift_jis"]
+ expected: FAIL
+
+ [" ms932 " => "shift_jis"]
+ expected: FAIL
+
+ ["\\tms932" => "shift_jis"]
+ expected: FAIL
+
+ ["ms932\\t" => "shift_jis"]
+ expected: FAIL
+
+ ["\\tms932\\t" => "shift_jis"]
+ expected: FAIL
+
+ ["\\nms932" => "shift_jis"]
+ expected: FAIL
+
+ ["ms932\\n" => "shift_jis"]
+ expected: FAIL
+
+ ["\\nms932\\n" => "shift_jis"]
+ expected: FAIL
+
+ ["\\fms932" => "shift_jis"]
+ expected: FAIL
+
+ ["ms932\\f" => "shift_jis"]
+ expected: FAIL
+
+ ["\\fms932\\f" => "shift_jis"]
+ expected: FAIL
+
+ ["\\rms932" => "shift_jis"]
+ expected: FAIL
+
+ ["ms932\\r" => "shift_jis"]
+ expected: FAIL
+
+ ["\\rms932\\r" => "shift_jis"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_assign.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_assign.html.ini
index c9e2281c872..f3e2538746c 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_assign.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_assign.html.ini
@@ -3,3 +3,6 @@
[location assign]
expected: FAIL
+ [URL that fails to parse]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/Document-defaultView.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/Document-defaultView.html.ini
new file mode 100644
index 00000000000..9ba1c81088c
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/the-window-object/Document-defaultView.html.ini
@@ -0,0 +1,15 @@
+[Document-defaultView.html]
+ type: testharness
+ expected: TIMEOUT
+ [Document created with the Document constructor]
+ expected: FAIL
+
+ [Document created with createDocument]
+ expected: FAIL
+
+ [Document created with createHTMLDocument]
+ expected: FAIL
+
+ [Document created with XML DOMParser]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/Window-document.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/Window-document.html.ini
new file mode 100644
index 00000000000..382f076961f
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/the-window-object/Window-document.html.ini
@@ -0,0 +1,5 @@
+[Window-document.html]
+ type: testharness
+ [Document in a browsing context]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/custom-attrs.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/custom-attrs.html.ini
new file mode 100644
index 00000000000..1081dd9595a
--- /dev/null
+++ b/tests/wpt/metadata/html/dom/elements/global-attributes/custom-attrs.html.ini
@@ -0,0 +1,5 @@
+[custom-attrs.html]
+ type: testharness
+ [Setting an Element's dataset property should not interfere with namespaced attributes with same name]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/forms/constraints/form-validation-validity-badInput.html.ini b/tests/wpt/metadata/html/semantics/forms/constraints/form-validation-validity-badInput.html.ini
index 29321ef63c6..3e69f28748e 100644
--- a/tests/wpt/metadata/html/semantics/forms/constraints/form-validation-validity-badInput.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/constraints/form-validation-validity-badInput.html.ini
@@ -33,3 +33,12 @@
[[INPUT in COLOR status\] The value attribute cannot convert to a valid sample color]
expected: FAIL
+ [[INPUT in DATETIME-LOCAL status\] The value attribute is empty]
+ expected: FAIL
+
+ [[INPUT in DATETIME-LOCAL status\] The value attribute is a valid date and time string]
+ expected: FAIL
+
+ [[INPUT in DATETIME-LOCAL status\] The value attribute cannot convert to a valid normalized forced-UTC global date and time string]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini b/tests/wpt/metadata/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini
index b181665f0ef..b800a621e4b 100644
--- a/tests/wpt/metadata/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini
@@ -1,6 +1,5 @@
[textfieldselection-setSelectionRange.html]
type: testharness
-
[textarea typeof(input.setSelectionRange)']
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/input-textselection-01.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/input-textselection-01.html.ini
deleted file mode 100644
index 8688e717a48..00000000000
--- a/tests/wpt/metadata/html/semantics/forms/the-input-element/input-textselection-01.html.ini
+++ /dev/null
@@ -1,71 +0,0 @@
-[input-textselection-01.html]
- type: testharness
- [Selection attributes should apply to type text]
- expected: FAIL
-
- [Selection attributes should apply to type search]
- expected: FAIL
-
- [Selection attributes should apply to type url]
- expected: FAIL
-
- [Selection attributes should apply to type tel]
- expected: FAIL
-
- [Selection attributes should apply to type email]
- expected: FAIL
-
- [Selection attributes should apply to type password]
- expected: FAIL
-
- [Selection attributes should not apply to type hidden]
- expected: FAIL
-
- [Selection attributes should not apply to type datetime]
- expected: FAIL
-
- [Selection attributes should not apply to type date]
- expected: FAIL
-
- [Selection attributes should not apply to type month]
- expected: FAIL
-
- [Selection attributes should not apply to type week]
- expected: FAIL
-
- [Selection attributes should not apply to type datetime-local]
- expected: FAIL
-
- [Selection attributes should not apply to type number]
- expected: FAIL
-
- [Selection attributes should not apply to type range]
- expected: FAIL
-
- [Selection attributes should not apply to type color]
- expected: FAIL
-
- [Selection attributes should not apply to type checkbox]
- expected: FAIL
-
- [Selection attributes should not apply to type radio]
- expected: FAIL
-
- [Selection attributes should not apply to type button]
- expected: FAIL
-
- [Selection attributes should not apply to type file]
- expected: FAIL
-
- [Selection attributes should not apply to type submit]
- expected: FAIL
-
- [Selection attributes should not apply to type image]
- expected: FAIL
-
- [Selection attributes should not apply to type reset]
- expected: FAIL
-
- [Selection attributes should not apply to type email]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/selection.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/selection.html.ini
new file mode 100644
index 00000000000..a2ac07f8cdf
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/forms/the-input-element/selection.html.ini
@@ -0,0 +1,134 @@
+[selection.html]
+ type: testharness
+ [input type text should support the select() method]
+ expected: FAIL
+
+ [input type search should support the select() method]
+ expected: FAIL
+
+ [input type url should support the select() method]
+ expected: FAIL
+
+ [input type tel should support the select() method]
+ expected: FAIL
+
+ [input type email should support the select() method]
+ expected: FAIL
+
+ [input type password should support the select() method]
+ expected: FAIL
+
+ [input type date should support the select() method]
+ expected: FAIL
+
+ [input type month should support the select() method]
+ expected: FAIL
+
+ [input type week should support the select() method]
+ expected: FAIL
+
+ [input type time should support the select() method]
+ expected: FAIL
+
+ [input type datetime-local should support the select() method]
+ expected: FAIL
+
+ [input type number should support the select() method]
+ expected: FAIL
+
+ [input type color should support the select() method]
+ expected: FAIL
+
+ [input type file should support the select() method]
+ expected: FAIL
+
+ [input type hidden should not support the select() method]
+ expected: FAIL
+
+ [input type range should not support the select() method]
+ expected: FAIL
+
+ [input type checkbox should not support the select() method]
+ expected: FAIL
+
+ [input type radio should not support the select() method]
+ expected: FAIL
+
+ [input type submit should not support the select() method]
+ expected: FAIL
+
+ [input type image should not support the select() method]
+ expected: FAIL
+
+ [input type reset should not support the select() method]
+ expected: FAIL
+
+ [input type button should not support the select() method]
+ expected: FAIL
+
+ [input type text should support all selection attributes and methods]
+ expected: FAIL
+
+ [input type search should support all selection attributes and methods]
+ expected: FAIL
+
+ [input type url should support all selection attributes and methods]
+ expected: FAIL
+
+ [input type tel should support all selection attributes and methods]
+ expected: FAIL
+
+ [input type password should support all selection attributes and methods]
+ expected: FAIL
+
+ [input type hidden should not support variable-length selections]
+ expected: FAIL
+
+ [input type email should not support variable-length selections]
+ expected: FAIL
+
+ [input type date should not support variable-length selections]
+ expected: FAIL
+
+ [input type month should not support variable-length selections]
+ expected: FAIL
+
+ [input type week should not support variable-length selections]
+ expected: FAIL
+
+ [input type time should not support variable-length selections]
+ expected: FAIL
+
+ [input type datetime-local should not support variable-length selections]
+ expected: FAIL
+
+ [input type number should not support variable-length selections]
+ expected: FAIL
+
+ [input type range should not support variable-length selections]
+ expected: FAIL
+
+ [input type color should not support variable-length selections]
+ expected: FAIL
+
+ [input type checkbox should not support variable-length selections]
+ expected: FAIL
+
+ [input type radio should not support variable-length selections]
+ expected: FAIL
+
+ [input type file should not support variable-length selections]
+ expected: FAIL
+
+ [input type submit should not support variable-length selections]
+ expected: FAIL
+
+ [input type image should not support variable-length selections]
+ expected: FAIL
+
+ [input type reset should not support variable-length selections]
+ expected: FAIL
+
+ [input type button should not support variable-length selections]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini
index 9a43e6289ce..fa35ef9c41f 100644
--- a/tests/wpt/metadata/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini
+++ b/tests/wpt/metadata/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html.ini
@@ -1,8 +1,5 @@
[template-as-a-descendant.html]
type: testharness
- [Template element as a descendant of the FRAMESET element. Template element is created by innerHTML]
- expected: FAIL
-
[Template element as an indirect descendant of the FRAMESET element. Template element is created by innerHTML]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus-autofocus.html.ini b/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus-autofocus.html.ini
new file mode 100644
index 00000000000..a513ec1c976
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/focus-autofocus.html.ini
@@ -0,0 +1,6 @@
+[focus-autofocus.html]
+ type: testharness
+ expected: TIMEOUT
+ [:focus selector should work with an autofocused element.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm.html.ini
index 5a1fe9cac37..d0ea8e8024f 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm.html.ini
@@ -2,3 +2,4 @@
type: testharness
[beforeunload listener returning null cancels event]
expected: FAIL
+
diff --git a/tests/wpt/metadata/mozilla-sync b/tests/wpt/metadata/mozilla-sync
index 801aa5ef1fa..59c2f10161e 100644
--- a/tests/wpt/metadata/mozilla-sync
+++ b/tests/wpt/metadata/mozilla-sync
@@ -1 +1 @@
-26b40afe237f97ebd81d537e8ed1201c7c1e4011 \ No newline at end of file
+183772583fcbb1f8103e8d6542a620134ba9182e \ No newline at end of file
diff --git a/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini b/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini
new file mode 100644
index 00000000000..a1f18edc547
--- /dev/null
+++ b/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini
@@ -0,0 +1,8 @@
+[create-touch-touchlist.html]
+ type: testharness
+ [document.createTouchList exists and correctly creates a TouchList from a single Touch]
+ expected: FAIL
+
+ [document.createTouchList exists and correctly creates a TouchList from two Touch objects]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/touch-events/touch-globaleventhandler-interface.html.ini b/tests/wpt/metadata/touch-events/touch-globaleventhandler-interface.html.ini
new file mode 100644
index 00000000000..71a8db90c6f
--- /dev/null
+++ b/tests/wpt/metadata/touch-events/touch-globaleventhandler-interface.html.ini
@@ -0,0 +1,8 @@
+[touch-globaleventhandler-interface.html]
+ type: testharness
+ [Touch events in GlobalEventHandlers]
+ expected: FAIL
+
+ [Touch events are GlobalEventHandlers' own property]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/touch-events/touch-touchevent-constructor.html.ini b/tests/wpt/metadata/touch-events/touch-touchevent-constructor.html.ini
new file mode 100644
index 00000000000..f094e4f1a98
--- /dev/null
+++ b/tests/wpt/metadata/touch-events/touch-touchevent-constructor.html.ini
@@ -0,0 +1,11 @@
+[touch-touchevent-constructor.html]
+ type: testharness
+ [Touch constructor exists and creates a Touch object with minimum properties]
+ expected: FAIL
+
+ [Touch constructor exists and creates a Touch object with requested properties]
+ expected: FAIL
+
+ [TouchEvent constructor exists and creates a TouchEvent object with requested properties]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
index f9e1731d2db..77935345d98 100644
--- a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
+++ b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini
@@ -1,3 +1,947 @@
[a-element-xhtml.xhtml]
type: testharness
- expected: TIMEOUT
+ [Parsing: <http://example\t.\norg> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:foo.com> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <\t :foo.com \n> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: < foo.com > against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <a:\t foo.com> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:0/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:b/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f: /c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:\n/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f:999999/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: < \t> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:foo.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:foo.com\\> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:a> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:\\> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:#> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <#> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <#/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <#\\> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <#;?> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <?> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <:23> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </:23> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <::> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <::23> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo://> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http::@c:29> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://&a:foo(b\]c@d:2/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo:/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo://///////> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <foo:////://///> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <c:/foo> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <//foo/bar> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <[61:24:74\]:98> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:[61:27\]/:foo> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://[1::2\]:3:4> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://2001::1> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://2001::1\]> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://2001::1\]:80> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://[2001::1\]> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http://[2001::1\]:80> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <https:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <file:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ws:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <wss:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <data:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <http:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ftp:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <https:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ftps:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <ws:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <wss:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <data:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <javascript:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <mailto:example.com/> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </a/b/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </a/ /c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </a%2fc> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: </a/%2f/c> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <#β> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>]
+ expected: FAIL
+
+ [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <//server/file> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: </\\server/file> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file:///home/me> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <//> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <///> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <///test> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file://test> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file://localhost> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file://localhost/> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file://localhost/test> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <test> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <file:test> against <file:///tmp/mock/path>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/././foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/./.foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/.> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/./> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar/..> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar/../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/..bar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar/../ton> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/../../..> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/../../../ton> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/%2e> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/%2e%2> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com////../..> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar//../..> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo/bar//..> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/%20foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%2> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%2zbar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%2©zbar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%41%7a> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo\t‘%91> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo%00%51> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/foo\tbar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/@asdf%40> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/你好你好> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/‥/foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com//foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <data:test# »> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://[www.google.com\]/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www.google.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://192.0x00A80001> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www/foo%2Ehtml> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www/foo/%2E/html> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://user:pass@/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:\\\\www.google.com\\foo> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://foo:81/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <httpa://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://foo:-80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https://foo:443/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftp://foo:21/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftp://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <gopher://foo:70/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <gopher://foo:443/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws://foo:81/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws://foo:443/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws://foo:815/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss://foo:80/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss://foo:81/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss://foo:443/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss://foo:815/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftp:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <madeupscheme:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <file:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftps:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <gopher:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <data:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <javascript:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <mailto:/example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftp:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <madeupscheme:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ftps:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <gopher:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <ws:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <wss:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <data:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <javascript:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <mailto:example.com/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:a:b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/a:b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://a:b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://@pple.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http::b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/:b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://:b@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/:@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://user@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https:@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:a:b@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/a:b@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://a:b@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http::@/www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:a:@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/a:@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://a:@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://www.@pple.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:@:www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http:/@:www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://@:www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://:@www.example.com> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: </> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: </test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <.> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <..> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <./test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <../test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <../aaa/test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <../../test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <中/test.txt> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <http://www.example2.com> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <//www.example2.com> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <file:...> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <file:..> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <file:a> against <http://www.example.com/test>]
+ expected: FAIL
+
+ [Parsing: <http://ExAmPlE.CoM> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://example example.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://[\]> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://[:\]> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://GOO  goo.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://GOO​⁠goo.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://www.foo。bar.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://﷐zyx.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://Go.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%41.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%00.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://你好你好> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%zz%66%a.com> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%25> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://hello%00> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://192.168.0.257> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://192.168.0.1 hello> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://0Xc0.0250.01> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://[google.com\]> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>]
+ expected: FAIL
+
+ [Parsing: <#> against <test:test>]
+ expected: FAIL
+
+ [Parsing: <#x> against <mailto:x@x.com>]
+ expected: FAIL
+
+ [Parsing: <#x> against <data:,>]
+ expected: FAIL
+
+ [Parsing: <#x> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <#> against <test:test?test>]
+ expected: FAIL
+
+ [Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>]
+ expected: FAIL
+
+ [Parsing: <https://@@@example> against <http://doesnotmatter/>]
+ expected: FAIL
+
+ [Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>]
+ expected: FAIL
+
+ [Parsing: </some/path> against <http://user@example.org/smth>]
+ expected: FAIL
+
+ [Parsing: <> against <http://user:pass@example.org:21/smth>]
+ expected: FAIL
+
+ [Parsing: </some/path> against <http://user:pass@example.org:21/smth>]
+ expected: FAIL
+
+ [Parsing: <i> against <sc:sd>]
+ expected: FAIL
+
+ [Parsing: <i> against <sc:sd/sd>]
+ expected: FAIL
+
+ [Parsing: <i> against <sc:/pa/pa>]
+ expected: FAIL
+
+ [Parsing: <i> against <sc://ho/pa>]
+ expected: FAIL
+
+ [Parsing: <i> against <sc:///pa/pa>]
+ expected: FAIL
+
+ [Parsing: <../i> against <sc:sd>]
+ expected: FAIL
+
+ [Parsing: <../i> against <sc:sd/sd>]
+ expected: FAIL
+
+ [Parsing: <../i> against <sc:/pa/pa>]
+ expected: FAIL
+
+ [Parsing: <../i> against <sc://ho/pa>]
+ expected: FAIL
+
+ [Parsing: <../i> against <sc:///pa/pa>]
+ expected: FAIL
+
+ [Parsing: </i> against <sc:sd>]
+ expected: FAIL
+
+ [Parsing: </i> against <sc:sd/sd>]
+ expected: FAIL
+
+ [Parsing: </i> against <sc:/pa/pa>]
+ expected: FAIL
+
+ [Parsing: </i> against <sc://ho/pa>]
+ expected: FAIL
+
+ [Parsing: </i> against <sc:///pa/pa>]
+ expected: FAIL
+
+ [Parsing: <?i> against <sc:sd>]
+ expected: FAIL
+
+ [Parsing: <?i> against <sc:sd/sd>]
+ expected: FAIL
+
+ [Parsing: <?i> against <sc:/pa/pa>]
+ expected: FAIL
+
+ [Parsing: <?i> against <sc://ho/pa>]
+ expected: FAIL
+
+ [Parsing: <?i> against <sc:///pa/pa>]
+ expected: FAIL
+
+ [Parsing: <#i> against <sc:sd>]
+ expected: FAIL
+
+ [Parsing: <#i> against <sc:sd/sd>]
+ expected: FAIL
+
+ [Parsing: <#i> against <sc:/pa/pa>]
+ expected: FAIL
+
+ [Parsing: <#i> against <sc://ho/pa>]
+ expected: FAIL
+
+ [Parsing: <#i> against <sc:///pa/pa>]
+ expected: FAIL
+
+ [Parsing: <about:/../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <data:/../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <javascript:/../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <mailto:/../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <sc://ñ.test/> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <sc:\\../> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>]
+ expected: FAIL
+
+ [Parsing: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/a-element.html.ini b/tests/wpt/metadata/url/a-element.html.ini
index 648141e3b84..0059f291093 100644
--- a/tests/wpt/metadata/url/a-element.html.ini
+++ b/tests/wpt/metadata/url/a-element.html.ini
@@ -942,3 +942,6 @@
[Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>]
expected: FAIL
+ [Parsing: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/url-constructor.html.ini b/tests/wpt/metadata/url/url-constructor.html.ini
index fb8ac6d4bbb..e9f116005c1 100644
--- a/tests/wpt/metadata/url/url-constructor.html.ini
+++ b/tests/wpt/metadata/url/url-constructor.html.ini
@@ -195,3 +195,6 @@
[Parsing: <http://www/foo%2Ehtml> against <about:blank>]
expected: FAIL
+ [Parsing: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank>]
+ expected: FAIL
+
diff --git a/tests/wpt/web-platform-tests/FileAPI/blob/Blob-constructor.html b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-constructor.html
index dced17de0a5..799091d55ac 100644
--- a/tests/wpt/web-platform-tests/FileAPI/blob/Blob-constructor.html
+++ b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-constructor.html
@@ -8,11 +8,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../support/Blob.js"></script>
-<p><strong><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=23683">Discussion</a>
-is ongoing that will affect a number of the following tests.</strong>
<div id="log"></div>
-<!-- used by "platform object that supports indexed properties" tests -->
-<iframe style="display:none"></iframe>
<script>
test(function() {
assert_true("Blob" in window, "window should have a Blob property.");
@@ -51,6 +47,10 @@ test(function() {
"FAIL",
new Date(),
new RegExp(),
+ {},
+ { 0: "FAIL", length: 1 },
+ document.createElement("div"),
+ window,
];
args.forEach(function(arg) {
assert_throws(new TypeError(), function() {
@@ -60,18 +60,24 @@ test(function() {
}, "Passing non-objects, Dates and RegExps for blobParts should throw a TypeError.");
test_blob(function() {
- return new Blob({});
+ return new Blob({
+ [Symbol.iterator]: Array.prototype[Symbol.iterator],
+ });
}, {
expected: "",
type: "",
- desc: "A plain object should be treated as a sequence for the blobParts argument."
+ desc: "A plain object with @@iterator should be treated as a sequence for the blobParts argument."
});
test_blob(function() {
- return new Blob({ 0: "PASS", length: 1 });
+ return new Blob({
+ [Symbol.iterator]: Array.prototype[Symbol.iterator],
+ 0: "PASS",
+ length: 1
+ });
}, {
expected: "PASS",
type: "",
- desc: "A plain object with a length property should be treated as a sequence for the blobParts argument."
+ desc: "A plain object with @@iterator and a length property should be treated as a sequence for the blobParts argument."
});
test_blob(function() {
return new Blob(new String("xyz"));
@@ -88,10 +94,14 @@ test_blob(function() {
desc: "A Uint8Array object should be treated as a sequence for the blobParts argument."
});
-var test_error = { name: "test" };
+var test_error = {
+ name: "test",
+ message: "test error",
+};
test(function() {
var obj = {
+ [Symbol.iterator]: Array.prototype[Symbol.iterator],
get length() { throw test_error; }
};
assert_throws(test_error, function() {
@@ -99,7 +109,7 @@ test(function() {
});
}, "The length getter should be invoked and any exceptions should be propagated.");
-test_blob(function() {
+test(function() {
var element = document.createElement("div");
element.appendChild(document.createElement("div"));
element.appendChild(document.createElement("p"));
@@ -107,16 +117,15 @@ test_blob(function() {
Object.defineProperty(list, "length", {
get: function() { throw test_error; }
});
- return new Blob(list);
-}, {
- expected: "[object HTMLDivElement][object HTMLParagraphElement]",
- type: "",
- desc: "A platform object that supports indexed properties should be treated as a sequence for the blobParts argument (overwritten 'length'.)"
-});
+ assert_throws(test_error, function() {
+ new Blob(list);
+ });
+}, "A platform object that supports indexed properties should be treated as a sequence for the blobParts argument (overwritten 'length'.)");
test(function() {
assert_throws(test_error, function() {
var obj = {
+ [Symbol.iterator]: Array.prototype[Symbol.iterator],
length: {
valueOf: null,
toString: function() { throw test_error; }
@@ -126,6 +135,7 @@ test(function() {
});
assert_throws(test_error, function() {
var obj = {
+ [Symbol.iterator]: Array.prototype[Symbol.iterator],
length: { valueOf: function() { throw test_error; } }
};
new Blob(obj);
@@ -135,6 +145,10 @@ test(function() {
test(function() {
var received = [];
var obj = {
+ get [Symbol.iterator]() {
+ received.push("Symbol.iterator");
+ return Array.prototype[Symbol.iterator];
+ },
get length() {
received.push("length getter");
return {
@@ -166,15 +180,18 @@ test(function() {
new Blob(obj);
});
assert_array_equals(received, [
+ "Symbol.iterator",
"length getter",
"length valueOf",
"0 getter",
"0 toString",
- "1 getter"
+ "length getter",
+ "length valueOf",
+ "1 getter",
]);
}, "Getters and value conversions should happen in order until an exception is thrown.");
-// XXX should add tests edge cases of ToUint32(length)
+// XXX should add tests edge cases of ToLength(length)
test(function() {
assert_throws(test_error, function() {
@@ -201,7 +218,7 @@ test_blob(function() {
];
return new Blob(arr);
}, {
- expected: "PASSundefined",
+ expected: "PASS",
type: "",
desc: "Changes to the blobParts array should be reflected in the returned Blob (pop)."
});
@@ -211,19 +228,19 @@ test_blob(function() {
{
toString: function() {
if (arr.length === 3) {
- return "SS";
+ return "A";
}
arr.unshift({
toString: function() {
assert_unreached("Should only access index 0 once.");
}
});
- return "PA";
+ return "P";
}
},
{
toString: function() {
- assert_unreached("Should not access the final element.");
+ return "SS";
}
}
];
@@ -298,29 +315,6 @@ test_blob(function() {
});
test_blob(function() {
- return new Blob(document.createElement("div"));
-}, {
- expected: "",
- type: "",
- desc: "Passing an element as the blobParts array should work."
-});
-
-test_blob(function() {
- return new Blob(window);
-}, {
- expected: "[object Window]",
- type: "",
- desc: "Passing an platform object that supports indexed properties as the blobParts array should work (window)."
-});
-test_blob(function() {
- window[0].toString = function() { return "foo"; };
- return new Blob(window);
-}, {
- expected: "foo",
- type: "",
- desc: "Passing an platform object that supports indexed properties as the blobParts array should work (window with custom toString)."
-});
-test_blob(function() {
var select = document.createElement("select");
select.appendChild(document.createElement("option"));
return new Blob(select);
diff --git a/tests/wpt/web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js
new file mode 100644
index 00000000000..a67060e7b85
--- /dev/null
+++ b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js
@@ -0,0 +1,14 @@
+importScripts("/resources/testharness.js");
+
+async_test(function() {
+ var data = "TEST";
+ var blob = new Blob([data], {type: "text/plain"});
+ var reader = new FileReader();
+ reader.onload = this.step_func_done(function() {
+ assert_equals(reader.result, data);
+ });
+ reader.onerror = this.unreached_func("Unexpected error event");
+ reader.readAsText(blob);
+}, "Create Blob in Worker");
+
+done();
diff --git a/tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice-overflow.html b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice-overflow.html
new file mode 100644
index 00000000000..56891af5f17
--- /dev/null
+++ b/tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice-overflow.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Blob slice overflow</title>
+<link rel="author" title="Intel" href="http://www.intel.com">
+<link rel="help" href="https://w3c.github.io/FileAPI/#dfn-slice">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+
+var text = '';
+
+for (var i = 0; i < 2000; ++i) {
+ text += 'A';
+}
+
+test(function() {
+ var blob = new Blob([text]);
+ var sliceBlob = blob.slice(-1, 2000);
+ assert_equals(sliceBlob.size, 2000-(2000-1), "Bolb slice size");
+}, "slice start is negative, relativeStart will be max((size + start), 0)");
+
+test(function() {
+ var blob = new Blob([text]);
+ var sliceBlob = blob.slice(2001, 2000);
+ assert_equals(sliceBlob.size, 0, "Bolb slice size");
+}, "slice start is greater than blob size, relativeStart will be min(start, size)");
+
+test(function() {
+ var blob = new Blob([text]);
+ var sliceBlob = blob.slice(1998, -1);
+ assert_equals(sliceBlob.size, (2000-1)-1998, "Bolb slice size");
+}, "slice end is negative, relativeEnd will be max((size + end), 0)");
+
+test(function() {
+ var blob = new Blob([text]);
+ var sliceBlob = blob.slice(1998, 2999);
+ assert_equals(sliceBlob.size, 2000-1998, "Bolb slice size");
+}, "slice end is greater than blob size, relativeEnd will be min(end, size)");
+
+</script>
+
diff --git a/tests/wpt/web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.js b/tests/wpt/web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.js
new file mode 100644
index 00000000000..4e003b3c958
--- /dev/null
+++ b/tests/wpt/web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.js
@@ -0,0 +1,15 @@
+importScripts("/resources/testharness.js");
+
+async_test(function() {
+ var file = new File(["bits"], "dummy", { 'type': 'text/plain', lastModified: 42 });
+ var reader = new FileReader();
+ reader.onload = this.step_func_done(function() {
+ assert_equals(file.name, "dummy", "file name");
+ assert_equals(reader.result, "bits", "file content");
+ assert_equals(file.lastModified, 42, "file lastModified");
+ });
+ reader.onerror = this.unreached_func("Unexpected error event");
+ reader.readAsText(file);
+}, "FileReader in Worker");
+
+done();
diff --git a/tests/wpt/web-platform-tests/IndexedDB/OWNERS b/tests/wpt/web-platform-tests/IndexedDB/OWNERS
index 711894a54b3..bd8dca9f6ad 100644
--- a/tests/wpt/web-platform-tests/IndexedDB/OWNERS
+++ b/tests/wpt/web-platform-tests/IndexedDB/OWNERS
@@ -5,4 +5,3 @@
@zqzhang
@yunxiaoxie
@zhaozihao
-@foolip
diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbkeyrange-includes.htm b/tests/wpt/web-platform-tests/IndexedDB/idbkeyrange-includes.htm
new file mode 100644
index 00000000000..bfe9d2c482d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/idbkeyrange-includes.htm
@@ -0,0 +1,33 @@
+<!doctype html>
+<meta charset=utf-8>
+<title></title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+
+ test( function() {
+ var closedRange = IDBKeyRange.bound(5, 20);
+ assert_true(!!closedRange.includes, "IDBKeyRange has a .includes");
+ assert_true(closedRange.includes(7), "in range");
+ assert_false(closedRange.includes(1), "below range");
+ assert_false(closedRange.includes(42), "above range");
+ assert_true(closedRange.includes(5) && closedRange.includes(20),
+ "boundary points");
+ assert_throws("DataError", function() { closedRange.includes({}) },
+ "invalid key");
+ }, "IDBKeyRange.includes() with a closed range");
+
+ test( function() {
+ var openRange = IDBKeyRange.bound(5, 20, true, true);
+ assert_false(openRange.includes(5) || openRange.includes(20),
+ "boundary points");
+ }, "IDBKeyRange.includes() with an open range");
+
+ test( function() {
+ var range = IDBKeyRange.only(42);
+ assert_true(range.includes(42), "in range");
+ assert_false(range.includes(1), "below range");
+ assert_false(range.includes(9000), "above range");
+ }, "IDBKeyRange.includes() with an only range");
+
+</script>
diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md
index cac36bc2f37..d207a8bd15c 100644
--- a/tests/wpt/web-platform-tests/README.md
+++ b/tests/wpt/web-platform-tests/README.md
@@ -137,14 +137,6 @@ they will be under `html/browsers/history/the-history-interface/`.
Various resources that tests depend on are in `common`, `images`, and
`fonts`.
-
-If you're looking at a section of the specification and can't figure
-out where the directory is for it in the tree, just run:
-
-```
-node tools/scripts/id2path.js your-id
-```
-
Branches
========
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.htm
index 60a6eeecd83..dde94f23986 100644
--- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.htm
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.htm
@@ -9,21 +9,6 @@
</head>
<body>
<div id="log"></div>
- <script>
- var test = async_test()
- test.step(function() {
- var client = new XMLHttpRequest()
- client.open("GET", "...")
- client.onreadystatechange = function() {
- test.step(function() {
- assert_unreached()
- })
- }
- client.abort()
- assert_equals(client.readyState, 0)
- assert_throws("InvalidStateError", function() { client.send("test") }, "calling send() after abort()")
- })
- test.done()
- </script>
+ <script src="abort-during-open.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js
new file mode 100644
index 00000000000..4ddb84fe8b7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js
@@ -0,0 +1,14 @@
+var test = async_test()
+test.step(function() {
+ var client = new XMLHttpRequest()
+ client.open("GET", "...")
+ client.onreadystatechange = function() {
+ test.step(function() {
+ assert_unreached()
+ })
+ }
+ client.abort()
+ assert_equals(client.readyState, 0)
+ assert_throws("InvalidStateError", function() { client.send("test") }, "calling send() after abort()")
+})
+test.done()
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.worker.js b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.worker.js
new file mode 100644
index 00000000000..ffb687d0c87
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.worker.js
@@ -0,0 +1,3 @@
+importScripts("/resources/testharness.js");
+importScripts("abort-during-open.js");
+done();
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth7/corsenabled.py b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth7/corsenabled.py
new file mode 100644
index 00000000000..ce22697390d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth7/corsenabled.py
@@ -0,0 +1,20 @@
+import imp
+import os
+
+def main(request, response):
+ response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"));
+ response.headers.set('Access-Control-Allow-Credentials', 'true');
+ response.headers.set('Access-Control-Allow-Methods', 'GET');
+ response.headers.set('Access-Control-Allow-Headers', 'authorization, x-user, x-pass');
+ response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user');
+ auth = imp.load_source("", os.path.join(os.path.abspath(os.curdir),
+ "XMLHttpRequest",
+ "resources",
+ "authentication.py"))
+ if request.method == "OPTIONS":
+ return ""
+ else:
+ return auth.main(request, response)
+
+
+
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth8/corsenabled-no-authorize.py b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth8/corsenabled-no-authorize.py
new file mode 100644
index 00000000000..cb40efb081b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth8/corsenabled-no-authorize.py
@@ -0,0 +1,20 @@
+import imp
+import os
+
+def main(request, response):
+ response.headers.set('Access-Control-Allow-Origin', request.headers.get("origin"));
+ response.headers.set('Access-Control-Allow-Credentials', 'true');
+ response.headers.set('Access-Control-Allow-Methods', 'GET');
+ response.headers.set('Access-Control-Allow-Headers', 'x-user, x-pass');
+ response.headers.set('Access-Control-Expose-Headers', 'x-challenge, xhr-user, ses-user');
+ auth = imp.load_source("", os.path.join(os.path.abspath(os.curdir),
+ "XMLHttpRequest",
+ "resources",
+ "authentication.py"))
+ if request.method == "OPTIONS":
+ return ""
+ else:
+ return auth.main(request, response)
+
+
+
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth9/auth.py b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth9/auth.py
new file mode 100644
index 00000000000..8b6682686c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/auth9/auth.py
@@ -0,0 +1,10 @@
+import imp
+import os
+
+here = os.path.split(os.path.abspath(__file__))[0]
+
+def main(request, response):
+ auth = imp.load_source("", os.path.join(here,
+ "..",
+ "authentication.py"))
+ return auth.main(request, response)
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm
new file mode 100644
index 00000000000..9915e8821c9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm
@@ -0,0 +1,36 @@
+<!doctype html>
+<html>
+ <head>
+ <title>XMLHttpRequest: send() - "Basic" authenticated request using setRequestHeader() and open() arguments (asserts header wins)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="following::ol[1]/li[6]" />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::code[contains(@title,'http-authorization')]/.." />
+ </head>
+ <body>
+ <div id="log"></div>
+ <script>
+ var test = async_test()
+ test.step(function() {
+ var client = new XMLHttpRequest(),
+ urlstart = location.host + location.pathname.replace(/\/[^\/]*$/, '/'),
+ user = token()
+ client.open("GET", location.protocol+'//'+urlstart + "resources/auth9/auth.py", false, 'open-' + user, 'open-pass')
+ client.setRequestHeader("x-user", user)
+ client.setRequestHeader('Authorization', 'Basic ' + btoa(user + ":pass"))
+ client.onreadystatechange = function () {
+ if (client.readyState < 4) {return}
+ test.step( function () {
+ assert_equals(client.responseText, user + '\npass')
+ assert_equals(client.status, 200)
+ assert_equals(client.getResponseHeader('x-challenge'), 'DID-NOT')
+ test.done()
+ })
+ }
+ client.send(null)
+ })
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm
new file mode 100644
index 00000000000..14edf5bd778
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm
@@ -0,0 +1,61 @@
+<!doctype html>
+<html>
+ <head>
+ <title>XMLHttpRequest: send() - "Basic" authenticated CORS request using setRequestHeader() but not setting withCredentials (expects to succeed)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="following::ol[1]/li[6]" />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::code[contains(@title,'http-authorization')]/.." />
+ </head>
+ <body>
+ <div id="log"></div>
+ <script>
+ function doTest(desc, pathsuffix, conditionsFunc, errorFunc, endFunc) {
+ var test = async_test(desc)
+ test.step(function() {
+ var client = new XMLHttpRequest(),
+ urlstart = location.host + location.pathname.replace(/\/[^\/]*$/, '/'),
+ user = token()
+ client.open("GET", location.protocol + "//www1." + urlstart + "resources/" + pathsuffix, false)
+ client.setRequestHeader("x-user", user)
+ client.setRequestHeader("x-pass", 'pass')
+ client.setRequestHeader("Authorization", "Basic " + btoa(user + ":pass"))
+ client.onerror = test.step_func(errorFunc)
+ client.onreadystatechange = test.step_func(function () {
+ if(client.readyState < 4) {return}
+ conditionsFunc(client, test, user)
+ })
+ if(endFunc) {
+ client.onloadend = test.step_func(endFunc)
+ }
+ client.send(null)
+ })
+ }
+
+ doTest("CORS request with setRequestHeader auth to URL accepting Authorization header", "auth7/corsenabled.py", function (client, test, user) {
+ assert_true(client.responseText == (user + "\npass"), "responseText should contain the right user and password")
+ assert_equals(client.status, 200)
+ assert_equals(client.getResponseHeader("x-challenge"), "DID-NOT")
+ test.done()
+ }, function(){
+ assert_unreached("Cross-domain request is permitted and should not cause an error")
+ this.done()
+ })
+
+ var errorFired = false;
+ doTest("CORS request with setRequestHeader auth to URL NOT accepting Authorization header", "auth8/corsenabled-no-authorize.py", function (client, test, user) {
+ assert_equals(client.responseText, '')
+ assert_equals(client.status, 0)
+ }, function(e){
+ errorFired = true
+ assert_equals(e.type, 'error', 'Error event fires when Authorize is a user-set header but not allowed by the CORS endpoint')
+ }, function() {
+ assert_true(errorFired, 'The error event should fire')
+ this.done()
+ })
+
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.htm
index 5b22a3da871..cbcbdb44e00 100644
--- a/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.htm
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.htm
@@ -8,14 +8,6 @@
</head>
<body>
<div id="log"></div>
- <script>
- test(function() {
- var client = new XMLHttpRequest()
- client.open("GET", "resources/well-formed.xml")
- client.send(null)
- assert_throws("InvalidStateError", function() { client.send(null) })
- client.abort()
- })
- </script>
+ <script src="send-send.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.js b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.js
new file mode 100644
index 00000000000..2e7fe865f3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.js
@@ -0,0 +1,7 @@
+test(function() {
+ var client = new XMLHttpRequest()
+ client.open("GET", "resources/well-formed.xml")
+ client.send(null)
+ assert_throws("InvalidStateError", function() { client.send(null) })
+ client.abort()
+})
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.worker.js b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.worker.js
new file mode 100644
index 00000000000..9d34ce63df2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-send.worker.js
@@ -0,0 +1,3 @@
+importScripts("/resources/testharness.js");
+importScripts("send-send.js");
+done();
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/messages.json b/tests/wpt/web-platform-tests/conformance-checkers/messages.json
index 8f3417246d5..4873521b09e 100644
--- a/tests/wpt/web-platform-tests/conformance-checkers/messages.json
+++ b/tests/wpt/web-platform-tests/conformance-checkers/messages.json
@@ -2384,7 +2384,7 @@
"xhtml/elements/keygen/360-novalid.xhtml": "The \u201clabel\u201d element may contain at most one \u201cbutton\u201d, \u201cinput\u201d, \u201ckeygen\u201d, \u201cmeter\u201d, \u201coutput\u201d, \u201cprogress\u201d, \u201cselect\u201d, or \u201ctextarea\u201d descendant.",
"xhtml/elements/keygen/361-novalid.xhtml": "The element \u201ckeygen\u201d must not appear as a descendant of the \u201ca\u201d element.",
"xhtml/elements/link/001-novalid.xhtml": "Element \u201clink\u201d is missing required attribute \u201chref\u201d.",
- "xhtml/elements/menu/001-haswarn.xhtml": "The \u201cmenu\u201d element is not supported by browsers yet. It would probably be better to wait for implementations.",
+ "xhtml/elements/menu/001-haswarn.xhtml": "The \u201cmenu\u201d element is not supported in all browsers. Please be sure to test, and consider using a polyfill.",
"xhtml/elements/menu/001-novalid.xhtml": "The \u201ccontextmenu\u201d attribute must refer to a \u201cmenu\u201d element.",
"xhtml/elements/meter/010-novalid.xhtml": "The value of the \u201cmin\u201d attribute must be less than or equal to the value of the \u201cvalue\u201d attribute.",
"xhtml/elements/meter/011-novalid.xhtml": "Element \u201cmeter\u201d is missing required attribute \u201cvalue\u201d.",
diff --git a/tests/wpt/web-platform-tests/docs/test-format-guidelines.md b/tests/wpt/web-platform-tests/docs/test-format-guidelines.md
index 70511804e0e..430702ba769 100644
--- a/tests/wpt/web-platform-tests/docs/test-format-guidelines.md
+++ b/tests/wpt/web-platform-tests/docs/test-format-guidelines.md
@@ -224,33 +224,25 @@ information in one of two ways:
In order for the latter to work, a file must either have a name of the
form `{name}.sub.{ext}` e.g. `example-test.sub.html` or be referenced
through a URL containing `pipe=sub` in the query string
-e.g. `example-test.html?pipe=sub`. The substitution syntax uses {% raw %} `{{
-}}` {% endraw %} to delimit items for substitution. For example to substitute in
+e.g. `example-test.html?pipe=sub`. The substitution syntax uses `{{ }}`
+to delimit items for substitution. For example to substitute in
the host name on which the tests are running, one would write:
-{% raw %}
{{host}}
-{% endraw %}
As well as the host, one can get full domains, including subdomains
using the `domains` dictionary. For example:
-{% raw %}
{{domains[www]}}
-{% endraw %}
would be replaced by the fully qualified domain name of the `www`
subdomain. Ports are also available on a per-protocol basis e.g.
-{% raw %}
{{ports[ws][0]}}
-{% endraw %}
is replaced with the first (and only) websockets port, whilst
-{% raw %}
{{ports[http][1]}}
-{% endraw %}
is replaced with the second HTTP port.
@@ -258,9 +250,7 @@ The request URL itself can be used as part of the substitution using
the `location` dictionary, which has entries matching the
`window.location` API. For example
-{% raw %}
{{location[host]}}
-{% endraw %}
is replaced by `hostname:port` for the current request.
diff --git a/tests/wpt/web-platform-tests/dom/OWNERS b/tests/wpt/web-platform-tests/dom/OWNERS
index fad498154e4..6e450949e11 100644
--- a/tests/wpt/web-platform-tests/dom/OWNERS
+++ b/tests/wpt/web-platform-tests/dom/OWNERS
@@ -1,4 +1,5 @@
@ayg
+@foolip
@jdm
@Ms2ger
@plehegar
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Document-characterSet-normalization.html b/tests/wpt/web-platform-tests/dom/nodes/Document-characterSet-normalization.html
index e7a4ab5f838..48300589b85 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/Document-characterSet-normalization.html
+++ b/tests/wpt/web-platform-tests/dom/nodes/Document-characterSet-normalization.html
@@ -282,6 +282,7 @@ var encodingMap = {
],
"shift_jis": [
"csshiftjis",
+ "ms932",
"ms_kanji",
"shift-jis",
"shift_jis",
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.html b/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.html
index 38b9d1f55c5..37e05808e43 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.html
+++ b/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.html
@@ -33,11 +33,23 @@ function testAlias(arg, iface) {
"isTrusted should be initialized to false");
}, "createEvent('" + arg + "') should be initialized correctly.");
}
-aliases.forEach(function(alias) {
- testAlias(alias[0], alias[1]);
- testAlias(alias[0].toLowerCase(), alias[1]);
- testAlias(alias[0].toUpperCase(), alias[1]);
-});
+for (var alias in aliases) {
+ var iface = aliases[alias];
+ testAlias(alias, iface);
+ testAlias(alias.toLowerCase(), iface);
+ testAlias(alias.toUpperCase(), iface);
+
+ if (!alias.endsWith("s")) {
+ var plural = alias + "s";
+ if (!(plural in aliases)) {
+ test(function () {
+ assert_throws("NOT_SUPPORTED_ERR", function () {
+ var evt = document.createEvent(plural);
+ });
+ }, 'Should throw NOT_SUPPORTED_ERR for pluralized legacy event interface "' + plural + '"');
+ }
+ }
+}
test(function() {
assert_throws("NOT_SUPPORTED_ERR", function() {
@@ -61,11 +73,73 @@ This list is not exhaustive.
*/
var someNonCreateableEvents = [
"AnimationEvent",
+ "AnimationPlayerEvent",
+ "ApplicationCacheErrorEvent",
+ "AudioProcessingEvent",
+ "AutocompleteErrorEvent",
+ "BeforeInstallPromptEvent",
+ "BeforeUnloadEvent",
+ "BlobEvent",
+ "ClipboardEvent",
+ "CloseEvent",
+ "CompositionEvent",
+ "DeviceLightEvent",
+ "DeviceMotionEvent",
+ "DeviceOrientationEvent",
"DragEvent",
"ErrorEvent",
+ "ExtendableEvent",
+ "ExtendableMessageEvent",
+ "FetchEvent",
"FocusEvent",
+ "FontFaceSetLoadEvent",
+ "GamepadEvent",
+ "GeofencingEvent",
+ "HashChangeEvent",
+ "IDBVersionChangeEvent",
+ "InstallEvent",
+ "KeyEvent",
+ "MIDIConnectionEvent",
+ "MIDIMessageEvent",
+ "MediaEncryptedEvent",
+ "MediaKeyEvent",
+ "MediaKeyMessageEvent",
+ "MediaQueryListEvent",
+ "MediaStreamEvent",
+ "MediaStreamTrackEvent",
+ "MutationEvent",
+ "NotificationEvent",
+ "OfflineAudioCompletionEvent",
+ "OrientationEvent",
+ "PageTransitionEvent",
"PointerEvent",
+ "PopStateEvent",
+ "PresentationConnectionAvailableEvent",
+ "PresentationConnectionCloseEvent",
+ "ProgressEvent",
+ "PromiseRejectionEvent",
+ "PushEvent",
+ "RTCDTMFToneChangeEvent",
+ "RTCDataChannelEvent",
+ "RTCIceCandidateEvent",
+ "RelatedEvent",
+ "ResourceProgressEvent",
+ "SVGEvent",
+ "SVGZoomEvent",
+ "SecurityPolicyViolationEvent",
+ "ServicePortConnectEvent",
+ "ServiceWorkerMessageEvent",
+ "SpeechRecognitionError",
+ "SpeechRecognitionEvent",
+ "SpeechSynthesisEvent",
+ "StorageEvent",
+ "SyncEvent",
+ "TextEvent",
+ "TrackEvent",
"TransitionEvent",
+ "WebGLContextEvent",
+ "WebKitAnimationEvent",
+ "WebKitTransitionEvent",
"WheelEvent"
];
someNonCreateableEvents.forEach(function (eventInterface) {
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.js b/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.js
index 90cc73c08cd..86b4b678ccb 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.js
+++ b/tests/wpt/web-platform-tests/dom/nodes/Document-createEvent.js
@@ -1,14 +1,13 @@
-var aliases = [
- ["CustomEvent", "CustomEvent"],
- ["Event", "Event"],
- ["Events", "Event"],
- ["HTMLEvents", "Event"],
- ["KeyboardEvent", "KeyboardEvent"],
- ["KeyEvents", "KeyboardEvent"],
- ["MessageEvent", "MessageEvent"],
- ["MouseEvent", "MouseEvent"],
- ["MouseEvents", "MouseEvent"],
- ["TouchEvent", "TouchEvent"],
- ["UIEvent", "UIEvent"],
- ["UIEvents", "UIEvent"]
-];
+var aliases = {
+ "CustomEvent": "CustomEvent",
+ "Event": "Event",
+ "Events": "Event",
+ "HTMLEvents": "Event",
+ "KeyboardEvent": "KeyboardEvent",
+ "MessageEvent": "MessageEvent",
+ "MouseEvent": "MouseEvent",
+ "MouseEvents": "MouseEvent",
+ "TouchEvent": "TouchEvent",
+ "UIEvent": "UIEvent",
+ "UIEvents": "UIEvent"
+};
diff --git a/tests/wpt/web-platform-tests/dom/nodes/attributes.js b/tests/wpt/web-platform-tests/dom/nodes/attributes.js
index 096dd5fd7a3..ef32bf6a677 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/attributes.js
+++ b/tests/wpt/web-platform-tests/dom/nodes/attributes.js
@@ -6,6 +6,7 @@ function attr_is(attr, v, ln, ns, p, n) {
assert_equals(attr.namespaceURI, ns)
assert_equals(attr.prefix, p)
assert_equals(attr.name, n)
+ assert_equals(attr.nodeName, n);
assert_equals(attr.specified, true)
}
diff --git a/tests/wpt/web-platform-tests/encoding/OWNERS b/tests/wpt/web-platform-tests/encoding/OWNERS
index 4917e26650a..9467eae8ec5 100644
--- a/tests/wpt/web-platform-tests/encoding/OWNERS
+++ b/tests/wpt/web-platform-tests/encoding/OWNERS
@@ -1,2 +1,3 @@
+@foolip
@inexorabletash
@sideshowbarker
diff --git a/tests/wpt/web-platform-tests/encoding/resources/encodings.js b/tests/wpt/web-platform-tests/encoding/resources/encodings.js
index 6771a44967a..1cdf585eecc 100644
--- a/tests/wpt/web-platform-tests/encoding/resources/encodings.js
+++ b/tests/wpt/web-platform-tests/encoding/resources/encodings.js
@@ -419,6 +419,7 @@ var encodings_table =
{
"labels": [
"csshiftjis",
+ "ms932",
"ms_kanji",
"shift-jis",
"shift_jis",
diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/stream-response.js b/tests/wpt/web-platform-tests/fetch/api/basic/stream-response.js
index ea370bc7cdf..322b164557d 100644
--- a/tests/wpt/web-platform-tests/fetch/api/basic/stream-response.js
+++ b/tests/wpt/web-platform-tests/fetch/api/basic/stream-response.js
@@ -11,8 +11,6 @@ function streamBody(reader, test, count) {
} else {
test.step(function() {
assert_true(count >= 2, "Retrieve body progressively");
- test.done();
- return;
});
}
});
@@ -20,16 +18,14 @@ function streamBody(reader, test, count) {
//simulate streaming:
//count is large enough to let the UA deliver the body before it is completely retrieved
-async_test(function(test) {
- fetch(RESOURCES_DIR + "trickle.py?ms=30&count=100").then(function(resp) {
+promise_test(function(test) {
+ return fetch(RESOURCES_DIR + "trickle.py?ms=30&count=100").then(function(resp) {
var count = 0;
if (resp.body)
return streamBody(resp.body.getReader(), test, count);
else
test.step(function() {
assert_unreached( "Body does not exist in response");
- test.done();
- return;
});
});
}, "Stream response's body");
diff --git a/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html b/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html
index ddbb9a74b7d..5c374ed1faf 100644
--- a/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html
+++ b/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html
@@ -25,7 +25,7 @@
var parameters = [null, 1];
parameters.forEach(function(parameter) {
test(function() {
- assert_throws(new TypeError(), () => new Headers(parameter));
+ assert_throws(new TypeError(), function() { new Headers(parameter) });
}, "Create headers with " + parameter + " should throw");
});
diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html
new file mode 100644
index 00000000000..a2bb3e2a9bd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html
@@ -0,0 +1,103 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Request consume empty bodies</title>
+ <meta name="help" href="https://fetch.spec.whatwg.org/#request">
+ <meta name="help" href="https://fetch.spec.whatwg.org/#body-mixin">
+ <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <script>
+ function checkBodyText(request) {
+ return request.text().then(function(bodyAsText) {
+ assert_equals(bodyAsText, "", "Resolved value should be empty");
+ assert_false(request.bodyUsed);
+ });
+ }
+
+ function checkBodyBlob(request) {
+ return request.blob().then(function(bodyAsBlob) {
+ var promise = new Promise(function(resolve, reject) {
+ var reader = new FileReader();
+ reader.onload = function(evt) {
+ resolve(reader.result)
+ };
+ reader.onerror = function() {
+ reject("Blob's reader failed");
+ };
+ reader.readAsText(bodyAsBlob);
+ });
+ return promise.then(function(body) {
+ assert_equals(body, "", "Resolved value should be empty");
+ assert_false(request.bodyUsed);
+ });
+ });
+ }
+
+ function checkBodyArrayBuffer(request) {
+ return request.arrayBuffer().then(function(bodyAsArrayBuffer) {
+ assert_equals(bodyAsArrayBuffer.byteLength, 0, "Resolved value should be empty");
+ assert_false(request.bodyUsed);
+ });
+ }
+
+ function checkBodyJSON(request) {
+ return request.json().then(
+ function(bodyAsJSON) {
+ assert_unreached("JSON parsing should fail");
+ },
+ function() {
+ assert_false(request.bodyUsed);
+ });
+ }
+
+ function checkBodyFormData(request) {
+ return request.formData().then(function(bodyAsFormData) {
+ assert_true(bodyAsFormData instanceof FormData, "Should receive a FormData");
+ assert_false(request.bodyUsed);
+ });
+ }
+
+ function checkRequestWithNoBody(bodyType, checkFunction) {
+ promise_test(function(test) {
+ var request = new Request("", {"method": "POST"});
+ assert_false(request.bodyUsed);
+ return checkFunction(request);
+ }, "Consume request's body as " + bodyType);
+ }
+
+ var formData = new FormData();
+ checkRequestWithNoBody("text", checkBodyText);
+ checkRequestWithNoBody("blob", checkBodyBlob);
+ checkRequestWithNoBody("arrayBuffer", checkBodyArrayBuffer);
+ checkRequestWithNoBody("json", checkBodyJSON);
+ checkRequestWithNoBody("formData", checkBodyFormData);
+
+ function checkRequestWithEmptyBody(bodyType, body, asText) {
+ promise_test(function(test) {
+ var request = new Request("", {"method": "POST", "body": body});
+ assert_false(request.bodyUsed, "bodyUsed is false at init");
+ if (asText) {
+ return request.text().then(function(bodyAsString) {
+ assert_equals(bodyAsString.length, 0, "Resolved value should be empty");
+ assert_true(request.bodyUsed, "bodyUsed is true after being consumed");
+ });
+ }
+ return request.arrayBuffer().then(function(bodyAsArrayBuffer) {
+ assert_equals(bodyAsArrayBuffer.byteLength, 0, "Resolved value should be empty");
+ assert_true(request.bodyUsed, "bodyUsed is true after being consumed");
+ });
+ }, "Consume empty " + bodyType + " request body as " + (asText ? "text" : "arrayBuffer"));
+ }
+
+ // FIXME: Add BufferSource, FormData and URLSearchParams.
+ checkRequestWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), false);
+ checkRequestWithEmptyBody("text", "", false);
+ checkRequestWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), true);
+ checkRequestWithEmptyBody("text", "", true);
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-consume.html b/tests/wpt/web-platform-tests/fetch/api/request/request-consume.html
index 3c45ee6a288..2b12b63ef15 100644
--- a/tests/wpt/web-platform-tests/fetch/api/request/request-consume.html
+++ b/tests/wpt/web-platform-tests/fetch/api/request/request-consume.html
@@ -8,6 +8,7 @@
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+ <script src="../resources/utils.js"></script>
</head>
<body>
<script>
@@ -37,19 +38,9 @@
});
}
- <!-- Taken from https://developers.google.com -->
- function str2ab(str) {
- var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
- var bufView = new Uint16Array(buf);
- for (var i=0, strLen=str.length; i < strLen; i++) {
- bufView[i] = str.charCodeAt(i);
- }
- return buf;
- }
-
function checkBodyArrayBuffer(request, expectedBody) {
- return request.arrayBuffer().then( function(bodyAsArrayBuffer) {
- assert_array_equals(bodyAsArrayBuffer, str2ab(expectedBody), "Retrieve and verify request's body");
+ return request.arrayBuffer().then(function(bodyAsArrayBuffer) {
+ validateBufferFromString(bodyAsArrayBuffer, expectedBody, "Retrieve and verify request's body");
assert_true(request.bodyUsed, "body as arrayBuffer: bodyUsed turned true");
});
}
@@ -79,12 +70,28 @@
var formData = new FormData();
formData.append("name", "value")
- checkRequestBody("This is request's body", "text", checkBodyText);
- checkRequestBody("This is request's body", "blob", checkBodyBlob);
- checkRequestBody("This is request's body", "arrayBuffer", checkBodyArrayBuffer);
- checkRequestBody(JSON.stringify("This is request's body"), "json", checkBodyJSON);
+ var textData = JSON.stringify("This is response's body");
+ var blob = new Blob([textData], { "type" : "text/plain" });
+
+ checkRequestBody(textData, "text", checkBodyText);
+ checkRequestBody(textData, "blob", checkBodyBlob);
+ checkRequestBody(textData, "arrayBuffer", checkBodyArrayBuffer);
+ checkRequestBody(textData, "json", checkBodyJSON);
checkRequestBody(formData, "formData", checkBodyFormData);
+ function checkBlobResponseBody(blobBody, blobData, bodyType, checkFunction) {
+ promise_test(function(test) {
+ var response = new Response(blobBody);
+ assert_false(response.bodyUsed, "bodyUsed is false at init");
+ return checkFunction(response, blobData);
+ }, "Consume blob response's body as " + bodyType);
+ }
+
+ checkBlobResponseBody(blob, textData, "blob", checkBodyBlob);
+ checkBlobResponseBody(blob, textData, "text", checkBodyText);
+ checkBlobResponseBody(blob, textData, "json", checkBodyJSON);
+ checkBlobResponseBody(blob, textData, "arrayBuffer", checkBodyArrayBuffer);
+
var goodJSONValues = ["null", "1", "true", "\"string\""];
goodJSONValues.forEach(function(value) {
promise_test(function(test) {
diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-init-002.html b/tests/wpt/web-platform-tests/fetch/api/request/request-init-002.html
index baacc67e430..fa2fe18eac5 100644
--- a/tests/wpt/web-platform-tests/fetch/api/request/request-init-002.html
+++ b/tests/wpt/web-platform-tests/fetch/api/request/request-init-002.html
@@ -23,18 +23,23 @@
}
}, "Initialize Request with headers values");
+ function makeRequestInit(body, method) {
+ return {"method": method, "body": body};
+ }
+
function checkRequestInit(body, bodyType, expectedTextBody) {
promise_test(function(test) {
- var request = new Request("", {"method": "POST", "body": body});
- assert_throws(new TypeError(),
- function() { new Request("", {"method": "GET", "body": body}); }
- );
- assert_throws(new TypeError(),
- function() { new Request("", {"method": "HEAD", "body": body}); }
- );
+ var request = new Request("", makeRequestInit(body, "POST"));
+ if (body) {
+ assert_throws(new TypeError(),
+ function() { new Request("", makeRequestInit(body, "GET")); }
+ );
+ } else {
+ new Request("", makeRequestInit(body, "GET")); // should not throw
+ }
var reqHeaders = request.headers;
var mime = reqHeaders.get("Content-Type");
- assert_true(mime && mime.search(bodyType) > -1, "Content-Type header should be \"" + bodyType + "\", not \"" + mime + "\"");
+ assert_true(!body || (mime && mime.search(bodyType) > -1), "Content-Type header should be \"" + bodyType + "\", not \"" + mime + "\"");
return request.text().then(function(bodyAsText) {
//not equals: cannot guess formData exact value
assert_true( bodyAsText.search(expectedTextBody) > -1, "Retrieve and verify request body");
@@ -47,6 +52,8 @@
formaData.append("name", "value");
var usvString = "This is a USVString"
+ checkRequestInit(undefined, undefined, "");
+ checkRequestInit(null, null, "");
checkRequestInit(blob, "application/octet-binary", "This is a blob");
checkRequestInit(formaData, "multipart/form-data", "name=\"name\"\r\n\r\nvalue");
checkRequestInit(usvString, "text/plain;charset=UTF-8", "This is a USVString");
diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/utils.js b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js
index f9436649403..f97050dc879 100644
--- a/tests/wpt/web-platform-tests/fetch/api/resources/utils.js
+++ b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js
@@ -44,25 +44,31 @@ function checkRequest(request, ExpectedValuesDict) {
}
}
-//check reader's text content in an asyncronous test
-function readTextStream(reader, asyncTest, expectedValue, retrievedText) {
- if (!retrievedText)
- retrievedText = "";
- reader.read().then(function(data) {
+function stringToArray(str) {
+ var array = new Uint8Array(str.length);
+ for (var i=0, strLen = str.length; i < strLen; i++)
+ array[i] = str.charCodeAt(i);
+ return array;
+}
+
+function validateBufferFromString(buffer, expectedValue, message)
+{
+ return assert_array_equals(new Uint8Array(buffer), stringToArray(expectedValue), message);
+}
+
+function validateStreamFromString(reader, expectedValue, retrievedArrayBuffer) {
+ return reader.read().then(function(data) {
if (!data.done) {
- var decoder = new TextDecoder();
- retrievedText += decoder.decode(data.value);
- readTextStream(reader, asyncTest, expectedValue, retrievedText);
- return;
+ var newBuffer;
+ if (retrievedArrayBuffer) {
+ newBuffer = new ArrayBuffer(data.value.length + retrievedArrayBuffer.length);
+ newBuffer.set(retrievedArrayBuffer, 0);
+ newBuffer.set(data.value, retrievedArrayBuffer.length);
+ } else {
+ newBuffer = data.value;
+ }
+ return validateStreamFromString(reader, expectedValue, newBuffer);
}
- asyncTest.step(function() {
- assert_equals(retrievedText, expectedValue, "Retrieve and verify stream");
- asyncTest.done();
- });
- }).catch(function(e) {
- asyncTest.step(function() {
- assert_unreached("Cannot read stream " + e);
- asyncTest.done();
- });
+ validateBufferFromString(retrievedArrayBuffer, expectedValue, "Retrieve and verify stream");
});
}
diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html b/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html
index 8afcf36d831..2d36d97685d 100644
--- a/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html
+++ b/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html
@@ -45,12 +45,12 @@
"Expect response.headers has name:value header");
}, "Check Response's clone has the expected attribute values");
- async_test(function(test) {
- readTextStream(response.body.getReader(), test, body);
+ promise_test(function(test) {
+ return validateStreamFromString(response.body.getReader(), body);
}, "Check orginal response's body after cloning");
- async_test(function(test) {
- readTextStream(clonedResponse.body.getReader(), test, body);
+ promise_test(function(test) {
+ return validateStreamFromString(clonedResponse.body.getReader(), body);
}, "Check cloned response's body");
promise_test(function(test) {
@@ -63,4 +63,4 @@
}, "Cannot clone a disturbed response");
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html
new file mode 100644
index 00000000000..78838469933
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html
@@ -0,0 +1,103 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Response consume empty bodies</title>
+ <meta name="help" href="https://fetch.spec.whatwg.org/#response">
+ <meta name="help" href="https://fetch.spec.whatwg.org/#body-mixin">
+ <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <script>
+ function checkBodyText(response) {
+ return response.text().then(function(bodyAsText) {
+ assert_equals(bodyAsText, "", "Resolved value should be empty");
+ assert_false(response.bodyUsed);
+ });
+ }
+
+ function checkBodyBlob(response) {
+ return response.blob().then(function(bodyAsBlob) {
+ var promise = new Promise(function(resolve, reject) {
+ var reader = new FileReader();
+ reader.onload = function(evt) {
+ resolve(reader.result)
+ };
+ reader.onerror = function() {
+ reject("Blob's reader failed");
+ };
+ reader.readAsText(bodyAsBlob);
+ });
+ return promise.then(function(body) {
+ assert_equals(body, "", "Resolved value should be empty");
+ assert_false(response.bodyUsed);
+ });
+ });
+ }
+
+ function checkBodyArrayBuffer(response) {
+ return response.arrayBuffer().then(function(bodyAsArrayBuffer) {
+ assert_equals(bodyAsArrayBuffer.byteLength, 0, "Resolved value should be empty");
+ assert_false(response.bodyUsed);
+ });
+ }
+
+ function checkBodyJSON(response) {
+ return response.json().then(
+ function(bodyAsJSON) {
+ assert_unreached("JSON parsing should fail");
+ },
+ function() {
+ assert_false(response.bodyUsed);
+ });
+ }
+
+ function checkBodyFormData(response) {
+ return response.formData().then(function(bodyAsFormData) {
+ assert_true(bodyAsFormData instanceof FormData, "Should receive a FormData");
+ assert_false(response.bodyUsed);
+ });
+ }
+
+ function checkResponseWithNoBody(bodyType, checkFunction) {
+ promise_test(function(test) {
+ var response = new Response();
+ assert_false(response.bodyUsed);
+ return checkFunction(response);
+ }, "Consume response's body as " + bodyType);
+ }
+
+ var formData = new FormData();
+ checkResponseWithNoBody("text", checkBodyText);
+ checkResponseWithNoBody("blob", checkBodyBlob);
+ checkResponseWithNoBody("arrayBuffer", checkBodyArrayBuffer);
+ checkResponseWithNoBody("json", checkBodyJSON);
+ checkResponseWithNoBody("formData", checkBodyFormData);
+
+ function checkResponseWithEmptyBody(bodyType, body, asText) {
+ promise_test(function(test) {
+ var response = new Response(body);
+ assert_false(response.bodyUsed, "bodyUsed is false at init");
+ if (asText) {
+ return response.text().then(function(bodyAsString) {
+ assert_equals(bodyAsString.length, 0, "Resolved value should be empty");
+ assert_true(response.bodyUsed, "bodyUsed is true after being consumed");
+ });
+ }
+ return response.arrayBuffer().then(function(bodyAsArrayBuffer) {
+ assert_equals(bodyAsArrayBuffer.byteLength, 0, "Resolved value should be empty");
+ assert_true(response.bodyUsed, "bodyUsed is true after being consumed");
+ });
+ }, "Consume empty " + bodyType + " response body as " + (asText ? "text" : "arrayBuffer"));
+ }
+
+ // FIXME: Add BufferSource, FormData and URLSearchParams.
+ checkResponseWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), false);
+ checkResponseWithEmptyBody("text", "", false);
+ checkResponseWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), true);
+ checkResponseWithEmptyBody("text", "", true);
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html
index 14dcad795c2..02814ff5be9 100644
--- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html
+++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html
@@ -8,6 +8,7 @@
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+ <script src="../resources/utils.js"></script>
</head>
<body>
<script>
@@ -39,16 +40,14 @@
function checkBodyArrayBuffer(response, expectedBody) {
return response.arrayBuffer().then( function(bodyAsArrayBuffer) {
- var decoder = new TextDecoder("utf-8");
- var strBody = decoder.decode(bodyAsArrayBuffer);
- assert_equals(strBody, expectedBody, "Retrieve and verify response's body");
+ validateBufferFromString(bodyAsArrayBuffer, expectedBody, "Retrieve and verify response's body");
assert_true(response.bodyUsed, "body as arrayBuffer: bodyUsed turned true");
});
}
- function checkBodyJson(response, expectedBody) {
- return response.json().then(function(bodyAsJson) {
- var strBody = JSON.stringify(bodyAsJson)
+ function checkBodyJSON(response, expectedBody) {
+ return response.json().then(function(bodyAsJSON) {
+ var strBody = JSON.stringify(bodyAsJSON)
assert_equals(strBody, expectedBody, "Retrieve and verify response's body");
assert_true(response.bodyUsed, "body as json: bodyUsed turned true");
});
@@ -70,12 +69,29 @@
}
var formData = new FormData();
- formData.append("name", "value")
- checkResponseBody("This is response's body", "text", checkBodyText);
- checkResponseBody("This is response's body", "blob", checkBodyBlob);
- checkResponseBody("This is response's body", "arrayBuffer", checkBodyArrayBuffer);
- checkResponseBody(JSON.stringify("This is response's body"), "json", checkBodyJson);
+ formData.append("name", "value");
+ var textData = JSON.stringify("This is response's body");
+ var blob = new Blob([textData], { "type" : "text/plain" });
+
+ checkResponseBody(textData, "text", checkBodyText);
+ checkResponseBody(textData, "blob", checkBodyBlob);
+ checkResponseBody(textData, "arrayBuffer", checkBodyArrayBuffer);
+ checkResponseBody(textData, "json", checkBodyJSON);
checkResponseBody(formData, "formData", checkBodyFormData);
+
+ function checkBlobResponseBody(blobBody, blobData, bodyType, checkFunction) {
+ promise_test(function(test) {
+ var response = new Response(blobBody);
+ assert_false(response.bodyUsed, "bodyUsed is false at init");
+ return checkFunction(response, blobData);
+ }, "Consume blob response's body as " + bodyType);
+ }
+
+ checkBlobResponseBody(blob, textData, "blob", checkBodyBlob);
+ checkBlobResponseBody(blob, textData, "text", checkBodyText);
+ checkBlobResponseBody(blob, textData, "json", checkBodyJSON);
+ checkBlobResponseBody(blob, textData, "arrayBuffer", checkBodyArrayBuffer);
+
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-init-002.html b/tests/wpt/web-platform-tests/fetch/api/response/response-init-002.html
index 29008584a85..37fcb6d2e3d 100644
--- a/tests/wpt/web-platform-tests/fetch/api/response/response-init-002.html
+++ b/tests/wpt/web-platform-tests/fetch/api/response/response-init-002.html
@@ -52,10 +52,10 @@
checkResponseInit(urlSearchParams, "application/x-www-form-urlencoded;charset=UTF-8", "name=value");
checkResponseInit(usvString, "text/plain;charset=UTF-8", "This is a USVString");
- async_test(function(test) {
+ promise_test(function(test) {
var body = "This is response body";
var response = new Response(body);
- readTextStream(response.body.getReader(), test, body);
+ return validateStreamFromString(response.body.getReader(), body);
}, "Read Response's body as readableStream");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/hr-time/OWNERS b/tests/wpt/web-platform-tests/hr-time/OWNERS
index ffa09d9ade9..5a05f35799c 100644
--- a/tests/wpt/web-platform-tests/hr-time/OWNERS
+++ b/tests/wpt/web-platform-tests/hr-time/OWNERS
@@ -1,2 +1 @@
@plehegar
-@foolip
diff --git a/tests/wpt/web-platform-tests/html-media-capture/OWNERS b/tests/wpt/web-platform-tests/html-media-capture/OWNERS
index b45f53558b6..29bb4ff0811 100644
--- a/tests/wpt/web-platform-tests/html-media-capture/OWNERS
+++ b/tests/wpt/web-platform-tests/html-media-capture/OWNERS
@@ -1,2 +1,3 @@
+@foolip
@haoxli
@zqzhang
diff --git a/tests/wpt/web-platform-tests/html/OWNERS b/tests/wpt/web-platform-tests/html/OWNERS
index ef22027135b..1419ab7b547 100644
--- a/tests/wpt/web-platform-tests/html/OWNERS
+++ b/tests/wpt/web-platform-tests/html/OWNERS
@@ -1,4 +1,5 @@
@Ms2ger
+@foolip
@gsnedders
@jdm
@jgraham
diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html
index a2d6e0fb820..7e18804c283 100644
--- a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html
+++ b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_assign.html
@@ -18,7 +18,7 @@
test(function () {
var href = location.href;
- location.assign("http://:");
+ assert_throws('SYNTAX_ERR', function() { location.assign("http://:"); });
assert_equals(location.href, href);
}, "URL that fails to parse");
</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/Document-defaultView.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/Document-defaultView.html
new file mode 100644
index 00000000000..dbc75d30b21
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/Document-defaultView.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Document#defaultView</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id=log></div>
+<script>
+test(function() {
+ assert_equals(document.defaultView, window);
+}, "Document in a browsing context");
+
+test(function() {
+ var d = new Document();
+ assert_equals(d.defaultView, null);
+}, "Document created with the Document constructor");
+
+test(function() {
+ var d = document.implementation.createDocument(null, null);
+ assert_equals(d.defaultView, null);
+}, "Document created with createDocument");
+
+test(function() {
+ var d = document.implementation.createHTMLDocument();
+ assert_equals(d.defaultView, null);
+}, "Document created with createHTMLDocument");
+
+test(function() {
+ var parser = new DOMParser();
+ var d = parser.parseFromString("<foo\/\>", "application/xml");
+ assert_equals(d.defaultView, null);
+}, "Document created with XML DOMParser");
+
+test(function() {
+ var parser = new DOMParser();
+ var d = parser.parseFromString("bar", "text/html");
+ assert_equals(d.defaultView, null);
+}, "Document created with HTML DOMParser");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/Window-document.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/Window-document.html
new file mode 100644
index 00000000000..9b27f5f7c79
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/Window-document.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Window#document</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id=log></div>
+<script>
+async_test(function() {
+ var URL = "/common/blank.html";
+
+ var iframe = document.createElement("iframe");
+ document.body.appendChild(iframe);
+ var initialWindow = iframe.contentWindow;
+ var initialDocument = initialWindow.document;
+ assert_equals(initialDocument.URL, "about:blank");
+ iframe.src = URL;
+ iframe.onload = this.step_func_done(function() {
+ assert_equals(iframe.contentWindow, initialWindow);
+ assert_equals(initialDocument.URL, "about:blank");
+ var loadedDocument = initialWindow.document;
+ assert_equals(loadedDocument.URL, location.href.replace(location.pathname, URL));
+ assert_not_equals(initialDocument, loadedDocument);
+ });
+}, "Document in a browsing context");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html
new file mode 100644
index 00000000000..76dc7dbae6c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/iterator.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>window[@@iterator]</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+test(function() {
+ assert_false(Symbol.iterator in window);
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-cell-width-s.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-cell-width-s.html
new file mode 100644
index 00000000000..0fe0e2c25ae
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-cell-width-s.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<link rel="match" href="table-cell-width-ref.html">
+<style>
+body {
+ margin: 0;
+}
+
+table {
+ width: 400px;
+ border-collapse: collapse;
+}
+
+th {
+ font-weight: normal;
+ text-align: left;
+}
+
+td, th {
+ padding: 0;
+}
+
+td:first-child, th:first-child {
+ background-color: red;
+}
+</style>
+
+<!-- width=0 should be treated as 'auto' -->
+<table>
+ <tr>
+ <th width=0>a</th>
+ <th>a</th>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <td width=0>a</td>
+ <td>a</td>
+ </tr>
+</table>
+
+<!-- test valid width attribute value-->
+<table>
+ <tr>
+ <th width=100>a</th>
+ <th>a</th>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <td width=100>a</td>
+ <td>a</td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-width-s.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-width-s.html
new file mode 100644
index 00000000000..5b987e79193
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-width-s.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<link rel="match" href="table-width-ref.html">
+
+<style>
+table {
+ border-collapse: collapse;
+}
+
+td {
+ padding: 0;
+}
+</style>
+
+<!-- width=0 should be treated as 'auto' -->
+<table width=0>
+ <tr>
+ <td>
+ a b
+ </td>
+ </tr>
+</table>
+
+<hr>
+
+<table width=1>
+ <tr>
+ <td>
+ a b
+ </td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html
index 8c4958a4000..8f6153b923e 100644
--- a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html
+++ b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html
@@ -24,21 +24,21 @@ var testElements = [
},
{
tag: "input",
- types: ["datetime"],
+ types: ["datetime-local"],
testData: [
{conditions: {value: ""}, expected: false, name: "[target] The value attribute is empty"},
- {conditions: {value: "2000-01-01T12:00:00Z"}, expected: false, name: "[target] The value attribute is a valid date and time string"},
- {conditions: {value: "abc"}, expected: true, name: "[target] The value attribute cannot convert to a valid normalized forced-UTC global date and time string"}
+ {conditions: {value: "2000-01-01T12:00:00"}, expected: false, name: "[target] The value attribute is a valid date and time string"},
+ {conditions: {value: "abc"}, expected: false, name: "[target] The value attribute cannot convert to a valid normalized forced-UTC global date and time string"}
]
},
{
tag: "input",
types: ["color"],
testData: [
- {conditions: {value: ""}, expected: true, name: "[target] The value attribute is empty"},
+ {conditions: {value: ""}, expected: false, name: "[target] The value attribute is empty"},
{conditions: {value: "#000000"}, expected: false, name: "[target] The value attribute is a valid sample color"},
{conditions: {value: "#FFFFFF"}, expected: false, name: "[target] The value attribute is not a valid lowercase sample color"},
- {conditions: {value: "abc"}, expected: true, name: "[target] The value attribute cannot convert to a valid sample color"}
+ {conditions: {value: "abc"}, expected: false, name: "[target] The value attribute cannot convert to a valid sample color"}
]
},
];
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01.html
deleted file mode 100644
index f4a71612e4a..00000000000
--- a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML>
-<title>The selection interface members</title>
-<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
-<link rel="help" href="https://html.spec.whatwg.org/multipage/#textFieldSelection">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<div id="log"></div>
-<script>
-test(function() {
- var valid = ["text", "search", "url", "tel", "password"];
- var invalid = ["hidden", "datetime", "date", "month", "week", "datetime-local",
- "number", "range", "color", "checkbox", "radio", "button",
- "file", "email", "submit", "image", "reset"];
- valid.forEach(function(aType) {
- test(function() {
- var input = document.createElement("input");
- input.type = aType;
- assert_equals(input.type, aType, "Input type unsupported")
- input.select();
- var a = input.selectionStart;
- input.selectionStart = 0;
- a = input.selectionEnd;
- input.selectionEnd = 0;
- input.setSelectionRange(0, 0);
- }, "Selection attributes should apply to type " + aType)
- })
-
- invalid.forEach(function(aType) {
- test(function() {
- var input = document.createElement("input");
- input.type = aType;
- assert_equals(input.type, aType, "Input type unsupported")
- assert_throws("INVALID_STATE_ERR", function() { input.select(); }, "Should throw with type " + aType);
- assert_throws("INVALID_STATE_ERR", function() { var a = input.selectionStart; });
- assert_throws("INVALID_STATE_ERR", function() { input.selectionStart = 0; });
- assert_throws("INVALID_STATE_ERR", function() { var a = input.selectionEnd; });
- assert_throws("INVALID_STATE_ERR", function() { input.selectionEnd = 0; });
- assert_throws("INVALID_STATE_ERR", function() { input.setSelectionRange(0, 0); });
- }, "Selection attributes should not apply to type " + aType)
- })
-});
-</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/selection.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/selection.html
new file mode 100644
index 00000000000..694051dbf29
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/selection.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML>
+<title>Input element programmatic selection support</title>
+<link rel="author" title="yaycmyk" href="mailto:evan@yaycmyk.com">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/forms.html#dom-textarea/input-select">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<script>
+
+/* all textual, non-hidden inputs support .select() */
+test(function() {
+ var valid = [
+ "text",
+ "search",
+ "url",
+ "tel",
+ "email",
+ "password",
+ "date",
+ "month",
+ "week",
+ "time",
+ "datetime-local",
+ "number",
+ "color",
+ "file",
+ ];
+
+ var invalid = [
+ "hidden",
+ "range",
+ "checkbox",
+ "radio",
+ "submit",
+ "image",
+ "reset",
+ "button"
+ ];
+
+ valid.forEach(function(type) {
+ test(function() {
+ var input = document.createElement("input");
+ var a;
+
+ input.type = type;
+ assert_equals(input.type, type, "the given input type is not supported");
+
+ input.select();
+
+ }, "input type " + type + " should support the select() method");
+ });
+
+ invalid.forEach(function(type) {
+ test(function() {
+ var input = document.createElement("input");
+
+ input.type = type;
+ assert_equals(input.type, type, "the given input type is not supported");
+
+ assert_throws("INVALID_STATE_ERR", function() { input.select(); });
+
+ }, "input type " + type + " should not support the select() method");
+ });
+});
+
+/* only certain input types are allowed to have a variable-length selection */
+test(function() {
+ var valid = [
+ "text",
+ "search",
+ "url",
+ "tel",
+ "password"
+ ];
+
+ var invalid = [
+ "hidden",
+ "email",
+ "date",
+ "month",
+ "week",
+ "time",
+ "datetime-local",
+ "number",
+ "range",
+ "color",
+ "checkbox",
+ "radio",
+ "file",
+ "submit",
+ "image",
+ "reset",
+ "button"
+ ];
+
+ valid.forEach(function(type) {
+ test(function() {
+ var input = document.createElement("input");
+ var a;
+
+ input.type = type;
+ assert_equals(input.type, type, "the given input type is not supported");
+
+ a = input.selectionStart;
+ input.selectionStart = 0;
+ a = input.selectionEnd;
+ input.selectionEnd = 0;
+ input.setSelectionRange(0, 0);
+ input.setRangeText('', 0, 0);
+
+ }, "input type " + type + " should support all selection attributes and methods");
+ });
+
+ invalid.forEach(function(type) {
+ test(function() {
+ var input = document.createElement("input");
+
+ input.type = type;
+ assert_equals(input.type, type, "the given input type is not supported");
+
+ assert_throws("INVALID_STATE_ERR", function() { var a = input.selectionStart; });
+ assert_throws("INVALID_STATE_ERR", function() { input.selectionStart = 0; });
+ assert_throws("INVALID_STATE_ERR", function() { var a = input.selectionEnd; });
+ assert_throws("INVALID_STATE_ERR", function() { input.selectionEnd = 0; });
+ assert_throws("INVALID_STATE_ERR", function() { input.setSelectionRange(0, 0); });
+ assert_throws("INVALID_STATE_ERR", function() { input.setRangeText('', 0, 0); });
+
+ }, "input type " + type + " should not support variable-length selections");
+ });
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html
index 88d3b22d3e1..6e179c1cb5c 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html
@@ -32,8 +32,11 @@ test(function() {
assert_equals(template.ownerDocument, doc.body.ownerDocument,
'Wrong template node owner document');
- assert_equals(template.content.ownerDocument, doc,
- 'Wrong template content owner document');
+ var ownerDoc = template.content.ownerDocument;
+ assert_not_equals(ownerDoc, doc, 'Wrong template content owner document');
+ assert_not_equals(ownerDoc, document, 'Wrong template content owner document');
+ assert_equals(ownerDoc.defaultView, null,
+ 'Template content owner document should not have a browsing context');
}, 'Parsing XHTML: Node\'s node document must be set to that of the element '
+ 'to which it will be appended. Test empty template');
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html
index f540450efc5..fcdb883f5c0 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html
@@ -22,6 +22,13 @@ function templateIsAChild(element) {
'Template element should be a descendant of the ' + element.tagName + ' element');
}
+function templateIsDisallowedAsAChild(element) {
+ element.innerHTML = '<template>some text</template>';
+
+ assert_equals(element.querySelector('template'), null,
+ 'Template element should not be allowed as a descendant of the ' + element.tagName + ' element');
+}
+
function templateIsAnIndirectChild(element) {
element.innerHTML = '<div><template>some text</template></div>';
@@ -29,6 +36,13 @@ function templateIsAnIndirectChild(element) {
'Template element should be a descendant of the ' + element.tagName + ' element');
}
+function templateIsDisallowedAsAnIndirectChild(element) {
+ element.innerHTML = '<div><template>some text</template></div>';
+
+ assert_equals(element.querySelector('template'), null,
+ 'Template element should not be allowed as indirect descendant of the ' + element.tagName + ' element');
+}
+
function templateIsAnAppendedChild(doc, element) {
var template = doc.createElement('template');
@@ -58,13 +72,16 @@ var parameters = [['Template element as a descendant of the BODY element. ' +
['Template element as a descendant of the HEAD element. ' +
'Template element is created by innerHTML',
doc.head],
- ['Template element as a descendant of the FRAMESET element. ' +
- 'Template element is created by innerHTML',
- frameset]
];
generate_tests(templateIsAChild, parameters,
- 'Template element as a descendant of the HEAD, BODY and FRAMESET elements');
+ 'Template element as a descendant of the HEAD and BODY elements');
+parameters = [['Template element as a descendant of the FRAMESET element. ' +
+ 'Template element is created by innerHTML',
+ frameset],
+ ];
+generate_tests(templateIsDisallowedAsAChild, parameters,
+ 'Template element should be disallowed as a descendant of the FRAMESET elements');
parameters = [['Template element as an indirect descendant of the BODY element. ' +
@@ -73,13 +90,17 @@ parameters = [['Template element as an indirect descendant of the BODY element.
['Template element as an indirect descendant of the HEAD element. ' +
'Template element is created by innerHTML',
doc.head],
- ['Template element as an indirect descendant of the FRAMESET element. ' +
- 'Template element is created by innerHTML',
- frameset]
];
generate_tests(templateIsAnIndirectChild, parameters,
'Template element as an indirect descendant of the HEAD, BODY and FRAMESET elements');
+parameters = [['Template element as a descendant of the FRAMESET element. ' +
+ 'Template element is created by innerHTML',
+ frameset],
+ ];
+generate_tests(templateIsDisallowedAsAnIndirectChild, parameters,
+ 'Template element should be disallowed as an indirect descendant of the FRAMESET elements');
+
parameters = [['Template element as a descendant of the BODY element. ' +
diff --git a/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus.html b/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus.html
new file mode 100644
index 00000000000..80a75bb99e0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Selector: pseudo-classes (:focus for autofocus)</title>
+<link rel="author" title="Kent Tamura" href="mailto:tkent@chromium.org">
+<link rel=help href="https://html.spec.whatwg.org/multipage/#pseudo-classes">
+<link rel=help href="https://html.spec.whatwg.org/multipage/forms.html#autofocusing-a-form-control:-the-autofocus-attribute">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<script>
+// This test can't be merged to focus.html because element.focus() may affect
+// autofocus behavior.
+var autofocusTest = async_test(":focus selector should work with an autofocused element.");
+var input = document.createElement("input");
+input.autofocus = true;
+input.addEventListener("focus", function() {
+ autofocusTest.step(function() {
+ assert_array_equals(document.querySelectorAll(":focus"), [input])
+ autofocusTest.done();
+ });
+}, false);
+document.body.appendChild(input);
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html b/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html
index 69f8b2afcf7..22d6d8fffda 100644
--- a/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html
+++ b/tests/wpt/web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html
@@ -11,7 +11,6 @@
<button id=button1 type=submit>button1</button>
<input id=input1>
<input id=input2 disabled>
- <input id=input3 autofocus>
<textarea id=textarea1>textarea1</textarea>
<input type=checkbox id=checkbox1 checked>
<input type=radio id=radio1 checked>
@@ -20,8 +19,6 @@
<iframe src="focus-iframe.html" id=iframe onload="load()"></iframe>
<script>
- testSelector(":focus", ["input3"], "input3 has the attribute autofocus");
-
document.getElementById("input1").focus(); // set the focus on input1
testSelector(":focus", ["input1"], "input1 has the focus");
diff --git a/tests/wpt/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html b/tests/wpt/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html
index 98e701e8d54..e4f7b0b5468 100644
--- a/tests/wpt/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html
+++ b/tests/wpt/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html
@@ -3,8 +3,8 @@
<head>
<title>HTML Templates: additions to 'in frameset' insertion mode</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
-<meta name="assert" content="If parser is in 'in frameset' insertion mode and meets frameset end tag then if the stack of open elements has a template element in html scope then this is a parse error; ignore the token">
-<link rel="help" href="http://www.w3.org/TR/2013/WD-html-templates-20130214/#in-head-addition">
+<meta name="assert" content="If parser is in 'in frameset' insertion mode then a start tag or an end tag whose name is 'template' is a parsing error">
+<link rel="help" href="https://www.w3.org/TR/2015/WD-html51-20151008/syntax.html#parsing-main-inframeset">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/resources/common.js"></script>
@@ -18,15 +18,9 @@ testInIFrame('/html/semantics/scripting-1/the-template-element/resources/framese
var doc = context.iframes[0].contentDocument;
var frameset = doc.querySelector('frameset');
- assert_equals(frameset.children.length, 1, 'Wrong number of frameset children elements');
+ assert_equals(frameset.children.length, 0, 'Wrong number of frameset children elements');
- var template = frameset.querySelector('template');
- assert_equals(template.tagName, 'TEMPLATE', 'FRAMESET should contain template element');
- assert_equals(template.content.childNodes.length, 0,
- 'Template content should be empty');
-
-}, '</frameset> tag should be ignored if there\'s TEMPLATE element in '
- + 'the stack of open elements');
+}, '<template> tag should be ignored in "in frameset" insertion mode');
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html b/tests/wpt/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html
index ce435fdc4fc..d4abb2693c3 100644
--- a/tests/wpt/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html
+++ b/tests/wpt/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html
@@ -68,26 +68,6 @@ test(function () {
test(function () {
var doc = newHTMLDocument();
-
- doc.open();
- doc.write('<frameset><template id="tmpl1"><div id="div">DIV</div></template></frameset>');
- doc.close();
-
- var template = doc.querySelector('#tmpl1');
-
- var div = template.content.querySelector('#div');
-
- assert_equals(div.ownerDocument, template.content.ownerDocument,
- 'Wrong ownerDocument of the element in template');
-
-}, 'Test ownerDocument property of the element in a template. '
- + 'Current DOCUMENT has no browsing context. Test template element '
- + 'in the root of the frameset');
-
-
-
-test(function () {
- var doc = newHTMLDocument();
doc.body.innerHTML = '<template id="tmpl1">'
+ '<template id="tmpl2"><div id="div">DIV</div></template></template>';
diff --git a/tests/wpt/web-platform-tests/media-source/OWNERS b/tests/wpt/web-platform-tests/media-source/OWNERS
index 3b36dfa39a2..fa70c6cc1d2 100644
--- a/tests/wpt/web-platform-tests/media-source/OWNERS
+++ b/tests/wpt/web-platform-tests/media-source/OWNERS
@@ -1,4 +1,5 @@
@bit
@acolwell
+@foolip
@shishimaru
@sideshowbarker
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/OWNERS b/tests/wpt/web-platform-tests/mediacapture-streams/OWNERS
index 03ff57c28fd..98fcd252b27 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/OWNERS
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/OWNERS
@@ -1,3 +1,3 @@
-@dontcallmedom
@alvestrand
-
+@dontcallmedom
+@foolip
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-finished-add.html b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-finished-add.html
index 21d61194fff..a0c4b28b1e7 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-finished-add.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-finished-add.html
@@ -1,25 +1,24 @@
<!doctype html>
<html>
<head>
-<title>Adding a track to a finished MediaStream</title>
+<title>Adding a track to an inactive MediaStream</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrackList-add-void-MediaStreamTrack-track">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-stop-void">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStream-addTrack-void-MediaStreamTrack-track">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStreamTrack-stop-void">
</head>
<body>
<p class="instructions">When prompted, accept to share your audio stream, then
your video stream.</p>
<h1 class="instructions">Description</h1>
-<p class="instructions">This test checks that adding a track to a finished
-MediaStream raises an INVALID_STATE_ERR exception.</p>
+<p class="instructions">This test checks that adding a track to an inactive
+MediaStream is allowed.</p>
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/vendor-prefix.js" data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'></script>
<script>
-var t = async_test("Tests that an addition to a finished MediaStream raises an exception", {timeout:20000});
+var t = async_test("Tests that adding a track to an inactive MediaStream is allowed", {timeout:20000});
t.step(function () {
var audio, video;
@@ -33,13 +32,10 @@ t.step(function () {
video = stream;
t.step(function () {
audio.getAudioTracks()[0].stop();
- assert_true(audio.ended, "Audio stream is ended after stopping its only audio track");
- assert_throws("INVALID_STATE_ERR", function () {
- video.addTrack(audio.getAudioTracks()[0]);
- }, "Adding a track from a finished stream raises an INVALID_STATE_ERR exception");
- assert_throws("INVALID_STATE_ERR", function () {
- audio.removeTrack(audio.getAudioTracks()[0]);
- }, "Removing a track from a finished stream raises an INVALID_STATE_ERR exception");
+ assert_false(audio.active, "audio stream is inactive after stopping its only audio track");
+ assert_true(video.active, "video stream is active");
+ audio.addTrack(video.getVideoTracks()[0]);
+ audio.removeTrack(audio.getAudioTracks()[0]);
});
t.done();
}
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-idl.html b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-idl.html
index 57ef7daa292..81cce51c1ed 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-idl.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/mediastream-idl.html
@@ -3,13 +3,12 @@
<head>
<title>MediaStream constructor algorithm</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-MediaStream">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-id">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastream">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#event-mediastream-ended">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-stop-void">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-clone-MediaStreamTrack">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#idl-def-MediaStream">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStream-id">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#mediastream">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#event-mediastreamtrack-ended">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStreamTrack-stop-void">
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStreamTrack-clone-MediaStreamTrack">
</head>
<body>
<p class="instructions">When prompted, accept to share your video and audio stream.</p>
@@ -42,7 +41,7 @@ t.step(function() {
assert_equals(stream3.getTrackById(audioTrack2.id), null, "an ended track doesn't get added via the MediaStream constructor");
assert_equals(stream3.getTrackById(videoTrack.id), videoTrack, "a non-ended track gets added via the MediaStream constructor even if the previous track was ended");
var stream5 = new MediaStream([audioTrack2]);
- assert_true(stream5.ended, "a MediaStream created using the MediaStream() constructor whose arguments are lists of MediaStreamTrack objects that are all ended, the MediaStream object MUST be created with its ended attribute set to true");
+ assert_false(stream5.active, "a MediaStream created using the MediaStream() constructor whose arguments are lists of MediaStreamTrack objects that are all ended, the MediaStream object MUST be created with its active attribute set to false");
t.done();
}), false);
audioTrack2.stop();
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/stream-ended.html b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/stream-ended.html
deleted file mode 100644
index 4d537ca25a1..00000000000
--- a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastream/stream-ended.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>getUserMedia({video:true}) creates a stream with ended set to false</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-ended">
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#event-mediastream-ended">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p class="instructions">When prompted, accept to share your video stream.</p>
-<h1 class="instructions">Description</h1>
-<p class="instructions">This test checks that the MediaStream object returned by
-the success callback in getUserMedia has a ended set to false at start, and
-triggers "onended" when it is set to true.</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/vendor-prefix.js" data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'></script>
-<script>
-var t = async_test("Tests that a MediaStream handles ended correctly", {timeout:10000});
-t.step(function () {
- navigator.getUserMedia({video:true}, t.step_func(function (stream) {
- assert_true(!stream.ended, "the media stream starts with ended set to false");
- stream.addEventListener("ended", t.step_func(function() {
- assert_true(stream.ended, "stream.ended now set to true");
- t.done();
- }), false);
- stream.ended = true;
- assert_true(!stream.ended, "stream.ended should remain false");
- stream.getVideoTracks()[0].stop();
- }), function (error) {});
-});
-</script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html
index 988f1ee3551..6b6b72fc0c1 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html
@@ -3,8 +3,7 @@
<head>
<title>Test that mediastreamtrack are properly ended</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#mediastreamtrack">
</head>
<body>
<p class="instructions">When prompted, accept to share your video and audio
@@ -12,7 +11,7 @@ stream, and then revoke that permission.</p>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that the video and audio tracks of
MediaStream object returned by the success callback in getUserMedia are
-correctly set into ended state when permission is revoked.</p>
+correctly set into inactive state when permission is revoked.</p>
<div id='log'></div>
<script src=/resources/testharness.js></script>
@@ -29,7 +28,7 @@ t.step(function () {
vidTrack.onended = t.step_func(function () {
assert_equals(vidTrack.readyState, "ended", "Video track has been ended as expected");
assert_equals(audTrack.readyState, "ended", "Audio track has been ended as expected");
- assert_true(stream.ended, "MediaStream has been ended as expected");
+ assert_false(stream.active, "MediaStream has been inactive as expected");
t.done();
});
}), function (error) {}
diff --git a/tests/wpt/web-platform-tests/navigation-timing/OWNERS b/tests/wpt/web-platform-tests/navigation-timing/OWNERS
index ffa09d9ade9..5a05f35799c 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/OWNERS
+++ b/tests/wpt/web-platform-tests/navigation-timing/OWNERS
@@ -1,2 +1 @@
@plehegar
-@foolip
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
index 7cff30f333b..531cb374f3f 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -44,4 +44,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
index b76d5f90735..0056839db9c 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -44,4 +44,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
index 5a09ee08bf8..c9002f042b9 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -49,4 +49,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
index 9e4286b3400..6c24f1e4a97 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
index 8e7e6ed7755..6c0864a0868 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -53,4 +53,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
index e6d69017987..99fb65a3c2c 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -47,4 +47,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html
index 7e906875674..0d15e1083be 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html
index 81076d78048..312fb7e8189 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -45,4 +45,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html
index f617e5bf2b7..6f012335f73 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -40,4 +40,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html
index 00dc287e41b..44364aec5ef 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html
index 184f187462a..00d022119a3 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html
index 36166611f47..067b38f8981 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html
index 4989b2ad82d..ab4d9601fbd 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -42,4 +42,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html
index 48e3839e6e7..bca7d6f9700 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html
index 2b8d00f978a..8c3457d426c 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -38,4 +38,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html
index 3474275640e..e0622bf38a7 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -38,4 +38,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html
index c7e5853f4fd..802968cd79f 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -38,4 +38,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html
index d8e2703f8a5..f925a62ff11 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -40,4 +40,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html
index 931843d0d57..83d53da0dca 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -44,4 +44,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html
index cf7da08a75f..2fae73be1ae 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -35,4 +35,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html
index a6acd08335f..788769049bb 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -48,4 +48,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html
index 1e239b3f294..c4649963874 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html
index 72455038894..edf3624907e 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -39,4 +39,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html
index ef8f3de1df4..b37b719e1df 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -46,4 +46,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html
index d0f6315fe2c..455dce2f024 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -40,4 +40,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html
index cddd9dc687e..abe31f595e0 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html
index 789eb005efa..39474b93d29 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -42,4 +42,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html
index c19d3e74a67..785b4e79ba4 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html
index 32ff63c0839..f46bd0b4c93 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html
index ed7ae334ced..9ddf62acfc7 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -38,4 +38,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html
index 1e1533a9b38..6df4f74c5ac 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -38,4 +38,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html
index 2450db2c831..8444d3fdceb 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -36,4 +36,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html
index db168147bc7..7cbda113a63 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -39,4 +39,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html
index 04d360e12f1..612fd004ac3 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -37,4 +37,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
index 7ea35881273..d7dcd13b37b 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -41,4 +41,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
index 381f221e431..ca960093388 100644
--- a/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
+++ b/tests/wpt/web-platform-tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
@@ -2,8 +2,8 @@
<html>
<head>
<title>Forms</title>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>
@@ -45,4 +45,4 @@
</script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/page-visibility/OWNERS b/tests/wpt/web-platform-tests/page-visibility/OWNERS
index ffa09d9ade9..5a05f35799c 100644
--- a/tests/wpt/web-platform-tests/page-visibility/OWNERS
+++ b/tests/wpt/web-platform-tests/page-visibility/OWNERS
@@ -1,2 +1 @@
@plehegar
-@foolip
diff --git a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html b/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html
index 502090c9671..abd0f4835c5 100644
--- a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html
+++ b/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html
@@ -1,185 +1,50 @@
<!DOCTYPE HTML>
<html>
-<!--
- Test cases for Touch Events v1 Recommendation
- http://www.w3.org/TR/touch-events/
-
- These tests are based on Mozilla-Nokia-Google's single-touch tests.
-
- The primary purpose of the tests in this document is checking that the createTouch and
- createTouchList interfaces of the Touch Events APIs are correctly implemented.
- Other interactions are covered in other test files.
-
- This document references Test Assertions (abbrev TA below) written by Cathy Chan
- http://www.w3.org/2010/webevents/wiki/TestAssertions
--->
-
<head>
-<title>Touch Events createTouch and createTouchList Interface Tests</title>
-<meta name="viewport" content="width=device-width">
+<title>document.createTouch and document.createTouchList Tests</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="touch-support.js"></script>
+<body>
+<div id="target0"></div>
<script>
- setup({explicit_done: true});
-
- // Check a Touch object's atttributes for existence and correct type
- // TA: 1.1.2, 1.1.3
- function check_Touch_object (t) {
- test(function() {
- assert_equals(Object.prototype.toString.call(t), "[object Touch]", "touch is of type Touch");
- }, "touch point is a Touch object");
- [
- ["long", "identifier"],
- ["EventTarget", "target"],
- ["long", "screenX"],
- ["long", "screenY"],
- ["long", "clientX"],
- ["long", "clientY"],
- ["long", "pageX"],
- ["long", "pageY"],
- ].forEach(function(attr) {
- var type = attr[0];
- var name = attr[1];
-
- // existence check
- test(function() {
- assert_true(name in t, name + " attribute in Touch object");
- }, "Touch." + name + " attribute exists");
-
- // type check
- switch(type) {
- case "long":
- test(function() {
- assert_equals(typeof t[name], "number", name + " attribute of type long");
- }, "Touch." + name + " attribute is of type number (long)");
- break;
- case "EventTarget":
- // An event target is some type of Element
- test(function() {
- assert_true(t[name] instanceof Element, "EventTarget must be an Element.");
- }, "Touch." + name + " attribute is of type Element");
- break;
- default:
- break;
- }
- });
- }
-
- // Check a TouchList object's attributes and methods for existence and proper type
- // Also make sure all of the members of the list are Touch objects
- // TA: 1.2.1, 1.2.2, 1.2.5, 1.2.6
- function check_TouchList_object (tl) {
- test(function() {
- assert_equals(Object.prototype.toString.call(tl), "[object TouchList]", "touch list is of type TouchList");
- }, "touch list is a TouchList object");
- [
- ["unsigned long", "length"],
- ["function", "item"],
- ].forEach(function(attr) {
- var type = attr[0];
- var name = attr[1];
-
- // existence check
- test(function() {
- assert_true(name in tl, name + " attribute in TouchList");
- }, "TouchList." + name + " attribute exists");
-
- // type check
- switch(type) {
- case "unsigned long":
- test(function() {
- assert_equals(typeof tl[name], "number", name + " attribute of type long");
- }, "TouchList." + name + " attribute is of type number (unsigned long)");
- break;
- case "function":
- test(function() {
- assert_equals(typeof tl[name], "function", name + " attribute of type function");
- }, "TouchList." + name + " attribute is of type function");
- break;
- default:
- break;
- }
- });
- // Each member of tl should be a proper Touch object
- for (var i=0; i < tl.length; i++) {
- check_Touch_object(tl.item(i));
- }
- // TouchList.item(x) should return null if x is >= TouchList.length
- test(function() {
- var t = tl.item(tl.length);
- assert_equals(t, null, "TouchList.item(TouchList.length) must return null");
- }, "TouchList.item returns null if the index is >= the length of the list");
- }
-
- function check_touch_clientXY(touch) {
- assert_equals(touch.clientX, touch.pageX - window.pageXOffset, "touch.clientX is touch.pageX - window.pageXOffset.");
- assert_equals(touch.clientY, touch.pageY - window.pageYOffset, "touch.clientY is touch.pageY - window.pageYOffset.");
- }
-
- function run() {
- var target0 = document.getElementById("target0");
- var touch1, touch2;
-
- test(function() {
- touch1 = document.createTouch(window, target0, 42, 15, 20, 35, 40);
- assert_equals(touch1.target, target0, "touch.target is target0");
- assert_equals(touch1.identifier, 42, "touch.identifier is requested value");
- assert_equals(touch1.pageX, 15, "touch.pageX is requested value");
- assert_equals(touch1.pageY, 20, "touch.pageY is requested value");
- check_touch_clientXY(touch1);
- assert_equals(touch1.screenX, 35, "touch.screenX is requested value");
- assert_equals(touch1.screenY, 40, "touch.screenY is requested value");
- }, "document.createTouch exists and creates a Touch object with requested properties");
-
- touch2 = document.createTouch(window, target0, 44, 25, 30, 45, 50);
-
- var touchList;
-
- test(function() {
- touchList = document.createTouchList();
- assert_equals(touchList.length, 0, "touchList.length is 0");
- }, "document.createTouchList exists and correctly creates a TouchList from zero Touch objects");
-
- if (touchList)
- check_TouchList_object(touchList);
-
- test(function() {
- touchList = document.createTouchList(touch1);
- assert_equals(touchList.length, 1, "touchList.length is 1");
- assert_equals(touchList.item(0), touch1, "touchList.item(0) is input touch1");
- }, "document.createTouchList exists and correctly creates a TouchList from a single Touch");
-
- if (touchList)
- check_TouchList_object(touchList);
-
- test(function() {
- touchList = document.createTouchList(touch1, touch2);
- assert_equals(touchList.length, 2, "touchList.length is 2");
- assert_equals(touchList.item(0), touch1, "touchList.item(0) is input touch1");
- assert_equals(touchList.item(1), touch2, "touchList.item(1) is input touch2");
- }, "document.createTouchList exists and correctly creates a TouchList from two Touch objects");
-
- if (touchList)
- check_TouchList_object(touchList);
-
- target0.innerHTML = "Test complete."
- done();
- }
+test(function() {
+ var testTarget = document.getElementById('target0');
+ var touch1 = document.createTouch(window, testTarget, 42, 15, 20, 35, 40);
+ assert_equals(touch1.target, testTarget, "touch.target is target0");
+ assert_equals(touch1.identifier, 42, "touch.identifier is requested value");
+ assert_equals(touch1.pageX, 15, "touch.pageX is requested value");
+ assert_equals(touch1.pageY, 20, "touch.pageY is requested value");
+ assert_equals(touch1.screenX, 35, "touch.screenX is requested value");
+ assert_equals(touch1.screenY, 40, "touch.screenY is requested value");
+}, "document.createTouch exists and creates a Touch object with requested properties");
+
+test(function() {
+ var touchList = document.createTouchList();
+ assert_equals(touchList.length, 0, "touchList.length is 0");
+ check_TouchList_object(touchList);
+}, "document.createTouchList exists and correctly creates a TouchList from zero Touch objects");
+
+test(function() {
+ var testTarget = document.getElementById('target0');
+ var touch1 = document.createTouch(window, testTarget, 42, 15, 20, 35, 40);
+ var touchList = document.createTouchList(touch1);
+ assert_equals(touchList.length, 1, "touchList.length is 1");
+ assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1");
+ check_TouchList_object(touchList);
+}, "document.createTouchList exists and correctly creates a TouchList from a single Touch");
+
+test(function() {
+ var testTarget = document.getElementById('target0');
+ var touch1 = document.createTouch(window, testTarget, 42, 15, 20, 35, 40);
+ var touch2 = document.createTouch(window, target0, 44, 25, 30, 45, 50);
+ var touchList = document.createTouchList(touch1, touch2);
+ assert_equals(touchList.length, 2, "touchList.length is 2");
+ assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1");
+ assert_equals(touchList.item(1), touch2, "touchList.item(1) is touch2");
+ check_TouchList_object(touchList);
+}, "document.createTouchList exists and correctly creates a TouchList from two Touch objects");
</script>
-<style>
- div {
- margin: 0em;
- padding: 2em;
- }
- #target0 {
- background: yellow;
- border: 1px solid orange;
- }
-</style>
</head>
-<body onload="run()">
- <h1>Touch Events: createTouch and createTouchList tests</h1>
- <div id="target0">Please wait for test to complete...</div>
- <div id="log"></div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/touch-events/single-touch-manual.html b/tests/wpt/web-platform-tests/touch-events/single-touch-manual.html
index 5f76e61b419..f1f643cb55e 100644
--- a/tests/wpt/web-platform-tests/touch-events/single-touch-manual.html
+++ b/tests/wpt/web-platform-tests/touch-events/single-touch-manual.html
@@ -236,7 +236,7 @@
}, "touchstart: touch screenX/screenY pageX/pageY and clientX/clientY values are no less than 0");
});
- on_event(target0, "touchmove", function onTouchMove(ev) {
+ target0.ontouchmove = function (ev) {
ev.preventDefault();
if (touchmove_received)
@@ -283,13 +283,13 @@
check_screenXY_clientXY_pageXY(tt);
}, "touchmove: touch screenX/screenY pageX/pageY and clientX/clientY values are no less than 0");
- });
+ };
on_event(target1, "touchmove", function onTouchMove(ev) {
invalid_touchmove_received = true;
});
- on_event(window, "touchend", function onTouchEnd(ev) {
+ window.ontouchend = function(ev) {
touchend_received = true;
test_touchend.step(function() {
@@ -329,7 +329,7 @@
}, "touchend: touch screenX/screenY pageX/pageY and clientX/clientY values are no less than 0");
done();
- });
+ };
on_event(target0, "mousedown", function onMouseDown(ev) {
test_mousedown.step(function() {
diff --git a/tests/wpt/web-platform-tests/touch-events/touch-globaleventhandler-interface.html b/tests/wpt/web-platform-tests/touch-events/touch-globaleventhandler-interface.html
new file mode 100644
index 00000000000..cb640444fa0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/touch-events/touch-globaleventhandler-interface.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML>
+<title>GlobalEventHandlers Touch Interface Tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(function() {
+ var touch_event_list = ['ontouchstart', 'ontouchmove', 'ontouchend', 'ontouchcancel'];
+ var global_event_handlers = [window, HTMLElement.prototype, SVGElement.prototype, Document.prototype];
+ for (var i in touch_event_list) {
+ for (var j in global_event_handlers) {
+ assert_true(touch_event_list[i] in global_event_handlers[j], "Touch event " + touch_event_list[i] + " in " + global_event_handlers[j].constructor.name);
+ }
+ }
+}, "Touch events in GlobalEventHandlers");
+
+test(function() {
+ var touch_event_list = ['ontouchstart', 'ontouchmove', 'ontouchend', 'ontouchcancel'];
+ var global_event_handlers = [window, HTMLElement.prototype, SVGElement.prototype, Document.prototype];
+ for (var i in touch_event_list) {
+ for (var j in global_event_handlers) {
+ assert_true(global_event_handlers[j].hasOwnProperty(touch_event_list[i]), "GlobalEventHandler " + global_event_handlers[j].constructor.name + " hasOwnProperty " + touch_event_list[i]);
+ }
+ }
+}, "Touch events are GlobalEventHandlers' own property");
+
+test(function() {
+ var touch_event_list = ['ontouchstart', 'ontouchmove', 'ontouchend', 'ontouchcancel'];
+ var non_global_event_handlers = [Element.prototype];
+ for (var i in touch_event_list) {
+ for (var j in non_global_event_handlers) {
+ assert_false(touch_event_list[i] in non_global_event_handlers[j], "Touch event " + touch_event_list[i] + " not in " + non_global_event_handlers[j].constructor.name);
+ }
+ }
+}, "Touch events not in Element.prototype");
+</script>
diff --git a/tests/wpt/web-platform-tests/touch-events/touch-support.js b/tests/wpt/web-platform-tests/touch-events/touch-support.js
new file mode 100644
index 00000000000..f4bc0467db8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/touch-events/touch-support.js
@@ -0,0 +1,106 @@
+// Check a Touch object's attributes for existence and correct type
+// TA: 1.1.2, 1.1.3
+function check_Touch_object(t) {
+ assert_equals(Object.prototype.toString.call(t), "[object Touch]", "touch is of type Touch");
+ [
+ ["long", "identifier"],
+ ["EventTarget", "target"],
+ ["long", "screenX"],
+ ["long", "screenY"],
+ ["long", "clientX"],
+ ["long", "clientY"],
+ ["long", "pageX"],
+ ["long", "pageY"],
+ ["long", "radiusX"],
+ ["long", "radiusY"],
+ ["long", "rotationAngle"],
+ ["long", "force"],
+ ].forEach(function(attr) {
+ var type = attr[0];
+ var name = attr[1];
+
+ // existence check
+ assert_true(name in t, name + " attribute in Touch object");
+
+ // type check
+ switch (type) {
+ case "long":
+ assert_equals(typeof t[name], "number", name + " attribute of type long");
+ break;
+ case "EventTarget":
+ // An event target is some type of Element
+ assert_true(t[name] instanceof Element, "EventTarget must be an Element.");
+ break;
+ default:
+ break;
+ }
+ });
+}
+
+// Check a TouchList object's attributes and methods for existence and proper type
+// Also make sure all of the members of the list are Touch objects
+// TA: 1.2.1, 1.2.2, 1.2.5, 1.2.6
+function check_TouchList_object(tl) {
+ assert_equals(Object.prototype.toString.call(tl), "[object TouchList]", "touch list is of type TouchList");
+ [
+ ["unsigned long", "length"],
+ ["function", "item"],
+ ].forEach(function(attr) {
+ var type = attr[0];
+ var name = attr[1];
+
+ // existence check
+ assert_true(name in tl, name + " attribute in TouchList");
+
+ // type check
+ switch (type) {
+ case "unsigned long":
+ assert_equals(typeof tl[name], "number", name + " attribute of type long");
+ break;
+ case "function":
+ assert_equals(typeof tl[name], "function", name + " attribute of type function");
+ break;
+ default:
+ break;
+ }
+ });
+ // Each member of tl should be a proper Touch object
+ for (var i = 0; i < tl.length; i++) {
+ check_Touch_object(tl.item(i));
+ }
+ // TouchList.item(x) should return null if x is >= TouchList.length
+ var t = tl.item(tl.length);
+ assert_equals(t, null, "TouchList.item returns null if the index is >= the length of the list");
+}
+
+// Check a TouchEvent event's attributes for existence and proper type
+// Also check that each of the event's TouchList objects are valid
+// TA: 1.{3,4,5}.1.1, 1.{3,4,5}.1.2
+function check_TouchEvent(ev) {
+ assert_true(ev instanceof TouchEvent, ev.type + " event is a TouchEvent event");
+ [
+ ["TouchList", "touches"],
+ ["TouchList", "targetTouches"],
+ ["TouchList", "changedTouches"],
+ ["boolean", "altKey"],
+ ["boolean", "metaKey"],
+ ["boolean", "ctrlKey"],
+ ["boolean", "shiftKey"],
+ ].forEach(function(attr) {
+ var type = attr[0];
+ var name = attr[1];
+ // existence check
+ assert_true(name in ev, name + " attribute in " + ev.type + " event");
+ // type check
+ switch (type) {
+ case "boolean":
+ assert_equals(typeof ev[name], "boolean", name + " attribute of type boolean");
+ break;
+ case "TouchList":
+ assert_equals(Object.prototype.toString.call(ev[name]), "[object TouchList]", name + " attribute of type TouchList");
+ break;
+ default:
+ break;
+ }
+ });
+}
diff --git a/tests/wpt/web-platform-tests/touch-events/touch-touchevent-constructor.html b/tests/wpt/web-platform-tests/touch-events/touch-touchevent-constructor.html
new file mode 100644
index 00000000000..01775a23191
--- /dev/null
+++ b/tests/wpt/web-platform-tests/touch-events/touch-touchevent-constructor.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Touch and TouchEvent Constructor Tests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="touch-support.js"></script>
+</head>
+<body>
+<div id="target0"></div>
+<script>
+test(function() {
+ assert_throws(new TypeError(), function() {new Touch();}, "Touch constructor requires initialize dictionary");
+ assert_throws(new TypeError(), function() {new Touch({});}, "Touch constructor requires identifier and target");
+}, "Create a Touch object with insufficient properties");
+
+test(function() {
+ var testIdentifier = 74;
+ var testTarget = document.getElementById('target0');
+ var approxEpsilon = 0.00001;
+
+ var touch1 = new Touch({
+ identifier: testIdentifier,
+ target: testTarget,
+ });
+ check_Touch_object(touch1);
+ assert_equals(touch1.target, testTarget, "touch.target is requested value");
+ assert_equals(touch1.identifier, testIdentifier, "touch.identifier is requested value");
+ assert_approx_equals(touch1.pageX, 0, approxEpsilon, "touch.pageX is default value");
+ assert_approx_equals(touch1.pageY, 0, approxEpsilon, "touch.pageY is default value");
+ assert_approx_equals(touch1.screenX, 0, approxEpsilon, "touch.screenX is default value");
+ assert_approx_equals(touch1.screenY, 0, approxEpsilon, "touch.screenY is default value");
+ assert_approx_equals(touch1.clientX, 0, approxEpsilon, "touch.clientX is default value.");
+ assert_approx_equals(touch1.clientY, 0, approxEpsilon, "touch.clientY is default value.");
+}, "Touch constructor exists and creates a Touch object with minimum properties");
+
+test(function() {
+ var testIdentifier = 42;
+ var testTarget = document.getElementById('target0');
+ var testPageX = 15;
+ var testPageY = 20.2;
+ var testScreenX = 35.34;
+ var testScreenY = 40.56;
+ var testClientX = 10.175;
+ var testClientY = 5;
+ var approxEpsilon = 0.00001;
+
+ var touch1 = new Touch({
+ identifier: testIdentifier,
+ target: testTarget,
+ pageX: testPageX,
+ pageY: testPageY,
+ screenX: testScreenX,
+ screenY: testScreenY,
+ clientX: testClientX,
+ clientY: testClientY,
+ });
+ check_Touch_object(touch1);
+ assert_equals(touch1.identifier, testIdentifier, "touch.identifier is requested value");
+ assert_equals(touch1.target, testTarget, "touch.target is requested value");
+ assert_approx_equals(touch1.pageX, testPageX, approxEpsilon, "touch.pageX is requested value");
+ assert_approx_equals(touch1.pageY, testPageY, approxEpsilon, "touch.pageY is requested value");
+ assert_approx_equals(touch1.screenX, testScreenX, approxEpsilon, "touch.screenX is requested value");
+ assert_approx_equals(touch1.screenY, testScreenY, approxEpsilon, "touch.screenY is requested value");
+ assert_approx_equals(touch1.clientX, testClientX, approxEpsilon, "touch.clientX is requested value.");
+ assert_approx_equals(touch1.clientY, testClientY, approxEpsilon, "touch.clientY is requested value.");
+}, "Touch constructor exists and creates a Touch object with requested properties");
+
+
+test(function() {
+ var testTarget = document.getElementById('target0');
+
+ var touch1 = new Touch({
+ identifier: 45,
+ target: testTarget,
+ pageX: 45,
+ pageY: 50,
+ screenX: 65,
+ screenY: 60,
+ clientX: 70,
+ clientY: 75,
+ });
+ var touch2 = new Touch({
+ identifier: 52,
+ target: testTarget,
+ pageX: 15,
+ pageY: 20,
+ screenX: 15,
+ screenY: 20,
+ clientX: 15,
+ clientY: 20,
+ });
+
+ var touchEvent1 = new TouchEvent("ontouchstart", {
+ touches: [touch1, touch2],
+ targetTouches: [touch1],
+ altKey: true,
+ metaKey: false,
+ });
+
+ check_TouchEvent(touchEvent1);
+ assert_equals(touchEvent1.type, "ontouchstart", "touchEvent.type is requested value");
+ assert_equals(touchEvent1.touches.length, 2, "touchEvent.touches.length is requested value");
+ assert_equals(touchEvent1.touches[0], touch1, "touchEvent.touches[0] is requested value");
+ assert_equals(touchEvent1.touches[1], touch2, "touchEvent.touches[1] is requested value");
+ assert_equals(touchEvent1.targetTouches.length, 1, "touchEvent.targetTouches.length is requested value");
+ assert_equals(touchEvent1.targetTouches[0], touch1, "touchEvent.targetTouches[0] is requested value");
+ assert_equals(touchEvent1.changedTouches.length, 0, "touchEvent.changedTouches.length is requested value");
+ assert_equals(touchEvent1.altKey, true, "touchEvent.altKey is requested value");
+ assert_equals(touchEvent1.metaKey, false, "touchEvent.metaKey is requested value");
+ assert_equals(touchEvent1.ctrlKey, false, "touchEvent.ctrlKey is requested value");
+ assert_equals(touchEvent1.shiftKey, false, "touchEvent.shiftKey is requested value.");
+}, "TouchEvent constructor exists and creates a TouchEvent object with requested properties");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/url/a-element-xhtml.xhtml b/tests/wpt/web-platform-tests/url/a-element-xhtml.xhtml
index b46094ccae9..7e11e6d757a 100644
--- a/tests/wpt/web-platform-tests/url/a-element-xhtml.xhtml
+++ b/tests/wpt/web-platform-tests/url/a-element-xhtml.xhtml
@@ -3,60 +3,12 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>URL Test</title>
- <link rel="author" title="Intel" href="http://www.intel.com/" />
- <link rel="help" href="http://www.w3.org/html/wg/drafts/html/CR/infrastructure.html#urls" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="urltestparser.js"></script>
+ <base id="base"/>
</head>
<body>
<div id="log"></div>
- <script>
- <![CDATA[
- var setup = async_test("Loading data…")
- setup.step(function() {
- var request = new XMLHttpRequest()
- request.open("GET", "urltestdata.txt")
- request.send()
- request.responseType = "text"
- request.onload = setup.step_func(function() {
- runURLTests(request.response);
- setup.done()
- })
- })
-
- function setBase(base) {
- document.body.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:base", base);
- }
-
- function bURL(url, base) {
- base = base || "about:blank"
- setBase(base)
- var a = document.createElement("a")
- a.setAttribute("href", url)
- document.body.appendChild(a)
- return a
- }
-
- function runURLTests(raw) {
- var urltests = URLTestParser(raw)
- for(var i = 0, l = urltests.length; i < l; i++) {
- var expected = urltests[i]
- test(function() {
- var url = bURL(expected.input, expected.base)
- if(expected.protocol === ':' && url.protocol !== ':')
- assert_unreached('Expected URL to fail parsing')
- assert_equals(url.protocol, expected.protocol, "scheme")
- assert_equals(url.hostname, expected.hostname, "host")
- assert_equals(url.port, expected.port, "port")
- assert_equals(url.pathname, expected.path, "path")
- assert_equals(url.search, expected.search, "search")
- assert_equals(url.hash, expected.hash, "hash")
- assert_equals(url.href, expected.href, "href")
- }, "Parsing: <" + expected.input + "> against <" + expected.base + ">")
- }
- }
- ]]>
- </script>
+ <script src="a-element.js"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/url/a-element.html b/tests/wpt/web-platform-tests/url/a-element.html
index 6e81b0b001f..b190b949d2c 100644
--- a/tests/wpt/web-platform-tests/url/a-element.html
+++ b/tests/wpt/web-platform-tests/url/a-element.html
@@ -1,62 +1,7 @@
<!doctype html>
-<base id=base>
<meta charset=utf-8>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=urltestparser.js></script>
+<base id=base>
<div id=log></div>
-<script>
-var setup = async_test("Loading data…")
-setup.step(function() {
- var request = new XMLHttpRequest()
- request.open("GET", "urltestdata.json")
- request.send()
- request.responseType = "json"
- request.onload = setup.step_func(function() {
- runURLTests(request.response)
- setup.done()
- })
-})
-
-function setBase(base) {
- document.getElementById("base").href = base
-}
-
-function bURL(url, base) {
- base = base || "about:blank"
- setBase(base)
- var a = document.createElement("a")
- a.setAttribute("href", url)
- return a
-}
-
-function runURLTests(urltests) {
- for(var i = 0, l = urltests.length; i < l; i++) {
- var expected = urltests[i]
- if (typeof expected === "string") continue // skip comments
-
- test(function() {
- var url = bURL(expected.input, expected.base)
- if(expected.failure) {
- if(url.protocol !== ':') {
- assert_unreached("Expected URL to fail parsing")
- }
- assert_equals(url.href, expected.input, "failure should set href to input")
- return
- }
-
- assert_equals(url.href, expected.href, "href")
- assert_equals(url.origin, expected.origin, "origin")
- assert_equals(url.protocol, expected.protocol, "protocol")
- assert_equals(url.username, expected.username, "username")
- assert_equals(url.password, expected.password, "password")
- assert_equals(url.host, expected.host, "host")
- assert_equals(url.hostname, expected.hostname, "hostname")
- assert_equals(url.port, expected.port, "port")
- assert_equals(url.pathname, expected.pathname, "pathname")
- assert_equals(url.search, expected.search, "search")
- assert_equals(url.hash, expected.hash, "hash")
- }, "Parsing: <" + expected.input + "> against <" + expected.base + ">")
- }
-}
-</script>
+<script src=a-element.js></script>
diff --git a/tests/wpt/web-platform-tests/url/a-element.js b/tests/wpt/web-platform-tests/url/a-element.js
new file mode 100644
index 00000000000..1d92c9d88ab
--- /dev/null
+++ b/tests/wpt/web-platform-tests/url/a-element.js
@@ -0,0 +1,53 @@
+var setup = async_test("Loading data…")
+setup.step(function() {
+ var request = new XMLHttpRequest()
+ request.open("GET", "urltestdata.json")
+ request.send()
+ request.responseType = "json"
+ request.onload = setup.step_func(function() {
+ runURLTests(request.response)
+ setup.done()
+ })
+})
+
+function setBase(base) {
+ document.getElementById("base").href = base
+}
+
+function bURL(url, base) {
+ base = base || "about:blank"
+ setBase(base)
+ var a = document.createElement("a")
+ a.setAttribute("href", url)
+ return a
+}
+
+function runURLTests(urltests) {
+ for(var i = 0, l = urltests.length; i < l; i++) {
+ var expected = urltests[i]
+ if (typeof expected === "string") continue // skip comments
+
+ test(function() {
+ var url = bURL(expected.input, expected.base)
+ if(expected.failure) {
+ if(url.protocol !== ':') {
+ assert_unreached("Expected URL to fail parsing")
+ }
+ assert_equals(url.href, expected.input, "failure should set href to input")
+ return
+ }
+
+ assert_equals(url.href, expected.href, "href")
+ assert_equals(url.origin, expected.origin, "origin")
+ assert_equals(url.protocol, expected.protocol, "protocol")
+ assert_equals(url.username, expected.username, "username")
+ assert_equals(url.password, expected.password, "password")
+ assert_equals(url.host, expected.host, "host")
+ assert_equals(url.hostname, expected.hostname, "hostname")
+ assert_equals(url.port, expected.port, "port")
+ assert_equals(url.pathname, expected.pathname, "pathname")
+ assert_equals(url.search, expected.search, "search")
+ assert_equals(url.hash, expected.hash, "hash")
+ }, "Parsing: <" + expected.input + "> against <" + expected.base + ">")
+ }
+}
diff --git a/tests/wpt/web-platform-tests/url/urltestdata.json b/tests/wpt/web-platform-tests/url/urltestdata.json
index 2c7d344f163..7d9b9090fb2 100644
--- a/tests/wpt/web-platform-tests/url/urltestdata.json
+++ b/tests/wpt/web-platform-tests/url/urltestdata.json
@@ -4208,5 +4208,21 @@
"pathname": "/jqueryui@1.2.3",
"search": "",
"hash": ""
+ },
+ "# tab/LF/CR",
+ {
+ "input": "h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg",
+ "base": "about:blank",
+ "href": "http://host:9000/path?query#frag",
+ "origin": "http://host:9000",
+ "protocol": "http:",
+ "username": "",
+ "password": "",
+ "host": "host:9000",
+ "hostname": "host",
+ "port": "9000",
+ "pathname": "/path",
+ "search": "?query",
+ "hash": "#frag"
}
]
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/duration.html b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/duration.html
new file mode 100644
index 00000000000..671cc1215de
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/duration.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>duration tests</title>
+<link rel="help" href="http://w3c.github.io/web-animations/#dom-animationeffecttiming-duration">
+<link rel="author" title="Ryo Motozawa" href="mailto:motozawa@mozilla-japan.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<link rel="stylesheet" href="/resources/testharness.css">
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = 123.45;
+ assert_approx_equals(anim.effect.timing.duration, 123.45, 0.000001,
+ 'set duration 123.45');
+ assert_approx_equals(anim.effect.getComputedTiming().duration, 123.45,
+ 0.000001,
+ 'getComputedTiming() after set duration 123.45');
+}, 'set duration 123.45');
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = 'auto';
+ assert_equals(anim.effect.timing.duration, 0, 'set duration \'auto\'');
+ assert_equals(anim.effect.getComputedTiming().duration, 0,
+ 'getComputedTiming() after set duration \'auto\'');
+}, 'set duration auto');
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = -100;
+ assert_equals(anim.effect.timing.duration, 0, 'set duration -100');
+ assert_equals(anim.effect.getComputedTiming().duration, 0,
+ 'getComputedTiming() after set duration -100');
+}, 'set duration -100');
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = 'abc';
+ assert_equals(anim.effect.timing.duration, 0, 'set duration \'abc\'');
+ assert_equals(anim.effect.getComputedTiming().duration, 0,
+ 'getComputedTiming() after set duration \'abc\'');
+}, 'set duration abc');
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = '100';
+ assert_equals(anim.effect.timing.duration, 0, 'set duration \'100\'');
+ assert_equals(anim.effect.getComputedTiming().duration, 0,
+ 'getComputedTiming() after set duration \'100\'');
+}, 'set duration string 100');
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.effect.timing.duration = Infinity;
+ assert_equals(anim.effect.timing.duration, Infinity, 'set duration Infinity');
+ assert_equals(anim.effect.getComputedTiming().duration, Infinity,
+ 'getComputedTiming() after set duration Infinity');
+}, 'set duration Infinity');
+
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getAnimations.html b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getAnimations.html
new file mode 100644
index 00000000000..5a87a84a669
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getAnimations.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Element.getAnimations tests</title>
+<link rel="help" href="http://w3c.github.io/web-animations/#animationeffecttiming">
+<link rel="author" title="Ryo Motozawa" href="mailto:motozawa@mozilla-japan.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<link rel="stylesheet" href="/resources/testharness.css">
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000);
+ anim.finish();
+ assert_equals(div.getAnimations().length, 0, 'animation finished');
+ anim.effect.timing.duration += 100000;
+ assert_equals(div.getAnimations()[0], anim, 'set duration 102000');
+ anim.effect.timing.duration = 0;
+ assert_equals(div.getAnimations().length, 0, 'set duration 0');
+ anim.effect.timing.duration = 'auto';
+ assert_equals(div.getAnimations().length, 0, 'set duration \'auto\'');
+}, 'when duration is changed');
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getComputedStyle.html b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getComputedStyle.html
new file mode 100644
index 00000000000..0e773f7b0d2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-animations/animation-effect-timing/getComputedStyle.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>getComputedStyle tests</title>
+<link rel="help" href="http://w3c.github.io/web-animations/#animationeffecttiming">
+<link rel="author" title="Ryo Motozawa" href="mailto:motozawa@mozilla-japan.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<link rel="stylesheet" href="/resources/testharness.css">
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 100000);
+ anim.finish();
+ assert_equals(getComputedStyle(div).opacity, '1', 'animation finished');
+ anim.effect.timing.duration *= 2;
+ assert_equals(getComputedStyle(div).opacity, '0.5', 'set double duration');
+ anim.effect.timing.duration = 0;
+ assert_equals(getComputedStyle(div).opacity, '1', 'set duration 0');
+ anim.effect.timing.duration = 'auto';
+ assert_equals(getComputedStyle(div).opacity, '1', 'set duration \'auto\'');
+}, 'changed duration immediately updates its computed styles');
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-currentIteration.html b/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-currentIteration.html
new file mode 100644
index 00000000000..f954e66b978
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-currentIteration.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>currentIteration of KeyframeEffectReadOnly getComputedTiming() tests</title>
+<link rel="help" href="https://w3c.github.io/web-animations/#dom-animationeffectreadonly-getcomputedtiming">
+<link rel="author" title="Daisuke Akatsuka" href="mailto:daisuke@mozilla-japan.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<link rel="stylesheet" href="/resources/testharness.css">
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+function executeTests(tests, description) {
+ tests.forEach(function(currentTest) {
+ var testParams = '';
+ for (var attr in currentTest.input) {
+ testParams += ' ' + attr + ':' + currentTest.input[attr];
+ }
+ test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, currentTest.input);
+ assert_equals(anim.effect.getComputedTiming().currentIteration,
+ currentTest.before);
+ anim.currentTime = currentTest.input.delay || 0;
+ assert_equals(anim.effect.getComputedTiming().currentIteration,
+ currentTest.active);
+ if (typeof currentTest.after !== 'undefined') {
+ anim.finish();
+ assert_equals(anim.effect.getComputedTiming().currentIteration,
+ currentTest.after);
+ }
+ }, description + testParams);
+ });
+}
+
+async_test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, { delay: 1 });
+ assert_equals(anim.effect.getComputedTiming().currentIteration, null);
+ anim.finished.then(t.step_func(function() {
+ assert_equals(anim.effect.getComputedTiming().currentIteration, null);
+ t.done();
+ }));
+}, 'Test currentIteration during before and after phase when fill is none');
+
+var gTests_zero_iterations = [
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2,
+ after: 2
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2,
+ after: 2
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2,
+ after: 2
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3,
+ after: 3
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3,
+ after: 3
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3,
+ after: 3
+ }
+];
+
+var gTests_integer_iterations = [
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 2,
+ after: 2
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 2
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 5,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 5,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3
+ }
+];
+
+var gTests_fractional_iterations = [
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 3,
+ after: 3
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 3
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 5,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2,
+ after: 5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 6,
+ after: 6
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3,
+ after: 6
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3
+ }
+];
+
+var gTests_infinity_iterations = [
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: Infinity,
+ after: Infinity
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: Infinity,
+ after: Infinity
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 2,
+ active: 2
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: Infinity,
+ after: Infinity
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 3,
+ active: 3
+ }
+];
+
+executeTests(gTests_zero_iterations, "Test zero iterations:");
+executeTests(gTests_integer_iterations, "Test integer iterations:");
+executeTests(gTests_fractional_iterations, "Test fractional iterations:");
+executeTests(gTests_infinity_iterations, "Test infinity iterations:");
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-progress.html b/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-progress.html
new file mode 100644
index 00000000000..09d8cf00483
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-animations/keyframe-effect/getComputedTiming-progress.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>progress of KeyframeEffectReadOnly getComputedTiming() tests</title>
+<link rel="help" href="https://w3c.github.io/web-animations/#dom-animationeffectreadonly-getcomputedtiming">
+<link rel="author" title="Daisuke Akatsuka" href="mailto:daisuke@mozilla-japan.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<link rel="stylesheet" href="/resources/testharness.css">
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+function executeTests(tests, description) {
+ tests.forEach(function(currentTest) {
+ var testParams = '';
+ for (var attr in currentTest.input) {
+ testParams += ' ' + attr + ':' + currentTest.input[attr];
+ }
+ test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, currentTest.input);
+ assert_equals(anim.effect.getComputedTiming().progress,
+ currentTest.before);
+ anim.currentTime = currentTest.input.delay || 0;
+ assert_equals(anim.effect.getComputedTiming().progress,
+ currentTest.active);
+ if (typeof currentTest.after !== 'undefined') {
+ anim.finish();
+ assert_equals(anim.effect.getComputedTiming().progress,
+ currentTest.after);
+ }
+ }, description + testParams);
+ });
+}
+
+async_test(function(t) {
+ var div = createDiv(t);
+ var anim = div.animate({ opacity: [ 0, 1 ] }, { delay: 1 });
+ assert_equals(anim.effect.getComputedTiming().progress, null);
+ anim.finished.then(t.step_func(function() {
+ assert_equals(anim.effect.getComputedTiming().progress, null);
+ t.done();
+ }));
+}, 'Test progress during before and after phase when fill is none');
+
+var gTests_zero_iterations = [
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ },
+
+ {
+ input: { iterations: 0,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0
+ }
+];
+
+var gTests_integer_iterations = [
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 1,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 1,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ }
+];
+
+var gTests_fractional_iterations = [
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 1,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 1
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: 3.5,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ }
+];
+
+var gTests_infinity_iterations = [
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 1,
+ after: 1
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 0,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5,
+ after: 0.5
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 2.5,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0.5,
+ active: 0.5
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: 0,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 1,
+ after: 1
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: 100,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ },
+
+ {
+ input: { iterations: Infinity,
+ iterationStart: 3,
+ duration: Infinity,
+ delay: 1,
+ fill: 'both' },
+ before: 0,
+ active: 0
+ }
+];
+
+executeTests(gTests_zero_iterations, "Test zero iterations:");
+executeTests(gTests_integer_iterations, "Test integer iterations:");
+executeTests(gTests_fractional_iterations, "Test fractional iterations:");
+executeTests(gTests_infinity_iterations, "Test infinity iterations:");
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/buffers/buffer-data-array-buffer.html b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/buffers/buffer-data-array-buffer.html
index e227e8b0fcf..d0fcf406556 100644
--- a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/buffers/buffer-data-array-buffer.html
+++ b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/buffers/buffer-data-array-buffer.html
@@ -86,7 +86,7 @@ gl.bufferSubData(gl.ARRAY_BUFFER, 10, array);
wtu.glErrorShouldBe(gl, gl.NO_ERROR);
gl.bufferSubData(gl.ARRAY_BUFFER, 10, null);
-wtu.glErrorShouldBe(gl, gl.NO_ERROR);
+wtu.glErrorShouldBe(gl, [gl.NO_ERROR, gl.INVALID_VALUE]);
var successfullyParsed = true;
</script>
diff --git a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/extensions/webgl-depth-texture.html b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/extensions/webgl-depth-texture.html
index 737b76d26d7..6bb81d7c11d 100644
--- a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/extensions/webgl-depth-texture.html
+++ b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/extensions/webgl-depth-texture.html
@@ -118,8 +118,8 @@ function runTestDisabled() {
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
- wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_SHORT, null)');
- wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null)');
+ wtu.shouldGenerateGLError(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_SHORT, null)');
+ wtu.shouldGenerateGLError(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null)');
}
diff --git a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/functions/texImage2DBadArgs.html b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/functions/texImage2DBadArgs.html
index 29eaa9de8ca..9c59421f01e 100644
--- a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/functions/texImage2DBadArgs.html
+++ b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/functions/texImage2DBadArgs.html
@@ -63,7 +63,7 @@ Tests.testTexImage2D = function(gl) {
assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){
gl.texImage2D(gl.FLOAT, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, null);
});
- assertGLError(gl, gl.INVALID_ENUM, "bad internal format/format", function(){
+ assertGLError(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], "bad internal format/format", function(){
gl.texImage2D(gl.TEXTURE_2D, 0, gl.FLOAT, 1,1,0,gl.FLOAT,gl.UNSIGNED_BYTE, null);
});
assertGLError(gl, gl.INVALID_VALUE, "border > 0", function(){
diff --git a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/util.js b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/util.js
index 4359fe46c89..e1d5d638a61 100644
--- a/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/util.js
+++ b/tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/more/util.js
@@ -1020,6 +1020,40 @@ function assertGLError(gl, err, name, f) {
return true;
}
+// Assert that f generates a GL error from a list.
+function assertGLErrorIn(gl, expectedErrorList, name, f) {
+ if (f == null) { f = name; name = null; }
+
+ var actualError = 0;
+ try {
+ f();
+ } catch(e) {
+ if ('glError' in e) {
+ actualError = e.glError;
+ } else {
+ testFailed("assertGLError: UNEXPCETED EXCEPTION", name, f);
+ return false;
+ }
+ }
+
+ var expectedErrorStrList = [];
+ var expectedErrorSet = {};
+ for (var i in expectedErrorList) {
+ var cur = expectedErrorList[i];
+ expectedErrorSet[cur] = true;
+ expectedErrorStrList.push(getGLErrorAsString(gl, cur));
+ }
+ var expectedErrorListStr = "[" + expectedErrorStrList.join(", ") + "]";
+
+ if (actualError in expectedErrorSet) {
+ return true;
+ }
+
+ testFailed("assertGLError: expected: " + expectedErrorListStr +
+ " actual: " + getGLErrorAsString(gl, actualError), name, f);
+ return false;
+}
+
// Assert that f generates some GL error. Used in situations where it's
// ambigious which of multiple possible errors will be generated.
function assertSomeGLError(gl, name, f) {
diff --git a/tests/wpt/web-platform-tests/webmessaging/MessageEvent.html b/tests/wpt/web-platform-tests/webmessaging/MessageEvent.html
new file mode 100644
index 00000000000..e95b3efc2ac
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webmessaging/MessageEvent.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>MessageEvent</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id=log></div>
+<script>
+var prefixes = ['moz', 'ms', 'o', 'webkit'];
+prefixes.forEach(function(prefix) {
+ var name = prefix + "InitMessageEvent";
+
+ test(function() {
+ assert_false(name in MessageEvent.prototype);
+ }, name + " on the prototype");
+
+ test(function() {
+ var event = new MessageEvent("message");
+ assert_false(name in event);
+ }, name + " on the instance");
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/webmessaging/MessageEvent_properties.htm b/tests/wpt/web-platform-tests/webmessaging/MessageEvent_properties.htm
index f95c257f0c9..389add98d1f 100644
--- a/tests/wpt/web-platform-tests/webmessaging/MessageEvent_properties.htm
+++ b/tests/wpt/web-platform-tests/webmessaging/MessageEvent_properties.htm
@@ -9,39 +9,24 @@
<div id=log></div>
<div style="display:none">
- <iframe width="70%" onload="PostMessageTest()" src="./support/ChildWindowPostMessage.htm"></iframe>
+ <iframe width="70%" onload="do_test()" src="./support/ChildWindowPostMessage.htm"></iframe>
</div>
<script>
+async_test(function() {
+ window.do_test = this.step_func(function() {
+ document.querySelector("iframe").contentWindow.postMessage("foo", "*");
+ })
-
- var description = "Test Description: " +
- "Create an event that uses the MessageEvent interface, with the event type message, " +
- "which does not bubble, is not cancelable, and has no default action.";
-
- var t = async_test(description);
-
- var DATA = "foo";
- var TARGET = document.querySelector("iframe");
- var ExpectedResult = [true, true, false, false, false];
- var ActualResult = [];
-
- function PostMessageTest()
- {
- TARGET.contentWindow.postMessage(DATA, "*");
- }
-
- window.addEventListener("message", t.step_func(function(e)
- {
+ window.addEventListener("message", this.step_func_done(function(e) {
e.preventDefault();
-
- ActualResult = [(e instanceof MessageEvent), (e.type == "message"), e.bubbles, e.cancelable, e.defaultPrevented];
-
- assert_array_equals(ActualResult, ExpectedResult, "ActualResult");
-
- t.done();
-
+ assert_true(e instanceof MessageEvent, "Should be MessageEvent");
+ assert_equals(e.type, "message");
+ assert_false(e.bubbles, "bubbles");
+ assert_false(e.cancelable, "cancelable");
+ assert_false(e.defaultPrevented, "defaultPrevented");
}), false);
+});
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-0.htm b/tests/wpt/web-platform-tests/websockets/Close-0.htm
index e6496d9909b..4dd88f6c718 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-0.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-0.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is 0</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-1000-reason.htm b/tests/wpt/web-platform-tests/websockets/Close-1000-reason.htm
index 88fbc611640..8424d7882a4 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-1000-reason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-1000-reason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is 1000 and reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-1000.htm b/tests/wpt/web-platform-tests/websockets/Close-1000.htm
index d1711d924f6..1622109d8e8 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-1000.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-1000.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is 1000</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-NaN.htm b/tests/wpt/web-platform-tests/websockets/Close-NaN.htm
index 05b471fc558..8fd2219299b 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-NaN.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-NaN.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is NaN</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-Reason-124Bytes.htm b/tests/wpt/web-platform-tests/websockets/Close-Reason-124Bytes.htm
index bfc12e33733..82a661e2414 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-Reason-124Bytes.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-Reason-124Bytes.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Reason is more than 123 bytes long</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-clamp.htm b/tests/wpt/web-platform-tests/websockets/Close-clamp.htm
index d6870ea2626..6660e813e2c 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-clamp.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-clamp.htm
@@ -2,7 +2,7 @@
<title>WebSocket#close(2**16+1000)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="websocket.js?pipe=sub"></script>
+<script src="websocket.sub.js"></script>
<div id="log"></div>
<script>
test(function() {
diff --git a/tests/wpt/web-platform-tests/websockets/Close-null.htm b/tests/wpt/web-platform-tests/websockets/Close-null.htm
index 165fc2d0dfb..dcd477313e6 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-null.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-null.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is null</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-reason-unpaired-surrogates.htm b/tests/wpt/web-platform-tests/websockets/Close-reason-unpaired-surrogates.htm
index cabbe97ca61..9ad8d618cad 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-reason-unpaired-surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-reason-unpaired-surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Reason with unpaired surrogates</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-string.htm b/tests/wpt/web-platform-tests/websockets/Close-string.htm
index 75a3a90ac66..d394d5ccad0 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-string.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-string.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is String</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Close-undefined.htm b/tests/wpt/web-platform-tests/websockets/Close-undefined.htm
index 3de1656561c..d6c89afbf05 100644
--- a/tests/wpt/web-platform-tests/websockets/Close-undefined.htm
+++ b/tests/wpt/web-platform-tests/websockets/Close-undefined.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close WebSocket - Code is undefined</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-blocked-port.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-blocked-port.htm
index 8a4866d0724..572ff1652ce 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-blocked-port.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-blocked-port.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket - blocked port</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-extensions-empty.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-extensions-empty.htm
index ea1774d9618..2f9f7976589 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-extensions-empty.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-extensions-empty.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-url-with-space.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-url-with-space.htm
index f5fc467b4ad..d2dfe1bd79f 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-url-with-space.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-url-with-space.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket - url with space</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.htm
index 427f94499c6..d61a429c51c 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket with valid url and array of protocols</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.htm
index a9f772ffdf3..0261fb48ab1 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket - binaryType set correctly</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm
index 56330805f83..a7f1510a00c 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket and verify if protocol is set correctly after connection</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.htm
index 6fcaaec6f07..7250b4e7bf5 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket with valid url and protocol string</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url.htm
index 2e448f24ec6..1fe6c0f4351 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-valid-url.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket with valid url</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.htm b/tests/wpt/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.htm
index 01cb239e7ba..63e49f4f7f4 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket - wsocket.url is set correctly - non default port</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-asciiSep-protocol-string.htm b/tests/wpt/web-platform-tests/websockets/Create-asciiSep-protocol-string.htm
index 7309009d052..0d0480eb721 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-asciiSep-protocol-string.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-asciiSep-protocol-string.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - ascii protocol string with separator</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-invalid-urls.htm b/tests/wpt/web-platform-tests/websockets/Create-invalid-urls.htm
index 483ba29ccc8..c4a4c79869d 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-invalid-urls.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-invalid-urls.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - pass in list of invalid urls</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-non-absolute-url.htm b/tests/wpt/web-platform-tests/websockets/Create-non-absolute-url.htm
index 5fa19c9e614..2ed8ece16fe 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-non-absolute-url.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-non-absolute-url.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - non absolute url</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-nonAscii-protocol-string.htm b/tests/wpt/web-platform-tests/websockets/Create-nonAscii-protocol-string.htm
index 7c758470187..fd3401801dd 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-nonAscii-protocol-string.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-nonAscii-protocol-string.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - non ascii protocol string</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-protocol-with-space.htm b/tests/wpt/web-platform-tests/websockets/Create-protocol-with-space.htm
index 54100be9afc..023a498319e 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-protocol-with-space.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-protocol-with-space.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - protocol with space</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.htm b/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.htm
index f32ce5bfd58..47225ef2ec6 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - repeated protocols with different case</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated.htm b/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated.htm
index eaad41d9bf4..6a62bca501c 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-protocols-repeated.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - repeated protocols</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-valid-url-array-protocols.htm b/tests/wpt/web-platform-tests/websockets/Create-valid-url-array-protocols.htm
index ef979114a8a..3ebf3f5623a 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-valid-url-array-protocols.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-valid-url-array-protocols.htm
@@ -2,7 +2,7 @@
<html>
<head>
<title>W3C WebSocket API - Create WebSocket with valid url and array of protocols</title>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
</head>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol-empty.htm b/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol-empty.htm
index 9961075f3ab..9146937ba6a 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol-empty.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol-empty.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - wsocket.protocol is empty before connection is established</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol.htm b/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol.htm
index 3457b704e50..0a6dd97f0da 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-valid-url-protocol.htm
@@ -2,7 +2,7 @@
<html>
<head>
<title>W3C WebSocket API - Create WebSocket with a valid url and protocol string</title>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
</head>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-valid-url.htm b/tests/wpt/web-platform-tests/websockets/Create-valid-url.htm
index 7803a6e9748..e74a7bfef2d 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-valid-url.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-valid-url.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket with valid url</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-verify-url-set-non-default-port.htm b/tests/wpt/web-platform-tests/websockets/Create-verify-url-set-non-default-port.htm
index 08a01cb52c0..181794df951 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-verify-url-set-non-default-port.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-verify-url-set-non-default-port.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - wsocket.url is set correctly - non default port</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Create-wrong-scheme.htm b/tests/wpt/web-platform-tests/websockets/Create-wrong-scheme.htm
index 6507761882d..a0a98205eba 100644
--- a/tests/wpt/web-platform-tests/websockets/Create-wrong-scheme.htm
+++ b/tests/wpt/web-platform-tests/websockets/Create-wrong-scheme.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create WebSocket - non ws/wss scheme in url</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/OWNERS b/tests/wpt/web-platform-tests/websockets/OWNERS
index a34c94d717f..de8d614a7c8 100644
--- a/tests/wpt/web-platform-tests/websockets/OWNERS
+++ b/tests/wpt/web-platform-tests/websockets/OWNERS
@@ -3,7 +3,6 @@
@plehegar
@zqzhang
@sideshowbarker
-@foolip
@Jxck
@jdm
@Ms2ger
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-0.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-0.htm
index 1babd4b4825..03f8aa5faf7 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-0.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-0.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 0</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-reason.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-reason.htm
index 750c43c5ae3..3dead6bfbd9 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-reason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-reason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 1000 and reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-verify-code.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-verify-code.htm
index b0f6c8ea843..0cac622f353 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-verify-code.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000-verify-code.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 1000 - verify code in CloseEvent is 1000</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000.htm
index ebe4f7844c7..3da86305a19 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-1000.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-1000.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 1000</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-1005-verify-code.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-1005-verify-code.htm
index 4d2d81cf1cd..6414b770c37 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-1005-verify-code.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-1005-verify-code.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - verify return code is 1005</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-1005.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-1005.htm
index 7f6f6e11b44..de8f51f28c6 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-1005.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-1005.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 1005</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-2999-reason.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-2999-reason.htm
index 0eddc1d6263..223fc62efb4 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-2999-reason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-2999-reason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 2999 and reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-reason.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-reason.htm
index 647bbf2d05a..80a8be781a8 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-reason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-reason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 3000 and reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-verify-code.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-verify-code.htm
index 5a13d442705..9d385d99b8b 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-verify-code.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-3000-verify-code.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 3000 - verify code in CloseEvent is 3000</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-4999-reason.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-4999-reason.htm
index cfa5693f3ba..a6ea069491a 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-4999-reason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-4999-reason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is 4999 and reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-NaN.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-NaN.htm
index 10013024d93..aae6075dc23 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-NaN.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-NaN.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is NaN</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.htm
index 0c0c1b59546..94feb0f27ee 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Reason is more than 123 bytes long</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.htm
index 033555db7d6..6947173324b 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Reason with unpaired surrogates</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-null.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-null.htm
index 30f4935f897..f6b67d5ffca 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-null.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-null.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is null</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-onlyReason.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-onlyReason.htm
index cad49329c00..278d7aa330c 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-onlyReason.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-onlyReason.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Only reason</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closed.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closed.htm
index 3e7b09c47f7..3ed38a8fe38 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closed.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closed.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - verify readyState is 3 when onclose is fired</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closing.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closing.htm
index 0e085c65c05..10483965f19 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closing.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-readyState-Closing.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - verify readyState is 2 before onclose is fired</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-server-initiated-close.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-server-initiated-close.htm
index 573539af8c6..4262754cbca 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-server-initiated-close.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-server-initiated-close.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Server Initiated close</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-string.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-string.htm
index 20dffe1e661..64bf16b1ee5 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-string.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-string.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is string</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Close-undefined.htm b/tests/wpt/web-platform-tests/websockets/Secure-Close-undefined.htm
index f6c77ba77ad..9bd4861f023 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Close-undefined.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Close-undefined.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Close Secure WebSocket - Code is undefined</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-65K-data.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-65K-data.htm
index cbbf5c2c511..f9bbe376d62 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-65K-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-65K-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send 65K data - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.htm
index bd488f021f0..64cfc024129 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send 65K binary data - ArrayBuffer - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.htm
index 9c81e462f42..0e068ff5738 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBuffer - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.htm
index cdc7c240fcd..30a8010a229 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Float32Array - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.htm
index 2123b5d4c89..1e121a882f3 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Float32Array - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.htm
index 406f9234d9d..316c62c9625 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Int32Array - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm
index 0de53f6883d..1737d93b13c 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint16Array with offset and length - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm
index 89347004a13..735bae5ff3f 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint32Array with offset - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm
index c2849c845b1..83e14351a52 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint8Array with offset and length - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm
index 1e0934029d8..413ec34312e 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Uint8Array with offset - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-blob.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-blob.htm
index eb80e1bd3df..6d52aa7e818 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-blob.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-binary-blob.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - Blob - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-data.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-data.htm
index 7f679fe731a..d7c1595b3a5 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send data - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-null.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-null.htm
index 1adf3c9a891..0a203359b39 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-null.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-null.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send null data - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-paired-surrogates.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-paired-surrogates.htm
index 4261815be52..959e307d218 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-paired-surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-paired-surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send (paired surrogates) data - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-unicode-data.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-unicode-data.htm
index 01555e069d7..42de6416402 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-unicode-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-unicode-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send unicode data - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.htm b/tests/wpt/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.htm
index 99dfbd3ec24..11df504b133 100644
--- a/tests/wpt/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send unpaired surrogates - Secure WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-0byte-data.htm b/tests/wpt/web-platform-tests/websockets/Send-0byte-data.htm
index 328816f82f6..52ab7ca5b8f 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-0byte-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-0byte-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send 0 byte data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-65K-data.htm b/tests/wpt/web-platform-tests/websockets/Send-65K-data.htm
index 151af2da4a7..7d223403c39 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-65K-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-65K-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send 65K data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-Unpaired-Surrogates.htm b/tests/wpt/web-platform-tests/websockets/Send-Unpaired-Surrogates.htm
index 3e70923e742..6697e687a5d 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-Unpaired-Surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-Unpaired-Surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send unpaired surrogates - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-before-open.htm b/tests/wpt/web-platform-tests/websockets/Send-before-open.htm
index 23a9460e646..1aace5405c2 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-before-open.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-before-open.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send WebSocket - Send before connection in established</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-binary-65K-arraybuffer.htm b/tests/wpt/web-platform-tests/websockets/Send-binary-65K-arraybuffer.htm
index e4d26846f74..95c12cf80d9 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-binary-65K-arraybuffer.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-binary-65K-arraybuffer.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send 65K binary data - ArrayBuffer - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybuffer.htm b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybuffer.htm
index aeb4a38e76b..b960b921add 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybuffer.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybuffer.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBuffer - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.htm b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.htm
index 869e6de0388..0ebd3ac2a1e 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Int16Array with offset - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int8.htm b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int8.htm
index c46d7aa1a6c..5336a877875 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int8.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-binary-arraybufferview-int8.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - ArrayBufferView - Int8Array - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-binary-blob.htm b/tests/wpt/web-platform-tests/websockets/Send-binary-blob.htm
index 00a3ec5fe0d..fa14f4cd49b 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-binary-blob.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-binary-blob.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send binary data - Blob - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-data.htm b/tests/wpt/web-platform-tests/websockets/Send-data.htm
index cb58a30a3ea..547a15f8642 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-data.worker.js b/tests/wpt/web-platform-tests/websockets/Send-data.worker.js
index f03776fb323..f607fd7cf38 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-data.worker.js
+++ b/tests/wpt/web-platform-tests/websockets/Send-data.worker.js
@@ -1,5 +1,5 @@
importScripts("/resources/testharness.js");
-importScripts('websocket.js?pipe=sub')
+importScripts('websocket.sub.js')
var data = "test data";
diff --git a/tests/wpt/web-platform-tests/websockets/Send-null.htm b/tests/wpt/web-platform-tests/websockets/Send-null.htm
index b59e4a30573..5b7a6f15042 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-null.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-null.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send null data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-paired-surrogates.htm b/tests/wpt/web-platform-tests/websockets/Send-paired-surrogates.htm
index 055cfd212c9..44132212b12 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-paired-surrogates.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-paired-surrogates.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send (paired surrogates) data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/Send-unicode-data.htm b/tests/wpt/web-platform-tests/websockets/Send-unicode-data.htm
index 77ec1b66e68..aba7918378b 100644
--- a/tests/wpt/web-platform-tests/websockets/Send-unicode-data.htm
+++ b/tests/wpt/web-platform-tests/websockets/Send-unicode-data.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Send unicode data - WebSocket</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/binaryType-wrong-value.htm b/tests/wpt/web-platform-tests/websockets/binaryType-wrong-value.htm
index 957d97e7784..2bab6710cdc 100644
--- a/tests/wpt/web-platform-tests/websockets/binaryType-wrong-value.htm
+++ b/tests/wpt/web-platform-tests/websockets/binaryType-wrong-value.htm
@@ -4,7 +4,7 @@
<title>W3C WebSocket API - Create Secure WebSocket - binaryType is set to something other than blob/arraybuffer</title>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <script type="text/javascript" src="websocket.js?pipe=sub"></script>
+ <script type="text/javascript" src="websocket.sub.js"></script>
</head>
<body>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/websockets/constructor.html b/tests/wpt/web-platform-tests/websockets/constructor.html
index ca379bdfa2b..c135b325ec6 100644
--- a/tests/wpt/web-platform-tests/websockets/constructor.html
+++ b/tests/wpt/web-platform-tests/websockets/constructor.html
@@ -2,7 +2,7 @@
<title>WebSocket constructor</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="websocket.js?pipe=sub"></script>
+<script src="websocket.sub.js"></script>
<div id="log"></div>
<script>
test(function() {
diff --git a/tests/wpt/web-platform-tests/websockets/eventhandlers.html b/tests/wpt/web-platform-tests/websockets/eventhandlers.html
index 4fae08d4338..95aeb0b1239 100644
--- a/tests/wpt/web-platform-tests/websockets/eventhandlers.html
+++ b/tests/wpt/web-platform-tests/websockets/eventhandlers.html
@@ -2,7 +2,7 @@
<title>WebSocket event handlers</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="websocket.js?pipe=sub"></script>
+<script src="websocket.sub.js"></script>
<div id="log"></div>
<script>
function testEventHandler(name) {
diff --git a/tests/wpt/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js b/tests/wpt/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js
index 1a10e1e7e6c..85954ca2b14 100644
--- a/tests/wpt/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js
+++ b/tests/wpt/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js
@@ -1,6 +1,6 @@
importScripts("/resources/testharness.js");
importScripts('../constants.js?pipe=sub');
-importScripts('../websocket.js?pipe=sub');
+importScripts('../websocket.sub.js');
async_test(function(t) {
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/origin');
diff --git a/tests/wpt/web-platform-tests/websockets/websocket.js b/tests/wpt/web-platform-tests/websockets/websocket.sub.js
index 65c4c30365d..65c4c30365d 100644
--- a/tests/wpt/web-platform-tests/websockets/websocket.js
+++ b/tests/wpt/web-platform-tests/websockets/websocket.sub.js