1
0
Fork 0
firefox/netwerk/test/unit/test_cache2-33-clear-base-domain.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

66 lines
1.9 KiB
JavaScript

"use strict";
const URL = "http://example.net";
const URL_SUBDOMAIN = "http://subdomain.example.net";
const URL2 = "http://foo.bar";
/**
* Helper to wrap the OpenCallback in a Promise.
*/
function OpenCallbackPromise(behavior, workingMetadata, workingData, url) {
return new Promise(resolve => {
asyncOpenCacheEntry(
url,
"disk",
Ci.nsICacheStorage.OPEN_NORMALLY,
null,
new OpenCallback(behavior, workingMetadata, workingData, resolve)
);
});
}
async function run_test() {
do_get_profile();
do_test_pending();
try {
info(`Create first entry for ${URL}/a`);
await OpenCallbackPromise(NEW, "e1m", "e1d", URL + "/a");
info(`Verify first entry for ${URL}/a`);
await OpenCallbackPromise(NORMAL, "e1m", "e1d", URL + "/a");
info(`Create entry for ${URL_SUBDOMAIN}/a`);
await OpenCallbackPromise(NEW, "es1m", "es1d", URL_SUBDOMAIN + "/a");
info(`Verify entry for ${URL_SUBDOMAIN}/a`);
await OpenCallbackPromise(NORMAL, "es1m", "es1d", URL_SUBDOMAIN + "/a");
info(`Create entry for ${URL2}/a`);
await OpenCallbackPromise(NEW, "f1m", "f1d", URL2 + "/a");
info(`Verify entry for ${URL2}/a`);
await OpenCallbackPromise(NORMAL, "f1m", "f1d", URL2 + "/a");
info(`Clear base domain associated with ${URL}`);
const url = Services.io.newURI(URL);
const principal = Services.scriptSecurityManager.createContentPrincipal(
url,
{}
);
Services.cache2.clearBaseDomain(principal.baseDomain);
info(`${URL}/a entry should be new after clearing`);
await OpenCallbackPromise(NEW, "e1m", "e1d", URL + "/a");
info(`${URL_SUBDOMAIN}/a entry should be new after clearing`);
await OpenCallbackPromise(NEW, "es1m", "es1d", URL_SUBDOMAIN + "/a");
info(`${URL2}/a entry should still exist`);
await OpenCallbackPromise(NORMAL, "f1m", "f1d", URL2 + "/a");
finish_cache2_test();
} catch (e) {
do_throw(e);
}
}