2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
7 * This test is mainly to verify that init, initTemporaryStorage,
8 * getUsageForPrincipal and clearStoragesForPrincipal are able to ignore
9 * unknown files and directories in the storage/default directory and its
12 async
function testSteps() {
13 const principal
= getPrincipal("http://example.com");
15 async
function testFunctionality(testFunction
) {
18 initializedStorage
: false,
19 initializedPersistentStorage
: false,
20 initializedTemporaryStorage
: false,
23 initializedStorage
: true,
24 initializedPersistentStorage
: false,
25 initializedTemporaryStorage
: false,
28 initializedStorage
: true,
29 initializedPersistentStorage
: false,
30 initializedTemporaryStorage
: true,
34 for (const mode
of modes
) {
37 let request
= clear();
38 await
requestFinished(request
);
40 info("Installing package");
42 // The profile contains unknown files and unknown directories placed
43 // across the repositories, origin directories and client directories.
44 // The file make_unknownFiles.js was run locally, specifically it was
45 // temporarily enabled in xpcshell.ini and then executed:
46 // mach test --interactive dom/quota/test/xpcshell/make_unknownFiles.js
47 installPackage("unknownFiles_profile");
49 if (mode
.initializedStorage
) {
50 info("Initializing storage");
53 await
requestFinished(request
);
56 if (mode
.initializedTemporaryStorage
) {
57 info("Initializing temporary storage");
59 request
= initTemporaryStorage();
60 await
requestFinished(request
);
63 info("Verifying initialization status");
65 await
verifyInitializationStatus(
66 mode
.initializedStorage
,
67 mode
.initializedPersistentStorage
,
68 mode
.initializedTemporaryStorage
72 mode
.initializedStorage
,
73 mode
.initializedTemporaryStorage
79 await
requestFinished(request
);
83 // init and initTemporaryStorage functionality is tested in the
84 // testFunctionality function as part of the multi mode testing
86 info("Testing getUsageForPrincipal functionality");
88 await
testFunctionality(async
function () {
89 info("Getting origin usage");
91 request
= getOriginUsage(principal
);
92 await
requestFinished(request
);
95 request
.result
instanceof Ci
.nsIQuotaOriginUsageResult
,
96 "The result is nsIQuotaOriginUsageResult instance"
98 is(request
.result
.usage
, 115025, "Correct total usage");
99 is(request
.result
.fileUsage
, 200, "Correct file usage");
102 info("Testing clearStoragesForPrincipal functionality");
104 await
testFunctionality(async
function () {
105 info("Clearing origin");
107 request
= clearOrigin(principal
, "default");
108 await
requestFinished(request
);