# 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
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
