<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>HTTP Cache - 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 = [
      // response directives
      {
        name: "HTTP cache reuses a response with a future Expires",
        requests: [
          {
            response_headers: [
              ["Expires", (30 * 24 * 60 * 60)]
            ]
          },
          {
            expected_type: "cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response with a past Expires",
        requests: [
          {
            response_headers: [
              ["Expires", (-30 * 24 * 60 * 60)]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response with a present Expires",
        requests: [
          {
            response_headers: [
              ["Expires", 0]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response with an invalid Expires",
        requests: [
          {
            response_headers: [
              ["Expires", "0"]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache reuses a response with positive Cache-Control: max-age",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=3600"]
            ]
          },
          {
            expected_type: "cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response with Cache-Control: max-age=0",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=0"]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache reuses a response with positive Cache-Control: max-age and a past Expires",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=3600"],
              ["Expires", -10000]
            ]
          },
          {
            expected_type: "cached"
          }
        ]
      },
      {
        name: "HTTP cache reuses a response with positive Cache-Control: max-age and an invalid Expires",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=3600"],
              ["Expires", "0"]
            ]
          },
          {
            expected_type: "cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response with Cache-Control: max-age=0 and a future Expires",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=0"],
              ["Expires", 10000]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not prefer Cache-Control: s-maxage over Cache-Control: max-age",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=1, s-maxage=3600"]
            ],
            pause_after: true,
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not reuse a response when the Age header is greater than its freshness lifetime",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=3600"],
              ["Age", "12000"]
            ],
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not store a response with Cache-Control: no-store",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "no-store"]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache does not store a response with Cache-Control: no-store, even with max-age and Expires",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=10000, no-store"],
              ["Expires", 10000]
            ]
          },
          {
            expected_type: "not_cached"
          }
        ]
      },
      {
        name: "HTTP cache stores a response with Cache-Control: no-cache, but revalidates upon use",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "no-cache"],
              ["ETag", "abcd"]
            ]
          },
          {
            expected_type: "etag_validated"
          }
        ]
      },
      {
        name: "HTTP cache stores a response with Cache-Control: no-cache, but revalidates upon use, even with max-age and Expires",
        requests: [
          {
            response_headers: [
              ["Cache-Control", "max-age=10000, no-cache"],
              ["Expires", 10000],
              ["ETag", "abcd"]
            ]
          },
          {
            expected_type: "etag_validated"
          }
        ]
      },
    ];
    run_tests(tests);
    </script>
  </body>
</html>
