tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }