| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/http-cache/heuristic.html
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/http-cache/heuristic.html b/third_party/WebKit/LayoutTests/external/wpt/fetch/http-cache/heuristic.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..429dddace6afb1c622a989e99e487db5b33d42e9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/http-cache/heuristic.html
|
| @@ -0,0 +1,104 @@
|
| +<!doctype html>
|
| +<html>
|
| + <head>
|
| + <meta charset="utf-8">
|
| + <title>HTTP Cache - Heuristic Freshness</title>
|
| + <meta name="help" href="https://fetch.spec.whatwg.org/#request">
|
| + <meta name="timeout" content="long">
|
| + <script src="/resources/testharness.js"></script>
|
| + <script src="/resources/testharnessreport.js"></script>
|
| + <script src="/common/utils.js"></script>
|
| + <script src="/common/get-host-info.sub.js"></script>
|
| + <script src="http-cache.js"></script>
|
| + </head>
|
| + <body>
|
| + <script>
|
| + var tests = [
|
| + {
|
| + name: 'HTTP cache reuses an unknown response with Last-Modified based upon heuristic freshness when Cache-Control: public is present.',
|
| + requests: [
|
| + {
|
| + response_status: [299, "Whatever"],
|
| + response_headers: [
|
| + ['Last-Modified', http_date(-3 * 100)],
|
| + ['Cache-Control', 'public']
|
| + ],
|
| + },
|
| + {
|
| + expected_type: "cached",
|
| + }
|
| + ]
|
| + },
|
| + {
|
| + name: 'HTTP cache does not reuse an unknown response with Last-Modified based upon heuristic freshness when Cache-Control: public is not present.',
|
| + requests: [
|
| + {
|
| + response_status: [299, "Whatever"],
|
| + response_headers: [
|
| + ['Last-Modified', http_date(-3 * 100)],
|
| + ['Cache-Control', 'public']
|
| + ],
|
| + },
|
| + {
|
| + expected_type: "not_cached",
|
| + }
|
| + ]
|
| + }
|
| + ];
|
| +
|
| + function check_status(status) {
|
| + var succeed = status[0];
|
| + var code = status[1];
|
| + var phrase = status[2];
|
| + var body = status[3];
|
| + if (body === undefined) {
|
| + body = http_content(code);
|
| + }
|
| + var expected_type = "not_cached";
|
| + var desired = "does not use"
|
| + if (succeed === true) {
|
| + expected_type = "cached";
|
| + desired = "reuses";
|
| + }
|
| + tests.push(
|
| + {
|
| + name: 'HTTP cache ' + desired + ' a ' + code + ' ' + phrase + ' response with Last-Modified based upon heuristic freshness.',
|
| + requests: [
|
| + {
|
| + response_status: [code, phrase],
|
| + response_headers: [
|
| + ['Last-Modified', http_date(-3 * 100)]
|
| + ],
|
| + response_body: body,
|
| + },
|
| + {
|
| + expected_type: expected_type,
|
| + response_status: [code, phrase],
|
| + response_body: body,
|
| + }
|
| + ]
|
| + }
|
| + )
|
| + }
|
| + [
|
| + [true, 200, 'OK'],
|
| + [true, 203, "Non-Authoritative Information"],
|
| + [true, 204, "No Content", ""],
|
| + [true, 404, "Not Found"],
|
| + [true, 405, "Method Not Allowed"],
|
| + [true, 410, "Gone"],
|
| + [true, 414, "URI Too Long"],
|
| + [true, 501, "Not Implemented"]
|
| + ].forEach(check_status);
|
| + [
|
| + [false, 201, 'Created'],
|
| + [false, 202, "Accepted"],
|
| + [false, 403, "Forbidden"],
|
| + [false, 502, "Bad Gateway"],
|
| + [false, 503, "Service Unavailable"],
|
| + [false, 504, "Gateway Timeout"],
|
| + ].forEach(check_status);
|
| + run_tests(tests);
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|