summaryrefslogtreecommitdiffstats
path: root/test/wpt/status
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
commit0b6210cd37b68b94252cb798598b12974a20e1c1 (patch)
treee371686554a877842d95aa94f100bee552ff2a8e /test/wpt/status
parentInitial commit. (diff)
downloadnode-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz
node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/wpt/status')
-rw-r--r--test/wpt/status/FileAPI.status.json75
-rw-r--r--test/wpt/status/fetch.status.json457
-rw-r--r--test/wpt/status/mimesniff.status.json7
-rw-r--r--test/wpt/status/service-workers/cache-storage.status.json24
-rw-r--r--test/wpt/status/websockets.status.json115
-rw-r--r--test/wpt/status/xhr/formdata.status.json1
6 files changed, 679 insertions, 0 deletions
diff --git a/test/wpt/status/FileAPI.status.json b/test/wpt/status/FileAPI.status.json
new file mode 100644
index 0000000..c64d255
--- /dev/null
+++ b/test/wpt/status/FileAPI.status.json
@@ -0,0 +1,75 @@
+{
+ "file": {
+ "File-constructor.any.js": {
+ "flaky": [
+ "Using type in File constructor: nonparsable"
+ ]
+ }
+ },
+ "blob": {
+ "Blob-constructor.any.js": {
+ "skip": true
+ },
+ "Blob-stream.any.js": {
+ "fail": [
+ "Reading Blob.stream() with BYOB reader"
+ ]
+ }
+ },
+ "url": {
+ "url-with-xhr.any.js": {
+ "skip": true
+ },
+ "url-with-fetch.any.js": {
+ "note": "needs investigation",
+ "fail": [
+ "Only exact matches should revoke URLs, using fetch",
+ "Revoke blob URL after creating Request, will fetch",
+ "Revoke blob URL after creating Request, then clone Request, will fetch"
+ ]
+ },
+ "url-format.any.js": {
+ "fail": [
+ "Origin of Blob URL matches our origin",
+ "Blob URL parses correctly",
+ "Origin of Blob URL matches our origin for Files"
+ ]
+ }
+ },
+ "reading-data-section": {
+ "filereader_result.any.js": {
+ "note": "has to do with html microtask queue being different than queueMicrotask",
+ "skip": true
+ },
+ "filereader_events.any.js": {
+ "note": "has to do with html microtask queue being different than queueMicrotask",
+ "fail": [
+ "events are dispatched in the correct order for an empty blob",
+ "events are dispatched in the correct order for a non-empty blob"
+ ]
+ }
+ },
+ "idlharness.any.js": {
+ "note": "These flaky tests only fail in < node v19; add in a way to mark them as such eventually",
+ "flaky": [
+ "Blob interface: attribute size",
+ "Blob interface: attribute type",
+ "Blob interface: operation slice(optional long long, optional long long, optional DOMString)",
+ "Blob interface: operation stream()",
+ "Blob interface: operation text()",
+ "Blob interface: operation arrayBuffer()",
+ "URL interface: operation createObjectURL((Blob or MediaSource))",
+ "URL interface: operation revokeObjectURL(DOMString)"
+ ],
+ "fail": [
+ "FileList interface: existence and properties of interface object",
+ "FileList interface object length",
+ "FileList interface object name",
+ "FileList interface: existence and properties of interface prototype object",
+ "FileList interface: existence and properties of interface prototype object's \"constructor\" property",
+ "FileList interface: existence and properties of interface prototype object's @@unscopables property",
+ "FileList interface: operation item(unsigned long)",
+ "FileList interface: attribute length"
+ ]
+ }
+}
diff --git a/test/wpt/status/fetch.status.json b/test/wpt/status/fetch.status.json
new file mode 100644
index 0000000..5910bf3
--- /dev/null
+++ b/test/wpt/status/fetch.status.json
@@ -0,0 +1,457 @@
+{
+ "api": {
+ "abort": {
+ "general.any.js": {
+ "note": "TODO(@KhafraDev): Clone aborts with original controller can probably be fixed",
+ "fail": [
+ "Already aborted signal rejects immediately",
+ "Underlying connection is closed when aborting after receiving response - no-cors",
+ "Stream errors once aborted. Underlying connection closed.",
+ "Readable stream synchronously cancels with AbortError if aborted before reading",
+ "Clone aborts with original controller"
+ ]
+ },
+ "cache.https.any.js": {
+ "note": "undici doesn't implement http caching",
+ "skip": true
+ }
+ },
+ "basic": {
+ "conditional-get.any.js": {
+ "fail": [
+ "Testing conditional GET with ETags"
+ ]
+ },
+ "header-value-combining.any.js": {
+ "fail": [
+ "response.headers.get('content-length') expects 0, 0",
+ "response.headers.get('foo-test') expects 1, 2, 3",
+ "response.headers.get('heya') expects , \\x0B\f, 1, , , 2"
+ ],
+ "flaky": [
+ "response.headers.get('content-length') expects 0",
+ "response.headers.get('double-trouble') expects , ",
+ "response.headers.get('www-authenticate') expects 1, 2, 3, 4"
+ ]
+ },
+ "integrity.sub.any.js": {
+ "fail": [
+ "Empty string integrity for opaque response"
+ ]
+ },
+ "keepalive.any.js": {
+ "note": "document is not defined",
+ "skip": true
+ },
+ "mode-no-cors.sub.any.js": {
+ "note": "undici doesn't implement CORs",
+ "skip": true
+ },
+ "mode-same-origin.any.js": {
+ "note": "undici doesn't respect RequestInit.mode",
+ "skip": true
+ },
+ "referrer.any.js": {
+ "fail": [
+ "origin-when-cross-origin policy on a cross-origin URL",
+ "origin-when-cross-origin policy on a cross-origin URL after same-origin redirection",
+ "origin-when-cross-origin policy on a same-origin URL after cross-origin redirection",
+ "origin-when-cross-origin policy on a same-origin URL"
+ ]
+ },
+ "request-forbidden-headers.any.js": {
+ "note": "undici doesn't filter headers",
+ "skip": true
+ },
+ "request-headers.any.js": {
+ "fail": [
+ "Fetch with Chicken",
+ "Fetch with Chicken with body",
+ "Fetch with TacO and mode \"same-origin\" needs an Origin header",
+ "Fetch with TacO and mode \"cors\" needs an Origin header"
+ ]
+ },
+ "request-referrer.any.js": {
+ "note": "TODO(@KhafraDev): url referrer test could probably be fixed",
+ "fail": [
+ "about:client referrer",
+ "url referrer"
+ ]
+ },
+ "request-upload.any.js": {
+ "fail": [
+ "Fetch with POST with text body on 421 response should be retried once on new connection."
+ ]
+ },
+ "request-upload.h2.any.js": {
+ "note": "undici doesn't support http/2",
+ "skip": true
+ },
+ "status.h2.any.js": {
+ "note": "undici doesn't support http/2",
+ "skip": true
+ },
+ "stream-safe-creation.any.js": {
+ "note": "tests are very finnicky",
+ "fail": [
+ "throwing Object.prototype.type accessor should not affect stream creation by 'fetch'",
+ "Object.prototype.type accessor returning invalid value should not affect stream creation by 'fetch'",
+ "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'fetch'",
+ "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'fetch'"
+ ]
+ }
+ },
+ "body": {
+ "mime-type.any.js": {
+ "note": "fails on all platforms, https://wpt.fyi/results/fetch/api/body/mime-type.any.html?label=master&label=experimental&product=chrome&product=firefox&product=safari&product=node.js&product=deno&aligned",
+ "fail": [
+ "Response: Extract a MIME type with clone"
+ ]
+ }
+ },
+ "cors": {
+ "note": "undici doesn't implement CORs",
+ "skip": true
+ },
+ "credentials": {
+ "authentication-redirection.any.js": {
+ "note": "connects to https server",
+ "fail": [
+ "getAuthorizationHeaderValue - cross origin redirection",
+ "getAuthorizationHeaderValue - same origin redirection"
+ ]
+ },
+ "cookies.any.js": {
+ "fail": [
+ "Include mode: 1 cookie",
+ "Include mode: 2 cookies",
+ "Same-origin mode: 1 cookie",
+ "Same-origin mode: 2 cookies"
+ ]
+ }
+ },
+ "fetch-later": {
+ "note": "this is not part of the spec, only a proposal",
+ "skip": true
+ },
+ "headers": {
+ "header-setcookie.any.js": {
+ "note": "undici doesn't filter headers",
+ "fail": [
+ "Set-Cookie is a forbidden response header"
+ ]
+ },
+ "header-values-normalize.any.js": {
+ "note": "TODO(@KhafraDev): https://github.com/nodejs/undici/issues/1680",
+ "fail": [
+ "XMLHttpRequest with value %00",
+ "XMLHttpRequest with value %01",
+ "XMLHttpRequest with value %02",
+ "XMLHttpRequest with value %03",
+ "XMLHttpRequest with value %04",
+ "XMLHttpRequest with value %05",
+ "XMLHttpRequest with value %06",
+ "XMLHttpRequest with value %07",
+ "XMLHttpRequest with value %08",
+ "XMLHttpRequest with value %09",
+ "XMLHttpRequest with value %0A",
+ "XMLHttpRequest with value %0D",
+ "XMLHttpRequest with value %0E",
+ "XMLHttpRequest with value %0F",
+ "XMLHttpRequest with value %10",
+ "XMLHttpRequest with value %11",
+ "XMLHttpRequest with value %12",
+ "XMLHttpRequest with value %13",
+ "XMLHttpRequest with value %14",
+ "XMLHttpRequest with value %15",
+ "XMLHttpRequest with value %16",
+ "XMLHttpRequest with value %17",
+ "XMLHttpRequest with value %18",
+ "XMLHttpRequest with value %19",
+ "XMLHttpRequest with value %1A",
+ "XMLHttpRequest with value %1B",
+ "XMLHttpRequest with value %1C",
+ "XMLHttpRequest with value %1D",
+ "XMLHttpRequest with value %1E",
+ "XMLHttpRequest with value %1F",
+ "XMLHttpRequest with value %20",
+ "fetch() with value %01",
+ "fetch() with value %02",
+ "fetch() with value %03",
+ "fetch() with value %04",
+ "fetch() with value %05",
+ "fetch() with value %06",
+ "fetch() with value %07",
+ "fetch() with value %08",
+ "fetch() with value %0E",
+ "fetch() with value %0F",
+ "fetch() with value %10",
+ "fetch() with value %11",
+ "fetch() with value %12",
+ "fetch() with value %13",
+ "fetch() with value %14",
+ "fetch() with value %15",
+ "fetch() with value %16",
+ "fetch() with value %17",
+ "fetch() with value %18",
+ "fetch() with value %19",
+ "fetch() with value %1A",
+ "fetch() with value %1B",
+ "fetch() with value %1C",
+ "fetch() with value %1D",
+ "fetch() with value %1E",
+ "fetch() with value %1F"
+ ]
+ },
+ "header-values.any.js": {
+ "fail": [
+ "XMLHttpRequest with value x%00x needs to throw",
+ "XMLHttpRequest with value x%0Ax needs to throw",
+ "XMLHttpRequest with value x%0Dx needs to throw",
+ "XMLHttpRequest with all valid values",
+ "fetch() with all valid values"
+ ]
+ },
+ "headers-no-cors.any.js": {
+ "note": "undici doesn't implement CORs",
+ "skip": true
+ }
+ },
+ "redirect": {
+ "redirect-empty-location.any.js": {
+ "note": "undici handles redirect: manual differently than browsers",
+ "fail": [
+ "redirect response with empty Location, manual mode"
+ ]
+ },
+ "redirect-keepalive.any.js": {
+ "note": "document is not defined",
+ "skip": true
+ },
+ "redirect-location-escape.tentative.any.js": {
+ "note": "TODO(@KhafraDev): crashes runner",
+ "skip": true
+ },
+ "redirect-location.any.js": {
+ "note": "undici handles redirect: manual differently than browsers",
+ "fail": [
+ "Redirect 301 in \"manual\" mode without location",
+ "Redirect 301 in \"manual\" mode with invalid location",
+ "Redirect 301 in \"manual\" mode with data location",
+ "Redirect 302 in \"manual\" mode without location",
+ "Redirect 302 in \"manual\" mode with invalid location",
+ "Redirect 302 in \"manual\" mode with data location",
+ "Redirect 303 in \"manual\" mode without location",
+ "Redirect 303 in \"manual\" mode with invalid location",
+ "Redirect 303 in \"manual\" mode with data location",
+ "Redirect 307 in \"manual\" mode without location",
+ "Redirect 307 in \"manual\" mode with invalid location",
+ "Redirect 307 in \"manual\" mode with data location",
+ "Redirect 308 in \"manual\" mode without location",
+ "Redirect 308 in \"manual\" mode with invalid location",
+ "Redirect 308 in \"manual\" mode with data location",
+ "Redirect 301 in \"manual\" mode with valid location",
+ "Redirect 302 in \"manual\" mode with valid location",
+ "Redirect 303 in \"manual\" mode with valid location",
+ "Redirect 307 in \"manual\" mode with valid location",
+ "Redirect 308 in \"manual\" mode with valid location"
+ ]
+ },
+ "redirect-method.any.js": {
+ "fail": [
+ "Redirect 303 with TESTING"
+ ]
+ },
+ "redirect-mode.any.js": {
+ "note": "mode isn't respected",
+ "skip": true
+ },
+ "redirect-origin.any.js": {
+ "note": "TODO(@KhafraDev): investigate",
+ "skip": true
+ },
+ "redirect-referrer-override.any.js": {
+ "note": "TODO(@KhafraDev): investigate",
+ "skip": true
+ },
+ "redirect-referrer.any.js": {
+ "note": "TODO(@KhafraDev): investigate",
+ "skip": true
+ },
+ "redirect-upload.h2.any.js": {
+ "note": "undici doesn't support http/2",
+ "skip": true
+ }
+ },
+ "request": {
+ "request-cache-default-conditional.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-default.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-force-cache.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-no-cache.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-no-store.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-only-if-cached.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-cache-reload.any.js": {
+ "note": "undici doesn't implement an http cache",
+ "skip": true
+ },
+ "request-consume-empty.any.js": {
+ "note": "the semantics about this test are being discussed - https://github.com/web-platform-tests/wpt/pull/3950",
+ "fail": [
+ "Consume empty FormData request body as text"
+ ]
+ },
+ "request-disturbed.any.js": {
+ "note": "this test fails in all other platforms - https://wpt.fyi/results/fetch/api/request/request-disturbed.any.html?label=master&label=experimental&product=chrome&product=firefox&product=safari&product=deno&aligned&view=subtest",
+ "fail": [
+ "Input request used for creating new request became disturbed even if body is not used"
+ ]
+ },
+ "request-headers.any.js": {
+ "note": "undici doesn't filter headers",
+ "fail": [
+ "Adding invalid request header \"Accept-Charset: KO\"",
+ "Adding invalid request header \"accept-charset: KO\"",
+ "Adding invalid request header \"ACCEPT-ENCODING: KO\"",
+ "Adding invalid request header \"Accept-Encoding: KO\"",
+ "Adding invalid request header \"Access-Control-Request-Headers: KO\"",
+ "Adding invalid request header \"Access-Control-Request-Method: KO\"",
+ "Adding invalid request header \"Access-Control-Request-Private-Network: KO\"",
+ "Adding invalid request header \"Connection: KO\"",
+ "Adding invalid request header \"Content-Length: KO\"",
+ "Adding invalid request header \"Cookie: KO\"",
+ "Adding invalid request header \"Cookie2: KO\"",
+ "Adding invalid request header \"Date: KO\"",
+ "Adding invalid request header \"DNT: KO\"",
+ "Adding invalid request header \"Expect: KO\"",
+ "Adding invalid request header \"Host: KO\"",
+ "Adding invalid request header \"Keep-Alive: KO\"",
+ "Adding invalid request header \"Origin: KO\"",
+ "Adding invalid request header \"Referer: KO\"",
+ "Adding invalid request header \"Set-Cookie: KO\"",
+ "Adding invalid request header \"TE: KO\"",
+ "Adding invalid request header \"Trailer: KO\"",
+ "Adding invalid request header \"Transfer-Encoding: KO\"",
+ "Adding invalid request header \"Upgrade: KO\"",
+ "Adding invalid request header \"Via: KO\"",
+ "Adding invalid request header \"Proxy-: KO\"",
+ "Adding invalid request header \"proxy-a: KO\"",
+ "Adding invalid request header \"Sec-: KO\"",
+ "Adding invalid request header \"sec-b: KO\"",
+ "Adding invalid no-cors request header \"Content-Type: KO\"",
+ "Adding invalid no-cors request header \"Potato: KO\"",
+ "Adding invalid no-cors request header \"proxy: KO\"",
+ "Adding invalid no-cors request header \"proxya: KO\"",
+ "Adding invalid no-cors request header \"sec: KO\"",
+ "Adding invalid no-cors request header \"secb: KO\"",
+ "Adding invalid no-cors request header \"Empty-Value: \"",
+ "Check that request constructor is filtering headers provided as init parameter",
+ "Check that no-cors request constructor is filtering headers provided as init parameter",
+ "Check that no-cors request constructor is filtering headers provided as part of request parameter"
+ ]
+ },
+ "request-init-priority.any.js": {
+ "note": "undici doesn't implement priority hints, yet(?)",
+ "skip": true
+ }
+ },
+ "response": {
+ "response-clone.any.js": {
+ "fail": [
+ "Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)",
+ "Check response clone use structureClone for teed ReadableStreams (DataViewchunk)"
+ ]
+ },
+ "response-consume-empty.any.js": {
+ "fail": [
+ "Consume empty FormData response body as text"
+ ]
+ },
+ "response-consume-stream.any.js": {
+ "fail": [
+ "Read blob response's body as readableStream with mode=byob",
+ "Read text response's body as readableStream with mode=byob",
+ "Read URLSearchParams response's body as readableStream with mode=byob",
+ "Read array buffer response's body as readableStream with mode=byob",
+ "Read form data response's body as readableStream with mode=byob"
+ ]
+ },
+ "response-error-from-stream.any.js": {
+ "fail": [
+ "ReadableStream start() Error propagates to Response.formData() Promise",
+ "ReadableStream pull() Error propagates to Response.formData() Promise"
+ ]
+ },
+ "response-stream-with-broken-then.any.js": {
+ "note": "this is a bug in webstreams, see https://github.com/nodejs/node/issues/46786",
+ "skip": true
+ }
+ }
+ },
+ "content-length": {
+ "api-and-duplicate-headers.any.js": {
+ "fail": [
+ "XMLHttpRequest and duplicate Content-Length/Content-Type headers",
+ "fetch() and duplicate Content-Length/Content-Type headers"
+ ]
+ }
+ },
+ "cross-origin-resource-policy": {
+ "note": "undici doesn't implement CORs",
+ "skip": true
+ },
+ "http-cache": {
+ "note": "undici doesn't implement http caching",
+ "skip": true
+ },
+ "metadata": {
+ "note": "undici doesn't respect RequestInit.mode",
+ "skip": true
+ },
+ "orb": {
+ "tentative": {
+ "note": "undici doesn't implement orb",
+ "skip": true
+ }
+ },
+ "range": {
+ "note": "undici doesn't respect range header",
+ "skip": true
+ },
+ "security": {
+ "1xx-response.any.js": {
+ "fail": [
+ "Status(100) should be ignored.",
+ "Status(101) should be accepted, with removing body.",
+ "Status(103) should be ignored.",
+ "Status(199) should be ignored."
+ ]
+ }
+ },
+ "stale-while-revalidate": {
+ "note": "undici doesn't implement http caching",
+ "skip": true
+ },
+ "idlharness.any.js": {
+ "flaky": [
+ "Window interface: operation fetch(RequestInfo, optional RequestInit)"
+ ]
+ }
+}
diff --git a/test/wpt/status/mimesniff.status.json b/test/wpt/status/mimesniff.status.json
new file mode 100644
index 0000000..ab9a3d3
--- /dev/null
+++ b/test/wpt/status/mimesniff.status.json
@@ -0,0 +1,7 @@
+{
+ "mime-types": {
+ "parsing.any.js": {
+ "allowUnexpectedFailures": true
+ }
+ }
+}
diff --git a/test/wpt/status/service-workers/cache-storage.status.json b/test/wpt/status/service-workers/cache-storage.status.json
new file mode 100644
index 0000000..09a291e
--- /dev/null
+++ b/test/wpt/status/service-workers/cache-storage.status.json
@@ -0,0 +1,24 @@
+{
+ "cache-storage": {
+ "cache-abort.https.any.js": {
+ "skip": true
+ },
+ "cache-storage-buckets.https.any.js": {
+ "skip": true,
+ "note": "navigator is not defined"
+ },
+ "cache-put.https.any.js": {
+ "note": "probably can be fixed",
+ "fail": [
+ "Cache.put with a VARY:* opaque response should not reject",
+ "Cache.put with opaque-filtered HTTP 206 response"
+ ]
+ },
+ "cache-match.https.any.js": {
+ "note": "requires https server",
+ "fail": [
+ "cors-exposed header should be stored correctly."
+ ]
+ }
+ }
+}
diff --git a/test/wpt/status/websockets.status.json b/test/wpt/status/websockets.status.json
new file mode 100644
index 0000000..68bc6e2
--- /dev/null
+++ b/test/wpt/status/websockets.status.json
@@ -0,0 +1,115 @@
+{
+ "stream": {
+ "tentative": {
+ "skip": true
+ }
+ },
+ "Create-blocked-port.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Basic check"
+ ]
+ },
+ "Send-binary-arraybufferview-float32.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be closed"
+ ]
+ },
+ "Send-binary-arraybufferview-float64.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be closed"
+ ]
+ },
+ "Send-binary-arraybufferview-int16-offset.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed"
+ ]
+ },
+ "Send-binary-arraybufferview-int32.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be closed"
+ ]
+ },
+ "Send-binary-arraybufferview-uint16-offset-length.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be closed"
+ ]
+ },
+ "Send-binary-arraybufferview-uint32-offset.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be closed"
+ ]
+ },
+ "basic-auth.any.js": {
+ "note": "TODO(@KhafraDev): investigate failure",
+ "fail": [
+ "HTTP basic authentication should work with WebSockets"
+ ]
+ },
+ "Create-on-worker-shutdown.any.js": {
+ "skip": true,
+ "//": "Node.js workers are different from web workers & don't work with blob: urls"
+ },
+ "Close-delayed.any.js": {
+ "skip": true
+ },
+ "bufferedAmount-unchanged-by-sync-xhr.any.js": {
+ "skip": true,
+ "//": "Node.js doesn't have XMLHttpRequest nor does this test make sense regardless"
+ },
+ "referrer.any.js": {
+ "skip": true
+ },
+ "Send-binary-blob.any.js": {
+ "flaky": [
+ "Send binary data on a WebSocket - Blob - Connection should be closed"
+ ]
+ },
+ "Send-65K-data.any.js": {
+ "flaky": [
+ "Send 65K data on a WebSocket - Connection should be closed"
+ ]
+ },
+ "Send-binary-65K-arraybuffer.any.js": {
+ "flaky": [
+ "Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed"
+ ]
+ },
+ "Send-0byte-data.any.js": {
+ "flaky": [
+ "Send 0 byte data on a WebSocket - Connection should be closed"
+ ]
+ },
+ "send-many-64K-messages-with-backpressure.any.js": {
+ "note": "probably flaky based on other flaky tests.",
+ "flaky": [
+ "sending 50 messages of size 65536 with backpressure applied should not hang"
+ ]
+ },
+ "back-forward-cache-with-closed-websocket-connection-ccns.tentative.window.js": {
+ "skip": true,
+ "note": "browser-only test"
+ },
+ "back-forward-cache-with-closed-websocket-connection.window.js": {
+ "skip": true,
+ "note": "browser-only test"
+ },
+ "back-forward-cache-with-open-websocket-connection-ccns.tentative.window.js": {
+ "skip": true,
+ "note": "browser-only test"
+ },
+ "back-forward-cache-with-open-websocket-connection.window.js": {
+ "skip": true,
+ "note": "browser-only test"
+ },
+ "mixed-content.https.any.js": {
+ "note": "node has no concept of origin, thus there is no 'secure' or 'insecure' contexts",
+ "skip": true
+ }
+}
diff --git a/test/wpt/status/xhr/formdata.status.json b/test/wpt/status/xhr/formdata.status.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/test/wpt/status/xhr/formdata.status.json
@@ -0,0 +1 @@
+{}