Bug 1945643 - Update to mozilla-nimbus-schemas 2025.1.1 r=chumphreys
[gecko.git] / dom / quota / test / xpcshell / test_listCachedOrigins.js
blob4deb33c99040053662f3ab80b9e1baeced48bf02
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
6 const { PrincipalUtils } = ChromeUtils.importESModule(
7 "resource://testing-common/dom/quota/test/modules/PrincipalUtils.sys.mjs"
8 );
9 const { QuotaUtils } = ChromeUtils.importESModule(
10 "resource://testing-common/dom/quota/test/modules/QuotaUtils.sys.mjs"
13 async function testSteps() {
14 const origins = [
15 "https://example.com",
16 "https://localhost",
17 "https://www.mozilla.org",
20 function verifyResult(result, expectedOrigins) {
21 ok(Array.isArray(result), "Got an array object");
22 Assert.equal(
23 result.length,
24 expectedOrigins.length,
25 "Correct number of elements"
28 info("Sorting elements");
30 result.sort(function (a, b) {
31 if (a < b) {
32 return -1;
34 if (a > b) {
35 return 1;
37 return 0;
38 });
40 info("Verifying elements");
42 for (let i = 0; i < result.length; i++) {
43 Assert.equal(
44 result[i],
45 expectedOrigins[i],
46 "Result matches expected origin"
51 info("Clearing");
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);
63 return result;
64 })();
66 info("Verifying result");
68 verifyResult(originsBeforeInit, []);
70 info("Clearing");
73 const request = Services.qms.clear();
74 await QuotaUtils.requestFinished(request);
77 info("Initializing");
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(
95 "default",
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);
107 return result;
108 })();
110 info("Verifying result");
112 verifyResult(originsAfterInit, origins);