| Index: LayoutTests/http/tests/fetch/script-tests/fetch-access-control-redirect-nocors.js
|
| diff --git a/LayoutTests/http/tests/fetch/script-tests/fetch-access-control-redirect-nocors.js b/LayoutTests/http/tests/fetch/script-tests/fetch-access-control-redirect-nocors.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..72927c61180f4363dacb7acba40e95164e0e7b05
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/fetch/script-tests/fetch-access-control-redirect-nocors.js
|
| @@ -0,0 +1,95 @@
|
| +if (self.importScripts) {
|
| + importScripts('../resources/fetch-test-helpers.js');
|
| + importScripts('/serviceworker/resources/fetch-access-control-util.js');
|
| +}
|
| +
|
| +var TEST_TARGETS = [
|
| + // Redirect: same origin -> same origin
|
| + [REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=GET&headers=CUSTOM',
|
| + [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeBasic],
|
| + [methodIsGET, noCustomHeader, authCheck1]],
|
| +
|
| + // Redirect: same origin -> other origin
|
| + [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=GET&headers=CUSTOM',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, noCustomHeader, authCheck2])],
|
| +
|
| + // Status code tests for mode="no-cors"
|
| + // The 301 redirect response changes POST method to GET method.
|
| + [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=301',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck2])],
|
| + // The 302 redirect response changes POST method to GET method.
|
| + [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=POST',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck2])],
|
| + // GET method must be used for 303 redirect.
|
| + [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=303',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck2])],
|
| + // The 307 redirect response doesn't change the method.
|
| + [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=307',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsPOST, authCheck2])],
|
| + // The 308 redirect response doesn't change the method.
|
| + // FIXME: disabled due to https://crbug.com/451938
|
| + // [REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + // '&mode=no-cors&method=POST&Status=308',
|
| + // [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + // onlyOnServiceWorkerProxiedTest([methodIsPOST, authCheck2])],
|
| +
|
| + // Redirect: other origin -> same origin
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=GET',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck1])],
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=GET&headers=CUSTOM',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, noCustomHeader, authCheck1])],
|
| +
|
| + // Status code tests for mode="no-cors"
|
| + // The 301 redirect response MAY change the request method from POST to GET.
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=301',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck1])],
|
| + // The 302 redirect response MAY change the request method from POST to GET.
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=POST',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck1])],
|
| + // GET method must be used for 303 redirect.
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=303',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck1])],
|
| + // The 307 redirect response MUST NOT change the method.
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + '&mode=no-cors&method=POST&Status=307',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsPOST, authCheck1])],
|
| + // The 308 redirect response MUST NOT change the method.
|
| + // FIXME: disabled due to https://crbug.com/451938
|
| + // [OTHER_REDIRECT_URL + encodeURIComponent(BASE_URL) +
|
| + // '&mode=no-cors&method=POST&Status=308',
|
| + // [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + // onlyOnServiceWorkerProxiedTest([methodIsPOST, authCheck1])],
|
| +
|
| + // Redirect: other origin -> same origin
|
| + [OTHER_REDIRECT_URL + encodeURIComponent(OTHER_BASE_URL) +
|
| + '&mode=no-cors&method=GET',
|
| + [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque],
|
| + onlyOnServiceWorkerProxiedTest([methodIsGET, authCheck2])],
|
| +];
|
| +
|
| +if (self.importScripts) {
|
| + executeTests(TEST_TARGETS);
|
| + done();
|
| +}
|
|
|