Bug 1945643 - Update to mozilla-nimbus-schemas 2025.1.1 r=chumphreys
[gecko.git] / dom / quota / test / xpcshell / test_listOrigins.js
blob7577e494287ed565f97ce9f4b63f58bc3b7a734b
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 origins");
60 const originsBeforeInit = await (async function () {
61 const request = Services.qms.listOrigins();
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)
98 await QuotaUtils.requestFinished(request);
101 info("Listing origins");
103 const originsAfterInit = await (async function () {
104 const request = Services.qms.listOrigins();
105 const result = await QuotaUtils.requestFinished(request);
106 return result;
107 })();
109 info("Verifying result");
111 verifyResult(originsAfterInit, origins);