fune/netwerk/test/unit/test_stale-while-revalidate_loop.js
Valentin Gosu fd2cf8c108 Bug 1611651 - Add test for stale-while-revalidate loop bug
Differential Revision: https://phabricator.services.mozilla.com/D64397

--HG--
rename : netwerk/test/unit/test_stale-while-revalidate_positive.js => netwerk/test/unit/test_stale-while-revalidate_loop.js
extra : moz-landing-system : lando
2020-03-07 16:59:16 +00:00

46 lines
1.1 KiB
JavaScript

/*
Tests the Cache-control: stale-while-revalidate response directive.
Loads a HTTPS resource with the stale-while-revalidate and tries to load it
twice.
*/
"use strict";
function make_channel(url) {
return NetUtil.newChannel({
uri: url,
loadUsingSystemPrincipal: true,
}).QueryInterface(Ci.nsIHttpChannel);
}
async function get_response(channel, fromCache) {
return new Promise(resolve => {
channel.asyncOpen(
new ChannelListener((request, buffer, ctx, isFromCache) => {
resolve(buffer);
})
);
});
}
add_task(async function() {
do_get_profile();
let env = Cc["@mozilla.org/process/environment;1"].getService(
Ci.nsIEnvironment
);
const PORT = env.get("MOZHTTP2_PORT");
const URI = `https://localhost:${PORT}/stale-while-revalidate-loop-test`;
let certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(
Ci.nsIX509CertDB
);
addCertFromFile(certdb, "http2-ca.pem", "CTu,u,u");
let response = await get_response(make_channel(URI), false);
ok(response == "1", "got response ver 1");
response = await get_response(make_channel(URI), false);
ok(response == "1", "got response ver 1");
});