2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
6 const { PrincipalUtils
} = ChromeUtils
.importESModule(
7 "resource://testing-common/dom/quota/test/modules/PrincipalUtils.sys.mjs"
9 const { QuotaUtils
} = ChromeUtils
.importESModule(
10 "resource://testing-common/dom/quota/test/modules/QuotaUtils.sys.mjs"
13 async
function testSteps() {
15 "https://example.com",
17 "https://www.mozilla.org",
20 function verifyResult(result
, expectedOrigins
) {
21 ok(Array
.isArray(result
), "Got an array object");
24 expectedOrigins
.length
,
25 "Correct number of elements"
28 info("Sorting elements");
30 result
.sort(function (a
, b
) {
40 info("Verifying elements");
42 for (let i
= 0; i
< result
.length
; i
++) {
46 "Result matches expected origin"
54 const request
= Services
.qms
.clear();
55 await QuotaUtils
.requestFinished(request
);
58 info("Listing cached origins");
60 const originsBeforeInit
= await (async
function () {
61 const request
= Services
.qms
.listCachedOrigins();
62 const result
= await QuotaUtils
.requestFinished(request
);
66 info("Verifying result");
68 verifyResult(originsBeforeInit
, []);
73 const request
= Services
.qms
.clear();
74 await QuotaUtils
.requestFinished(request
);
80 const request
= Services
.qms
.init();
81 await QuotaUtils
.requestFinished(request
);
84 info("Initializing temporary storage");
87 const request
= Services
.qms
.initTemporaryStorage();
88 await QuotaUtils
.requestFinished(request
);
91 info("Initializing origins");
93 for (const origin
of origins
) {
94 const request
= Services
.qms
.initializeTemporaryOrigin(
96 PrincipalUtils
.createPrincipal(origin
),
97 /* aCreateIfNonExistent */ true
99 await QuotaUtils
.requestFinished(request
);
102 info("Listing cached origins");
104 const originsAfterInit
= await (async
function () {
105 const request
= Services
.qms
.listCachedOrigins();
106 const result
= await QuotaUtils
.requestFinished(request
);
110 info("Verifying result");
112 verifyResult(originsAfterInit
, origins
);