# Fetch API tests
#
# Cobalt doesn't support Workers, so disable related tests.
# Cobalt fetch implementation only supports the Body mixin types text(),
#   json(), and arrayBuffer(). Blob, URLSearchParams, and FormData are not
#   well-supported by the javascript engine. Certain tests may be substituted
#   with *.cobalt.html versions to accommodate this limitation.

# Failure is not specific to fetch.
api/basic/block-mime-as-script.html,PASS
# Caching responses is not supported.
api/basic/conditional-get.html,DISABLE
api/basic/error-after-response.html,PASS
# Integrity validation is not supported.
api/basic/integrity.html,DISABLE
api/basic/integrity-sharedworker.html,DISABLE
api/basic/integrity-worker.html,DISABLE
# Mode is not supported.
api/basic/mode-no-cors.html,DISABLE
api/basic/mode-no-cors-worker.html,DISABLE
api/basic/request-referrer-redirected-worker.html,DISABLE
# Failures due to XHR not implementing response url list.
api/basic/response-url.html,DISABLE
api/basic/response-url-worker.html,DISABLE
# Failures due to engine not supporting Blob type.
api/basic/scheme-blob.html,DISABLE
api/basic/scheme-blob-worker.html,DISABLE
api/basic/scheme-others.html,PASS
api/basic/scheme-others-worker.html,DISABLE
# Only UTF-8 is supported. UTF-16 is not supported.
api/basic/text-utf8.html,DISABLE
# CORS is not supported.
api/cors/cors-expose-star.html,DISABLE
api/cors/cors-expose-star-worker.html,DISABLE
api/cors/cors-filtering.html,DISABLE
api/cors/cors-filtering-worker.html,DISABLE
api/cors/cors-multiple-origins.html,DISABLE
api/cors/cors-multiple-origins-worker.html,DISABLE
# Failures due to built-in Map iterator not conforming.
api/headers/headers-basic.html,DISABLE
api/headers/headers-casing.html,PASS
api/headers/headers-combine.html,PASS
api/headers/headers-errors.html,PASS
# Failures due to being a polyfill.
api/headers/headers-idl.html,DISABLE
api/headers/headers-normalize.html,PASS
# Failures due to Reflect not working with the polyfill.
api/headers/headers-record.html,DISABLE
api/headers/headers-structure.html,PASS
# Invalid: this tests XHR
api/headers/header-values.html,DISABLE
# Invalid: this tests XHR
api/headers/header-values-normalize.html,DISABLE
# Fails because a SecurityError is thrown instead of the expected TypeError.
# The fetch spec does not explicitly say a TypeError should be thrown, so the
# test may be wrong.
api/policies/csp-blocked.html,DISABLE
api/policies/csp-blocked-worker.html,DISABLE
# Referrer is intentionally not supported due to privacy concerns.
api/policies/referrer-no-referrer.html,DISABLE
api/policies/referrer-no-referrer-service-worker.https.html,DISABLE
api/policies/referrer-no-referrer-worker.html,DISABLE
api/policies/referrer-origin.html,DISABLE
api/policies/referrer-origin-service-worker.https.html,DISABLE
api/policies/referrer-origin-when-cross-origin.html,DISABLE
api/policies/referrer-origin-when-cross-origin-service-worker.https.html,DISABLE
api/policies/referrer-origin-when-cross-origin-worker.html,DISABLE
api/policies/referrer-origin-worker.html,DISABLE
api/policies/referrer-unsafe-url.html,DISABLE
api/policies/referrer-unsafe-url-service-worker.https.html,DISABLE
api/policies/referrer-unsafe-url-worker.html,DISABLE
# Redirect is not fully supported.
api/redirect/redirect-count.html,DISABLE
api/redirect/redirect-count-worker.html,DISABLE
api/redirect/redirect-location.html,DISABLE
api/redirect/redirect-location-worker.html,DISABLE
api/redirect/redirect-method.html,DISABLE
api/redirect/redirect-method-worker.html,DISABLE
api/redirect/redirect-mode.html,DISABLE
api/redirect/redirect-mode-worker.html,DISABLE
api/redirect/redirect-origin.html,DISABLE
api/redirect/redirect-origin-worker.html,DISABLE
api/redirect/redirect-referrer.html,DISABLE
api/redirect/redirect-referrer-worker.html,DISABLE
api/redirect/redirect-schemes.html,DISABLE
api/redirect/redirect-to-dataurl.html,DISABLE
api/redirect/redirect-to-dataurl-worker.html,DISABLE
# Test fails to run because 'iframe' is not supported.
api/request/multi-globals/url-parsing.html,DISABLE
api/request/request-bad-port.html,PASS
# Fails because Cobalt does not support caching responses.
api/request/request-cache-default.html,DISABLE
api/request/request-cache-default-conditional.html,DISABLE
api/request/request-cache-force-cache.html,DISABLE
api/request/request-cache-no-cache.html,PASS
api/request/request-cache-no-store.html,PASS
api/request/request-cache-only-if-cached.html,DISABLE
api/request/request-cache-reload.html,DISABLE
api/request/request-clone.sub.html,PASS
api/request/request-consume.html,PASS
api/request/request-consume-empty.html,PASS
# Disabled due to failing test fixture
api/request/request-disturbed.html,DISABLE
api/request/request-error.html,PASS
api/request/request-headers.html,PASS
# Fails because implementation is a polyfill.
api/request/request-idl.html,DISABLE
api/request/request-init-001.sub.html,PASS
# Fails because Blob, FormData, and URLSearchParams are not supported.
api/request/request-init-002.html,DISABLE
api/request/request-init-003.sub.html,PASS
api/request/request-keepalive-quota.html,DISABLE
# Fails because: 1) Body does not support blob nor formData, and 2) Request
# does not support destination nor type.
api/request/request-structure.html,DISABLE
api/response/multi-globals/url-parsing.html,DISABLE
# Fails because Blob is not fully supported.
api/response/response-cancel-stream.html,DISABLE
api/response/response-clone.html,PASS
api/response/response-consume.cobalt.blob.html,PASS
api/response/response-consume.html,DISABLE
api/response/response-consume-empty.cobalt.html,PASS
api/response/response-consume-empty.html,DISABLE
api/response/response-consume-stream.cobalt.blob.html,PASS
api/response/response-consume-stream.html,DISABLE
api/response/response-error.html,PASS
# Fails because implementation is a polyfill.
api/response/response-idl.html,DISABLE
api/response/response-init-001.html,PASS
# Fails because Blob, FormData, and URLSearchParams are not supported.
api/response/response-init-002.html,DISABLE
api/response/response-static-error.html,PASS
api/response/response-static-redirect.html,PASS
api/response/response-stream-disturbed-1.html,PASS
api/response/response-stream-disturbed-2.html,PASS
api/response/response-stream-disturbed-3.html,PASS
api/response/response-stream-disturbed-4.html,PASS
api/response/response-stream-disturbed-5.html,PASS
# Fails because trailer is not implemented.
api/response/response-trailer.html,DISABLE
# Abort tests
api/abort/general.any.html,PASS
# Serviceworkers are not supported
api/abort/serviceworker-intercepted.https.html,DISABLE
# Keepalive tests require Iframes, not supported
api/abort/keepalive.html, DISABLE
# Cache api is not supported
api/abort/cache.https.html, DISABLE
# Regression test, requires iframe support
api/abort/destroyed-context.html, DISABLE
