// META: global=window,worker // META: title=HTTP Cache - Status Codes // META: timeout=long // META: script=/common/utils.js // META: script=/common/get-host-info.sub.js // META: script=http-cache.js var tests = []; function check_status(status) { var code = status[0]; var phrase = status[1]; var body = status[2]; if (body === undefined) { body = http_content(code); } tests.push({ name: "HTTP cache goes to the network if it has a stale " + code + " response", requests: [ { template: "stale", response_status: [code, phrase], response_body: body }, { expected_type: "not_cached", response_status: [code, phrase], response_body: body } ] }) tests.push({ name: "HTTP cache avoids going to the network if it has a fresh " + code + " response", requests: [ { template: "fresh", response_status: [code, phrase], response_body: body }, { expected_type: "cached", response_status: [code, phrase], response_body: body } ] }) } [ [200, "OK"], [203, "Non-Authoritative Information"], [204, "No Content", null], [299, "Whatever"], [400, "Bad Request"], [404, "Not Found"], [410, "Gone"], [499, "Whatever"], [500, "Internal Server Error"], [502, "Bad Gateway"], [503, "Service Unavailable"], [504, "Gateway Timeout"], [599, "Whatever"] ].forEach(check_status); run_tests(tests);