| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-headers.html
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-headers.html b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-headers.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1d54728b7da601f24f3e913a9648dc8839ebdd1e
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-headers.html
|
| @@ -0,0 +1,173 @@
|
| +<!doctype html>
|
| +<html>
|
| + <head>
|
| + <meta charset="utf-8">
|
| + <title>Request Headers</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 validRequestHeaders = [
|
| + ["Content-Type", "OK"],
|
| + ["Potato", "OK"],
|
| + ["proxy", "OK"],
|
| + ["proxya", "OK"],
|
| + ["sec", "OK"],
|
| + ["secb", "OK"],
|
| + ];
|
| + var invalidRequestHeaders = [
|
| + ["Accept-Charset", "KO"],
|
| + ["accept-charset", "KO"],
|
| + ["ACCEPT-ENCODING", "KO"],
|
| + ["Accept-Encoding", "KO"],
|
| + ["Access-Control-Request-Headers", "KO"],
|
| + ["Access-Control-Request-Method", "KO"],
|
| + ["Connection", "KO"],
|
| + ["Content-Length", "KO"],
|
| + ["Cookie", "KO"],
|
| + ["Cookie2", "KO"],
|
| + ["Date", "KO"],
|
| + ["DNT", "KO"],
|
| + ["Expect", "KO"],
|
| + ["Host", "KO"],
|
| + ["Keep-Alive", "KO"],
|
| + ["Origin", "KO"],
|
| + ["Referer", "KO"],
|
| + ["TE", "KO"],
|
| + ["Trailer", "KO"],
|
| + ["Transfer-Encoding", "KO"],
|
| + ["Upgrade", "KO"],
|
| + ["Via", "KO"],
|
| + ["Proxy-", "KO"],
|
| + ["proxy-a", "KO"],
|
| + ["Sec-", "KO"],
|
| + ["sec-b", "KO"],
|
| + ];
|
| +
|
| + var validRequestNoCorsHeaders = [
|
| + ["Accept", "OK"],
|
| + ["Accept-Language", "OK"],
|
| + ["content-language", "OK"],
|
| + ["content-type", "application/x-www-form-urlencoded"],
|
| + ["content-type", "application/x-www-form-urlencoded;charset=UTF-8"],
|
| + ["content-type", "multipart/form-data"],
|
| + ["content-type", "multipart/form-data;charset=UTF-8"],
|
| + ["content-TYPE", "text/plain"],
|
| + ["CONTENT-type", "text/plain;charset=UTF-8"],
|
| + ];
|
| + var invalidRequestNoCorsHeaders = [
|
| + ["Content-Type", "KO"],
|
| + ["Potato", "KO"],
|
| + ["proxy", "KO"],
|
| + ["proxya", "KO"],
|
| + ["sec", "KO"],
|
| + ["secb", "KO"],
|
| + ];
|
| +
|
| + validRequestHeaders.forEach(function(header) {
|
| + test(function() {
|
| + var request = new Request("");
|
| + request.headers.set(header[0], header[1]);
|
| + assert_equals(request.headers.get(header[0]), header[1]);
|
| + }, "Adding valid request header \"" + header[0] + ": " + header[1] + "\"");
|
| + });
|
| + invalidRequestHeaders.forEach(function(header) {
|
| + test(function() {
|
| + var request = new Request("");
|
| + request.headers.set(header[0], header[1]);
|
| + assert_equals(request.headers.get(header[0]), null);
|
| + }, "Adding invalid request header \"" + header[0] + ": " + header[1] + "\"");
|
| + });
|
| +
|
| + validRequestNoCorsHeaders.forEach(function(header) {
|
| + test(function() {
|
| + var requestNoCors = new Request("", {"mode": "no-cors"});
|
| + requestNoCors.headers.set(header[0], header[1]);
|
| + assert_equals(requestNoCors.headers.get(header[0]), header[1]);
|
| + }, "Adding valid no-cors request header \"" + header[0] + ": " + header[1] + "\"");
|
| + });
|
| + invalidRequestNoCorsHeaders.forEach(function(header) {
|
| + test(function() {
|
| + var requestNoCors = new Request("", {"mode": "no-cors"});
|
| + requestNoCors.headers.set(header[0], header[1]);
|
| + assert_equals(requestNoCors.headers.get(header[0]), null);
|
| + }, "Adding invalid no-cors request header \"" + header[0] + ": " + header[1] + "\"");
|
| + });
|
| +
|
| + test(function() {
|
| + var headers = new Headers([["Cookie2", "potato"]]);
|
| + var request = new Request("", {"headers": headers});
|
| + assert_equals(request.headers.get("Cookie2"), null);
|
| + }, "Check that request constructor is filtering headers provided as init parameter");
|
| +
|
| + test(function() {
|
| + var headers = new Headers([["Content-Type", "potato"]]);
|
| + var request = new Request("", {"headers": headers, "mode": "no-cors"});
|
| + assert_equals(request.headers.get("Content-Type"), null);
|
| + }, "Check that no-cors request constructor is filtering headers provided as init parameter");
|
| +
|
| + test(function() {
|
| + var headers = new Headers([["Content-Type", "potato"]]);
|
| + var initialRequest = new Request("", {"headers": headers});
|
| + var request = new Request(initialRequest, {"mode": "no-cors"});
|
| + assert_equals(request.headers.get("Content-Type"), null);
|
| + }, "Check that no-cors request constructor is filtering headers provided as part of request parameter");
|
| +
|
| + test(function() {
|
| + var initialHeaders = new Headers([["Content-Type", "potato"]]);
|
| + var initialRequest = new Request("", {"headers" : initialHeaders});
|
| + var request = new Request(initialRequest);
|
| + assert_equals(request.headers.get("Content-Type"), "potato");
|
| + }, "Request should get its content-type from the init request");
|
| +
|
| + test(function() {
|
| + var initialHeaders = new Headers([["Content-Type", "potato"]]);
|
| + var initialRequest = new Request("", {"headers" : initialHeaders});
|
| + var headers = new Headers([]);
|
| + var request = new Request(initialRequest, {"headers" : headers});
|
| + assert_false(request.headers.has("Content-Type"));
|
| + }, "Request should not get its content-type from the init request if init headers are provided");
|
| +
|
| + test(function() {
|
| + var initialHeaders = new Headers([["Content-Type-Extra", "potato"]]);
|
| + var initialRequest = new Request("", {"headers" : initialHeaders, "body" : "this is my plate", "method" : "POST"});
|
| + var request = new Request(initialRequest);
|
| + assert_equals(request.headers.get("Content-Type"), "text/plain;charset=UTF-8");
|
| + }, "Request should get its content-type from the body if none is provided");
|
| +
|
| + test(function() {
|
| + var initialHeaders = new Headers([["Content-Type", "potato"]]);
|
| + var initialRequest = new Request("", {"headers" : initialHeaders, "body" : "this is my plate", "method" : "POST"});
|
| + var request = new Request(initialRequest);
|
| + assert_equals(request.headers.get("Content-Type"), "potato");
|
| + }, "Request should get its content-type from init headers if one is provided");
|
| +
|
| + test(function() {
|
| + var array = [["hello", "worldAHH"]];
|
| + var object = {"hello": 'worldOOH'};
|
| + var headers = new Headers(array);
|
| +
|
| + assert_equals(headers.get("hello"), "worldAHH");
|
| +
|
| + var request1 = new Request("", {"headers": headers});
|
| + var request2 = new Request("", {"headers": array});
|
| + var request3 = new Request("", {"headers": object});
|
| +
|
| + assert_equals(request1.headers.get("hello"), "worldAHH");
|
| + assert_equals(request2.headers.get("hello"), "worldAHH");
|
| + assert_equals(request3.headers.get("hello"), "worldOOH");
|
| + }, "Testing request header creations with various objects");
|
| +
|
| + promise_test(function(test) {
|
| + var request = new Request("", {"headers" : [["Content-Type", ""]], "body" : "this is my plate", "method" : "POST"});
|
| + return request.blob().then(function(blob) {
|
| + assert_equals(blob.type, "", "Blob type should be the empty string");
|
| + });
|
| + }, "Testing empty Request Content-Type header");
|
| +
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|