tor-browser

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

test_clearStoragesForClient.js (1863B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 /**
      7 * This test is mainly to verify clearing by client type.
      8 */
      9 
     10 async function testSteps() {
     11  const packages = [
     12    "clearStoragesForClient_profile",
     13    "defaultStorageDirectory_shared",
     14  ];
     15 
     16  const testData = [
     17    {
     18      origin: "http://example.com",
     19      client: "sdb",
     20      persistence: null,
     21      key: "afterClearByClient",
     22    },
     23    {
     24      origin: "http://example.com",
     25      client: "sdb",
     26      persistence: "default",
     27      key: "afterClearByClient_default",
     28    },
     29    {
     30      origin: "http://example.com",
     31      client: "sdb",
     32      persistence: "persistent",
     33      key: "afterClearByClient_persistent",
     34    },
     35    {
     36      origin: "http://example.com",
     37      client: "sdb",
     38      persistence: "temporary",
     39      key: "afterClearByClient_temporary",
     40    },
     41  ];
     42 
     43  for (const item of testData) {
     44    info("Clearing");
     45 
     46    let request = clear();
     47    await requestFinished(request);
     48 
     49    info("Verifying storage");
     50 
     51    verifyStorage(packages, "beforeInstall");
     52 
     53    info("Installing package");
     54 
     55    installPackages(packages);
     56 
     57    info("Verifying storage");
     58 
     59    verifyStorage(packages, "afterInstall");
     60 
     61    // TODO: Remove this block once origin clearing is able to ignore unknown
     62    //       directories.
     63    getRelativeFile("storage/default/invalid+++example.com").remove(false);
     64    getRelativeFile("storage/permanent/invalid+++example.com").remove(false);
     65    getRelativeFile("storage/temporary/invalid+++example.com").remove(false);
     66 
     67    info("Clearing by client type");
     68 
     69    request = clearClient(
     70      getPrincipal(item.origin),
     71      item.client,
     72      item.persistence
     73    );
     74    await requestFinished(request);
     75 
     76    info("Verifying storage");
     77 
     78    verifyStorage(packages, item.key, "afterClearByClient");
     79  }
     80 }