Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-structure.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-structure.html b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-structure.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cbe6cee999f31b3b60226cb992ca6c1170ae272c |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-structure.html |
@@ -0,0 +1,134 @@ |
+<!doctype html> |
+<html> |
+ <head> |
+ <meta charset="utf-8"> |
+ <title>Request structure</title> |
+ <meta name="help" href="https://fetch.spec.whatwg.org/#request"> |
+ <meta name="author" title="Canon Research France" href="https://www.crf.canon.fr"> |
+ <script src="/resources/testharness.js"></script> |
+ <script src="/resources/testharnessreport.js"></script> |
+ </head> |
+ <body> |
+ <script> |
+ var request = new Request(""); |
+ var methods = ["clone", |
+ //Request implements Body |
+ "arrayBuffer", |
+ "blob", |
+ "formData", |
+ "json", |
+ "text" |
+ ]; |
+ var attributes = ["method", |
+ "url", |
+ "headers", |
+ "type", |
+ "destination", |
+ "referrer", |
+ "referrerPolicy", |
+ "mode", |
+ "credentials", |
+ "cache", |
+ "redirect", |
+ "integrity", |
+ //Request implements Body |
+ "bodyUsed" |
+ ]; |
+ |
+ function IsreadOnly(request, attributeToCheck) { |
+ var defaultValue = undefined; |
+ var newValue = undefined; |
+ switch (attributeToCheck) { |
+ case "method": |
+ defaultValue = "GET"; |
+ newValue = "POST"; |
+ break; |
+ |
+ case "url": |
+ //default value is base url |
+ //i.e http://web-platform.test:8000/fetch/api/request-structure.html |
+ newValue = "http://url.test"; |
+ break; |
+ |
+ case "headers": |
+ request.headers = new Headers ({"name":"value"}); |
+ assert_false(request.headers.has("name"), "Headers attribute is read only"); |
+ return; |
+ break; |
+ |
+ case "type": |
+ defaultValue = ""; |
+ newValue = "style"; |
+ break; |
+ |
+ case "destination": |
+ defaultValue = ""; |
+ newValue = "worker"; |
+ break; |
+ |
+ case "referrer": |
+ defaultValue = "about:client"; |
+ newValue = "http://url.test"; |
+ break; |
+ |
+ case "referrerPolicy": |
+ defaultValue = ""; |
+ newValue = "unsafe-url"; |
+ break; |
+ |
+ case "mode": |
+ defaultValue = "cors"; |
+ newValue = "navigate"; |
+ break; |
+ |
+ case "credentials": |
+ defaultValue = "omit"; |
+ newValue = "cors"; |
+ break; |
+ |
+ case "cache": |
+ defaultValue = "default"; |
+ newValue = "reload"; |
+ break; |
+ |
+ case "redirect": |
+ defaultValue = "follow"; |
+ newValue = "manual"; |
+ break; |
+ |
+ case "integrity": |
+ newValue = "CannotWriteIntegrity"; |
+ break; |
+ |
+ case "bodyUsed": |
+ defaultValue = false; |
+ newValue = true; |
+ break; |
+ |
+ default: |
+ return; |
+ } |
+ |
+ request[attributeToCheck] = newValue; |
+ if (defaultValue === undefined) |
+ assert_not_equals(request[attributeToCheck], newValue, "Attribute " + attributeToCheck + " is read only"); |
+ else |
+ assert_equals(request[attributeToCheck], defaultValue, |
+ "Attribute " + attributeToCheck + " is read only. Default value is " + defaultValue); |
+ } |
+ |
+ for (var idx in methods) { |
+ test(function() { |
+ assert_true(methods[idx] in request, "request has " + methods[idx] + " method"); |
+ }, "Request has " + methods[idx] + " method"); |
+ } |
+ |
+ for (var idx in attributes) { |
+ test(function() { |
+ assert_true(attributes[idx] in request, "request has " + attributes[idx] + " attribute"); |
+ IsreadOnly(request, attributes[idx]); |
+ }, "Check " + attributes[idx] + " attribute"); |
+ } |
+ </script> |
+ </body> |
+</html> |