tor-browser

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

test_upgradeFromIndexedDBDirectory.js (2948B)


      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
      8 * MaybeUpgradeFromIndexedDBDirectoryToPersistentStorageDirectory method.
      9 */
     10 
     11 function* testSteps() {
     12  const origins = [
     13    {
     14      oldPath: "indexedDB/http+++www.mozilla.org",
     15      newPath: "storage/default/http+++www.mozilla.org",
     16      url: "http://www.mozilla.org",
     17      persistence: "default",
     18    },
     19 
     20    {
     21      oldPath: "indexedDB/1007+f+app+++system.gaiamobile.org",
     22    },
     23 
     24    {
     25      oldPath: "indexedDB/1007+t+https+++developer.cdn.mozilla.net",
     26    },
     27  ];
     28 
     29  const packages = [
     30    // Storage used prior FF 26 (indexedDB/ directory).
     31    "indexedDBDirectory_profile",
     32    "../indexedDBDirectory_shared",
     33  ];
     34 
     35  info("Clearing");
     36 
     37  clear(continueToNextStepSync);
     38  yield undefined;
     39 
     40  info("Verifying storage");
     41 
     42  verifyStorage(packages, "beforeInstall");
     43 
     44  info("Installing package");
     45 
     46  installPackages(packages);
     47 
     48  info("Verifying storage");
     49 
     50  verifyStorage(packages, "afterInstall");
     51 
     52  for (let origin of origins) {
     53    let originDir = getRelativeFile(origin.oldPath);
     54    let exists = originDir.exists();
     55    ok(exists, "Origin directory does exist");
     56 
     57    if (origin.newPath) {
     58      originDir = getRelativeFile(origin.newPath);
     59      exists = originDir.exists();
     60      ok(!exists, "Origin directory doesn't exist");
     61    }
     62  }
     63 
     64  info("Initializing");
     65 
     66  let request = init(continueToNextStepSync);
     67  yield undefined;
     68 
     69  Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
     70 
     71  info("Verifying storage");
     72 
     73  verifyStorage(packages, "afterInit");
     74 
     75  // TODO: Remove this block once temporary storage initialization is able to
     76  //       ignore unknown directories.
     77  getRelativeFile("storage/default/invalid+++example.com").remove(false);
     78 
     79  info("Checking origin directories");
     80 
     81  for (let origin of origins) {
     82    let originDir = getRelativeFile(origin.oldPath);
     83    let exists = originDir.exists();
     84    ok(!exists, "Origin directory doesn't exist");
     85 
     86    if (origin.newPath) {
     87      originDir = getRelativeFile(origin.newPath);
     88      exists = originDir.exists();
     89      ok(exists, "Origin directory does exist");
     90    }
     91  }
     92 
     93  info("Initializing temporary storage");
     94 
     95  request = initTemporaryStorage(continueToNextStepSync);
     96  yield undefined;
     97 
     98  Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
     99 
    100  info("Initializing origins");
    101 
    102  for (const origin of origins) {
    103    if (origin.newPath) {
    104      info("Initializing origin");
    105 
    106      let principal = getPrincipal(origin.url);
    107      request = initTemporaryOrigin(
    108        origin.persistence,
    109        principal,
    110        /* createIfNonExistent */ true,
    111        continueToNextStepSync
    112      );
    113      yield undefined;
    114 
    115      Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
    116 
    117      ok(!request.result, "Origin directory wasn't created");
    118    }
    119  }
    120 
    121  finishTest();
    122 }