| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-redirect-credentials.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-redirect-credentials.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-redirect-credentials.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0e48b49fcb1ac70c2f1fdcd871ab0e0b55928011
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-redirect-credentials.js
|
| @@ -0,0 +1,56 @@
|
| +if (this.document === undefined) {
|
| + importScripts("/resources/testharness.js");
|
| + importScripts("../resources/utils.js");
|
| + importScripts("/common/get-host-info.sub.js")
|
| +}
|
| +
|
| +function corsRedirectCredentials(desc, redirectUrl, redirectLocation, redirectStatus, locationCredentials) {
|
| + var url = redirectUrl
|
| + var urlParameters = "?redirect_status=" + redirectStatus;
|
| + urlParameters += "&location=" + redirectLocation.replace("://", "://" + locationCredentials + "@");
|
| +
|
| + var requestInit = {"mode": "cors", "redirect": "follow"};
|
| +
|
| + promise_test(t => {
|
| + const result = fetch(url + urlParameters, requestInit)
|
| + if(locationCredentials === "") {
|
| + return result;
|
| + } else {
|
| + return promise_rejects(t, new TypeError(), result);
|
| + }
|
| + }, desc);
|
| +}
|
| +
|
| +var redirPath = dirname(location.pathname) + RESOURCES_DIR + "redirect.py";
|
| +var preflightPath = dirname(location.pathname) + RESOURCES_DIR + "preflight.py";
|
| +
|
| +var host_info = get_host_info();
|
| +
|
| +var localRedirect = host_info.HTTP_ORIGIN + redirPath;
|
| +var remoteRedirect = host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT + redirPath;
|
| +
|
| +var localLocation = host_info.HTTP_ORIGIN + preflightPath;
|
| +var remoteLocation = host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT + preflightPath;
|
| +var remoteLocation2 = host_info.HTTP_REMOTE_ORIGIN + preflightPath;
|
| +
|
| +for (var code of [301, 302, 303, 307, 308]) {
|
| + corsRedirectCredentials("Redirect " + code + " from same origin to remote without user and password", localRedirect, remoteLocation, code, "");
|
| +
|
| + corsRedirectCredentials("Redirect " + code + " from same origin to remote with user and password", localRedirect, remoteLocation, code, "user:password");
|
| + corsRedirectCredentials("Redirect " + code + " from same origin to remote with user", localRedirect, remoteLocation, code, "user:");
|
| + corsRedirectCredentials("Redirect " + code + " from same origin to remote with password", localRedirect, remoteLocation, code, ":password");
|
| +
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same origin with user and password", remoteRedirect, localLocation, code, "user:password");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same origin with user", remoteRedirect, localLocation, code, "user:");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same origin with password", remoteRedirect, localLocation, code, ":password");
|
| +
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same remote with user and password", remoteRedirect, remoteLocation, code, "user:password");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same remote with user", remoteRedirect, remoteLocation, code, "user:");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to same remote with password", remoteRedirect, remoteLocation, code, ":password");
|
| +
|
| + corsRedirectCredentials("Redirect " + code + " from remote to another remote with user and password", remoteRedirect, remoteLocation2, code, "user:password");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to another remote with user", remoteRedirect, remoteLocation2, code, "user:");
|
| + corsRedirectCredentials("Redirect " + code + " from remote to another remote with password", remoteRedirect, remoteLocation2, code, ":password");
|
| +}
|
| +
|
| +done();
|
|
|