2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
6 function* testSteps() {
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
21 let request
= persisted(principal
, continueToNextStepSync
);
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
);
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
);
51 let originPersisted
= getPersistedFromMetadata(fileReader
.result
);
52 ok(originPersisted
, "The origin is persisted");
54 info("Verifying persisted()");
56 request
= persisted(principal
, continueToNextStepSync
);
59 Assert
.strictEqual(request
.resultCode
, NS_OK
, "Persisted() succeeded");
63 "Persisted() concurs with metadata"
66 info("Clearing the origin");
68 // Clear the origin since we'll test the same directory again under different
70 clearOrigin(principal
, origin
.persistence
, continueToNextStepSync
);
73 info("Persisting an already initialized origin");
75 initTemporaryStorage(continueToNextStepSync
);
81 /* createIfNonExistent */ true,
82 continueToNextStepSync
86 info("Reading out contents of metadata file");
88 fileReader
= new FileReader();
89 fileReader
.onload
= continueToNextStepSync
;
90 fileReader
.readAsArrayBuffer(file
);
93 originPersisted
= getPersistedFromMetadata(fileReader
.result
);
94 ok(!originPersisted
, "The origin isn't persisted after clearing");
96 info("Verifying persisted()");
98 request
= persisted(principal
, continueToNextStepSync
);
101 Assert
.strictEqual(request
.resultCode
, NS_OK
, "Persisted() succeeded");
105 "Persisted() concurs with metadata"
108 info("Verifying persist() does update the metadata");
110 request
= persist(principal
, continueToNextStepSync
);
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
);
122 originPersisted
= getPersistedFromMetadata(fileReader
.result
);
123 ok(originPersisted
, "The origin is persisted");
125 info("Verifying persisted()");
127 request
= persisted(principal
, continueToNextStepSync
);
130 Assert
.strictEqual(request
.resultCode
, NS_OK
, "Persisted() succeeded");
134 "Persisted() concurs with metadata"
137 info("Clearing the origin");
139 // Clear the origin since we'll test the same directory again under different
141 clearOrigin(principal
, origin
.persistence
, continueToNextStepSync
);
145 "Persisting an uninitialized origin when temporary storage is already initialized"
148 initTemporaryStorage(continueToNextStepSync
);
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
);
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
);
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
);
179 originPersisted
= getPersistedFromMetadata(fileReader
.result
);
180 ok(originPersisted
, "The origin is persisted");
182 info("Verifying persisted()");
184 request
= persisted(principal
, continueToNextStepSync
);
187 Assert
.strictEqual(request
.resultCode
, NS_OK
, "Persisted() succeeded");
191 "Persisted() concurs with metadata"