Bug 1945643 - Update to mozilla-nimbus-schemas 2025.1.1 r=chumphreys
[gecko.git] / dom / quota / test / xpcshell / test_basics.js
blobe125af930b0ba91788de366a9c3799aeeef54165
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
6 function* testSteps() {
7 const storageFile = "storage.sqlite";
9 const metadataFiles = [
11 path: "storage/permanent/chrome/.metadata",
12 shouldExistAfterInit: false,
16 path: "storage/permanent/chrome/.metadata-tmp",
17 shouldExistAfterInit: false,
21 path: "storage/permanent/chrome/.metadata-v2",
22 shouldExistAfterInit: true,
26 path: "storage/permanent/chrome/.metadata-v2-tmp",
27 shouldExistAfterInit: false,
31 info("Clearing");
33 clear(continueToNextStepSync);
34 yield undefined;
36 info("Verifying initialization status");
38 verifyInitializationStatus(false, false, false).then(continueToNextStepSync);
39 yield undefined;
41 info("Getting usage");
43 getCurrentUsage(grabUsageAndContinueHandler);
44 let usage = yield undefined;
46 Assert.equal(usage, 0, "Usage is zero");
48 info("Verifying initialization status");
50 verifyInitializationStatus(true, false, false).then(continueToNextStepSync);
51 yield undefined;
53 info("Clearing");
55 clear(continueToNextStepSync);
56 yield undefined;
58 info("Verifying initialization status");
60 verifyInitializationStatus(false, false, false).then(continueToNextStepSync);
61 yield undefined;
63 info("Installing package");
65 // The profile contains just one empty IndexedDB database. The file
66 // create_db.js in the package was run locally, specifically it was
67 // temporarily added to xpcshell.ini and then executed:
68 // mach xpcshell-test --interactive dom/quota/test/xpcshell/create_db.js
69 installPackage("basics_profile");
71 info("Getting usage");
73 getCurrentUsage(grabUsageAndContinueHandler);
74 usage = yield undefined;
76 Assert.greater(usage, 0, "Usage is not zero");
78 info("Verifying initialization status");
80 verifyInitializationStatus(true, false, false).then(continueToNextStepSync);
81 yield undefined;
83 info("Clearing");
85 clear(continueToNextStepSync);
86 yield undefined;
88 info("Checking storage file");
90 let file = getRelativeFile(storageFile);
92 let exists = file.exists();
93 ok(!exists, "Storage file doesn't exist");
95 info("Verifying initialization status");
97 verifyInitializationStatus(false, false, false).then(continueToNextStepSync);
98 yield undefined;
100 info("Initializing");
102 request = init(continueToNextStepSync);
103 yield undefined;
105 Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
107 exists = file.exists();
108 ok(exists, "Storage file does exist");
110 info("Verifying initialization status");
112 verifyInitializationStatus(true, false, false).then(continueToNextStepSync);
113 yield undefined;
115 info("Initializing origin");
117 request = initPersistentOrigin(getCurrentPrincipal(), continueToNextStepSync);
118 yield undefined;
120 Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
122 ok(request.result, "Origin directory was created");
124 for (let metadataFile of metadataFiles) {
125 file = getRelativeFile(metadataFile.path);
127 exists = file.exists();
129 if (metadataFile.shouldExistAfterInit) {
130 ok(exists, "Metadata file does exist");
131 } else {
132 ok(!exists, "Metadata file doesn't exist");
136 info("Verifying initialization status");
138 verifyInitializationStatus(true, false, false).then(continueToNextStepSync);
140 yield undefined;
142 finishTest();