2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
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,
33 clear(continueToNextStepSync
);
36 info("Verifying initialization status");
38 verifyInitializationStatus(false, false, false).then(continueToNextStepSync
);
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
);
55 clear(continueToNextStepSync
);
58 info("Verifying initialization status");
60 verifyInitializationStatus(false, false, false).then(continueToNextStepSync
);
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
);
85 clear(continueToNextStepSync
);
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
);
100 info("Initializing");
102 request
= init(continueToNextStepSync
);
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
);
115 info("Initializing origin");
117 request
= initPersistentOrigin(getCurrentPrincipal(), continueToNextStepSync
);
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");
132 ok(!exists
, "Metadata file doesn't exist");
136 info("Verifying initialization status");
138 verifyInitializationStatus(true, false, false).then(continueToNextStepSync
);