tor-browser

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

test_unknownFiles.js (3117B)


      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 that init, initTemporaryStorage,
      8 * getUsageForPrincipal and clearStoragesForPrincipal are able to ignore
      9 * unknown files and directories in the storage/default directory and its
     10 * subdirectories.
     11 */
     12 async function testSteps() {
     13  const principal = getPrincipal("http://example.com");
     14 
     15  async function testFunctionality(testFunction) {
     16    const modes = [
     17      {
     18        initializedStorage: false,
     19        initializedPersistentStorage: false,
     20        initializedTemporaryStorage: false,
     21      },
     22      {
     23        initializedStorage: true,
     24        initializedPersistentStorage: false,
     25        initializedTemporaryStorage: false,
     26      },
     27      {
     28        initializedStorage: true,
     29        initializedPersistentStorage: false,
     30        initializedTemporaryStorage: true,
     31      },
     32    ];
     33 
     34    for (const mode of modes) {
     35      info("Clearing");
     36 
     37      let request = clear();
     38      await requestFinished(request);
     39 
     40      info("Installing package");
     41 
     42      // The profile contains unknown files and unknown directories placed
     43      // across the repositories, origin directories and client directories.
     44      // The file make_unknownFiles.js was run locally, specifically it was
     45      // temporarily enabled in xpcshell.toml and then executed:
     46      // mach test --interactive dom/quota/test/xpcshell/make_unknownFiles.js
     47      installPackage("unknownFiles_profile");
     48 
     49      if (mode.initializedStorage) {
     50        info("Initializing storage");
     51 
     52        request = init();
     53        await requestFinished(request);
     54      }
     55 
     56      if (mode.initializedTemporaryStorage) {
     57        info("Initializing temporary storage");
     58 
     59        request = initTemporaryStorage();
     60        await requestFinished(request);
     61      }
     62 
     63      info("Verifying initialization status");
     64 
     65      await verifyInitializationStatus(
     66        mode.initializedStorage,
     67        mode.initializedPersistentStorage,
     68        mode.initializedTemporaryStorage
     69      );
     70 
     71      await testFunction(
     72        mode.initializedStorage,
     73        mode.initializedTemporaryStorage
     74      );
     75 
     76      info("Clearing");
     77 
     78      request = clear();
     79      await requestFinished(request);
     80    }
     81  }
     82 
     83  // init and initTemporaryStorage functionality is tested in the
     84  // testFunctionality function as part of the multi mode testing
     85 
     86  info("Testing getUsageForPrincipal functionality");
     87 
     88  await testFunctionality(async function () {
     89    info("Getting origin usage");
     90 
     91    request = getOriginUsage(principal);
     92    await requestFinished(request);
     93 
     94    ok(
     95      request.result instanceof Ci.nsIQuotaOriginUsageResult,
     96      "The result is nsIQuotaOriginUsageResult instance"
     97    );
     98    is(request.result.usage, 115025, "Correct total usage");
     99    is(request.result.fileUsage, 200, "Correct file usage");
    100  });
    101 
    102  info("Testing clearStoragesForPrincipal functionality");
    103 
    104  await testFunctionality(async function () {
    105    info("Clearing origin");
    106 
    107    request = clearOrigin(principal, "default");
    108    await requestFinished(request);
    109  });
    110 }