Bug 1945643 - Update to mozilla-nimbus-schemas 2025.1.1 r=chumphreys
[gecko.git] / dom / quota / test / xpcshell / test_persist.js
blobd12563e64ff5f210189e673d0f9a6809c556f13d
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
6 function* testSteps() {
7 const origin = {
8 url: "http://default.test.persist",
9 path: "storage/default/http+++default.test.persist",
10 persistence: "default",
13 const metadataFileName = ".metadata-v2";
15 let principal = getPrincipal(origin.url);
17 info("Persisting an uninitialized origin");
19 // Origin directory doesn't exist yet, so only check the result for
20 // persisted().
21 let request = persisted(principal, continueToNextStepSync);
22 yield undefined;
24 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
25 ok(!request.result, "The origin is not persisted");
27 info("Verifying persist() does update the metadata");
29 request = persist(principal, continueToNextStepSync);
30 yield undefined;
32 Assert.strictEqual(request.resultCode, NS_OK, "Persist() succeeded");
34 let originDir = getRelativeFile(origin.path);
35 let exists = originDir.exists();
36 ok(exists, "Origin directory does exist");
38 info("Reading out contents of metadata file");
40 let metadataFile = originDir.clone();
41 metadataFile.append(metadataFileName);
43 File.createFromNsIFile(metadataFile).then(grabArgAndContinueHandler);
44 let file = yield undefined;
46 let fileReader = new FileReader();
47 fileReader.onload = continueToNextStepSync;
48 fileReader.readAsArrayBuffer(file);
49 yield undefined;
51 let originPersisted = getPersistedFromMetadata(fileReader.result);
52 ok(originPersisted, "The origin is persisted");
54 info("Verifying persisted()");
56 request = persisted(principal, continueToNextStepSync);
57 yield undefined;
59 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
60 Assert.strictEqual(
61 request.result,
62 originPersisted,
63 "Persisted() concurs with metadata"
66 info("Clearing the origin");
68 // Clear the origin since we'll test the same directory again under different
69 // circumstances.
70 clearOrigin(principal, origin.persistence, continueToNextStepSync);
71 yield undefined;
73 info("Persisting an already initialized origin");
75 initTemporaryStorage(continueToNextStepSync);
76 yield undefined;
78 initTemporaryOrigin(
79 origin.persistence,
80 principal,
81 /* createIfNonExistent */ true,
82 continueToNextStepSync
84 yield undefined;
86 info("Reading out contents of metadata file");
88 fileReader = new FileReader();
89 fileReader.onload = continueToNextStepSync;
90 fileReader.readAsArrayBuffer(file);
91 yield undefined;
93 originPersisted = getPersistedFromMetadata(fileReader.result);
94 ok(!originPersisted, "The origin isn't persisted after clearing");
96 info("Verifying persisted()");
98 request = persisted(principal, continueToNextStepSync);
99 yield undefined;
101 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
102 Assert.strictEqual(
103 request.result,
104 originPersisted,
105 "Persisted() concurs with metadata"
108 info("Verifying persist() does update the metadata");
110 request = persist(principal, continueToNextStepSync);
111 yield undefined;
113 Assert.strictEqual(request.resultCode, NS_OK, "Persist() succeeded");
115 info("Reading out contents of metadata file");
117 fileReader = new FileReader();
118 fileReader.onload = continueToNextStepSync;
119 fileReader.readAsArrayBuffer(file);
120 yield undefined;
122 originPersisted = getPersistedFromMetadata(fileReader.result);
123 ok(originPersisted, "The origin is persisted");
125 info("Verifying persisted()");
127 request = persisted(principal, continueToNextStepSync);
128 yield undefined;
130 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
131 Assert.strictEqual(
132 request.result,
133 originPersisted,
134 "Persisted() concurs with metadata"
137 info("Clearing the origin");
139 // Clear the origin since we'll test the same directory again under different
140 // circumstances.
141 clearOrigin(principal, origin.persistence, continueToNextStepSync);
142 yield undefined;
144 info(
145 "Persisting an uninitialized origin when temporary storage is already initialized"
148 initTemporaryStorage(continueToNextStepSync);
149 yield undefined;
151 exists = originDir.exists();
152 ok(!exists, "Origin directory does not exist");
154 exists = metadataFile.exists();
155 ok(!exists, "Metadata file does not exist");
157 info("Verifying persisted()");
159 request = persisted(principal, continueToNextStepSync);
160 yield undefined;
162 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
163 ok(!request.result, "Persisted() concurs with metadata");
165 info("Verifying persist() does update the metadata");
167 request = persist(principal, continueToNextStepSync);
168 yield undefined;
170 Assert.strictEqual(request.resultCode, NS_OK, "Persist() succeeded");
172 info("Reading out contents of metadata file");
174 fileReader = new FileReader();
175 fileReader.onload = continueToNextStepSync;
176 fileReader.readAsArrayBuffer(file);
177 yield undefined;
179 originPersisted = getPersistedFromMetadata(fileReader.result);
180 ok(originPersisted, "The origin is persisted");
182 info("Verifying persisted()");
184 request = persisted(principal, continueToNextStepSync);
185 yield undefined;
187 Assert.strictEqual(request.resultCode, NS_OK, "Persisted() succeeded");
188 Assert.strictEqual(
189 request.result,
190 originPersisted,
191 "Persisted() concurs with metadata"
194 finishTest();