# 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 substitued
#   with *.cobalt.html versions to accommodate this limitation.

# Failure is not specific to fetch.
api/basic/block-mime-as-script.html,DISABLE
# 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
# Fails because Body only supports text, json, and arrayBuffer. See the
# corresponding tests for Response which have been customized to test only
# those types.
api/request/request-consume.html,DISABLE
# Fails because blob and formData are not supported.
api/request/request-consume-empty.html,DISABLE
# 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
