| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-origin.js
 | 
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-origin.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-origin.js
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..c3601eeab1b14dd8f28b6f5aaa39ca0b535692d3
 | 
| --- /dev/null
 | 
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/cors/cors-origin.js
 | 
| @@ -0,0 +1,56 @@
 | 
| +if (this.document === undefined) {
 | 
| +  importScripts("/common/utils.js");
 | 
| +  importScripts("/resources/testharness.js");
 | 
| +  importScripts("../resources/utils.js");
 | 
| +  importScripts("/common/get-host-info.sub.js")
 | 
| +}
 | 
| +
 | 
| +/* If origin is undefined, it is set to fetched url's origin*/
 | 
| +function corsOrigin(desc, baseURL, method, origin, shouldPass) {
 | 
| +  if (!origin)
 | 
| +    origin = baseURL;
 | 
| +
 | 
| +  var uuid_token = token();
 | 
| +  var urlParameters = "?token=" + uuid_token + "&max_age=0&origin=" + encodeURIComponent(origin) + "&allow_methods=" + method;
 | 
| +  var url = baseURL + dirname(location.pathname) + RESOURCES_DIR + "preflight.py";
 | 
| +  var requestInit = {"mode": "cors", "method": method};
 | 
| +
 | 
| +  promise_test(function(test) {
 | 
| +    return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) {
 | 
| +      assert_equals(resp.status, 200, "Clean stash response's status is 200");
 | 
| +      if (shouldPass) {
 | 
| +        return fetch(url + urlParameters, requestInit).then(function(resp) {
 | 
| +          assert_equals(resp.status, 200, "Response's status is 200");
 | 
| +        });
 | 
| +      } else {
 | 
| +        return promise_rejects(test, new TypeError(), fetch(url + urlParameters, requestInit));
 | 
| +      }
 | 
| +    });
 | 
| +  }, desc);
 | 
| +
 | 
| +}
 | 
| +
 | 
| +var host_info = get_host_info();
 | 
| +
 | 
| +/* Actual origin */
 | 
| +var origin = host_info.HTTP_ORIGIN;
 | 
| +
 | 
| +corsOrigin("Cross domain different subdomain [origin OK]", host_info.HTTP_REMOTE_ORIGIN, "GET", origin, true);
 | 
| +corsOrigin("Cross domain different subdomain [origin KO]", host_info.HTTP_REMOTE_ORIGIN, "GET", undefined, false);
 | 
| +corsOrigin("Same domain different port [origin OK]", host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT, "GET", origin, true);
 | 
| +corsOrigin("Same domain different port [origin KO]", host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT, "GET", undefined, false);
 | 
| +corsOrigin("Cross domain different port [origin OK]", host_info.HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT, "GET", origin, true);
 | 
| +corsOrigin("Cross domain different port [origin KO]", host_info.HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT, "GET", undefined, false);
 | 
| +corsOrigin("Cross domain different protocol [origin OK]", host_info.HTTPS_REMOTE_ORIGIN, "GET", origin, true);
 | 
| +corsOrigin("Cross domain different protocol [origin KO]", host_info.HTTPS_REMOTE_ORIGIN, "GET", undefined, false);
 | 
| +corsOrigin("Same domain different protocol different port [origin OK]", host_info.HTTPS_ORIGIN, "GET", origin, true);
 | 
| +corsOrigin("Same domain different protocol different port [origin KO]", host_info.HTTPS_ORIGIN, "GET", undefined, false);
 | 
| +corsOrigin("Cross domain [POST] [origin OK]", host_info.HTTP_REMOTE_ORIGIN, "POST", origin, true);
 | 
| +corsOrigin("Cross domain [POST] [origin KO]", host_info.HTTP_REMOTE_ORIGIN, "POST", undefined, false);
 | 
| +corsOrigin("Cross domain [HEAD] [origin OK]", host_info.HTTP_REMOTE_ORIGIN, "HEAD", origin, true);
 | 
| +corsOrigin("Cross domain [HEAD] [origin KO]", host_info.HTTP_REMOTE_ORIGIN, "HEAD", undefined, false);
 | 
| +corsOrigin("CORS preflight [PUT] [origin OK]", host_info.HTTP_REMOTE_ORIGIN, "PUT", origin, true);
 | 
| +corsOrigin("CORS preflight [PUT] [origin KO]", host_info.HTTP_REMOTE_ORIGIN, "PUT", undefined, false);
 | 
| +corsOrigin("Allowed origin: \"\" [origin KO]", host_info.HTTP_REMOTE_ORIGIN, "GET", "" , false);
 | 
| +
 | 
| +done();
 | 
| 
 |