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> |