test_listOrigins.js (2466B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 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" 11 ); 12 13 async function testSteps() { 14 const origins = [ 15 "https://example.com", 16 "https://localhost", 17 "https://www.mozilla.org", 18 ]; 19 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" 26 ); 27 28 info("Sorting elements"); 29 30 result.sort(function (a, b) { 31 if (a < b) { 32 return -1; 33 } 34 if (a > b) { 35 return 1; 36 } 37 return 0; 38 }); 39 40 info("Verifying elements"); 41 42 for (let i = 0; i < result.length; i++) { 43 Assert.equal( 44 result[i], 45 expectedOrigins[i], 46 "Result matches expected origin" 47 ); 48 } 49 } 50 51 info("Clearing"); 52 53 { 54 const request = Services.qms.clear(); 55 await QuotaUtils.requestFinished(request); 56 } 57 58 info("Listing origins"); 59 60 const originsBeforeInit = await (async function () { 61 const request = Services.qms.listOrigins(); 62 const result = await QuotaUtils.requestFinished(request); 63 return result; 64 })(); 65 66 info("Verifying result"); 67 68 verifyResult(originsBeforeInit, []); 69 70 info("Clearing"); 71 72 { 73 const request = Services.qms.clear(); 74 await QuotaUtils.requestFinished(request); 75 } 76 77 info("Initializing"); 78 79 { 80 const request = Services.qms.init(); 81 await QuotaUtils.requestFinished(request); 82 } 83 84 info("Initializing temporary storage"); 85 86 { 87 const request = Services.qms.initTemporaryStorage(); 88 await QuotaUtils.requestFinished(request); 89 } 90 91 info("Initializing origins"); 92 93 for (const origin of origins) { 94 const request = Services.qms.initializeTemporaryOrigin( 95 "default", 96 PrincipalUtils.createPrincipal(origin) 97 ); 98 await QuotaUtils.requestFinished(request); 99 } 100 101 info("Listing origins"); 102 103 const originsAfterInit = await (async function () { 104 const request = Services.qms.listOrigins(); 105 const result = await QuotaUtils.requestFinished(request); 106 return result; 107 })(); 108 109 info("Verifying result"); 110 111 verifyResult(originsAfterInit, origins); 112 }