55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
/**
|
|
* This test is an xpcshell test for clearStoragesForPrincipal. It verifies that
|
|
* if the removing client is the last client in the targeting origin, then it
|
|
* is expected to remove the origin directory as well.
|
|
*/
|
|
|
|
async function testSteps() {
|
|
const testingOrigins = [
|
|
{
|
|
origin: "http://example.com",
|
|
path: "storage/default/http+++example.com/",
|
|
only_idb: false,
|
|
},
|
|
{
|
|
origin: "http://www.mozilla.org",
|
|
path: "storage/default/http+++www.mozilla.org/",
|
|
only_idb: true,
|
|
},
|
|
];
|
|
const removingClient = "idb";
|
|
|
|
info("Installing package to create the environment");
|
|
// The package is manually created and it contains:
|
|
// - storage/default/http+++www.mozilla.org/idb/
|
|
// - storage/default/http+++www.example.com/idb/
|
|
// - storage/default/http+++www.example.com/cache/
|
|
installPackage("clearStoragesForPrincipal_profile");
|
|
|
|
let request;
|
|
let file;
|
|
for (let i = 0; i < testingOrigins.length; ++i) {
|
|
info("Clearing");
|
|
request = clearClient(
|
|
getPrincipal(testingOrigins[i].origin),
|
|
removingClient
|
|
);
|
|
await requestFinished(request);
|
|
|
|
info("Verifying");
|
|
file = getRelativeFile(testingOrigins[i].path + removingClient);
|
|
ok(!file.exists(), "Client file doesn't exist");
|
|
|
|
file = getRelativeFile(testingOrigins[i].path);
|
|
if (testingOrigins[i].only_idb) {
|
|
todo(!file.exists(), "Origin file doesn't exist");
|
|
} else {
|
|
ok(file.exists(), "Origin file does exist");
|
|
}
|
|
}
|
|
}
|