tor-browser

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

test_upgradeStorageFrom0_0.js (3923B)


      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 UpgradeStorageFrom0_0To1_0 method.
      8 */
      9 
     10 function* testSteps() {
     11  const origins = [
     12    {
     13      path: "storage/default/1007+f+app+++system.gaiamobile.org",
     14      obsolete: true,
     15    },
     16 
     17    {
     18      path: "storage/default/1007+t+https+++developer.cdn.mozilla.net",
     19      obsolete: true,
     20    },
     21 
     22    {
     23      path: "storage/default/http+++www.mozilla.org",
     24      obsolete: false,
     25      url: "http://www.mozilla.org",
     26      persistence: "default",
     27    },
     28  ];
     29 
     30  const storageFileName = "storage.sqlite";
     31  const metadataFileName = ".metadata";
     32  const metadata2FileName = ".metadata-v2";
     33 
     34  const packages = [
     35    // Storage used by FF 36-48 (storage/default/ directory, but no
     36    // storage.sqlite and no .metadata-v2 files).
     37    "version0_0_profile",
     38    "../defaultStorageDirectory_shared",
     39  ];
     40 
     41  info("Clearing");
     42 
     43  clear(continueToNextStepSync);
     44  yield undefined;
     45 
     46  info("Verifying storage");
     47 
     48  verifyStorage(packages, "beforeInstall");
     49 
     50  info("Installing packages");
     51 
     52  installPackages(packages);
     53 
     54  info("Verifying storage");
     55 
     56  verifyStorage(packages, "afterInstall");
     57 
     58  info("Checking storage file");
     59 
     60  let storageFile = getRelativeFile(storageFileName);
     61 
     62  let exists = storageFile.exists();
     63  ok(!exists, "Storage file doesn't exist");
     64 
     65  info("Checking origin directories");
     66 
     67  for (let origin of origins) {
     68    let originDir = getRelativeFile(origin.path);
     69 
     70    exists = originDir.exists();
     71    ok(exists, "Origin directory does exist");
     72 
     73    let metadataFile = originDir.clone();
     74    metadataFile.append(metadataFileName);
     75 
     76    exists = metadataFile.exists();
     77    ok(exists, "Metadata file does exist");
     78 
     79    let metadata2File = originDir.clone();
     80    metadata2File.append(metadata2FileName);
     81 
     82    exists = metadata2File.exists();
     83    ok(!exists, "Metadata file doesn't exist");
     84  }
     85 
     86  info("Initializing");
     87 
     88  let request = init(continueToNextStepSync);
     89  yield undefined;
     90 
     91  Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
     92 
     93  info("Verifying storage");
     94 
     95  verifyStorage(packages, "afterInit");
     96 
     97  // TODO: Remove this block once temporary storage initialization is able to
     98  //       ignore unknown directories.
     99  getRelativeFile("storage/default/invalid+++example.com").remove(false);
    100  getRelativeFile("storage/temporary/invalid+++example.com").remove(false);
    101 
    102  exists = storageFile.exists();
    103  ok(exists, "Storage file does exist");
    104 
    105  info("Checking origin directories");
    106 
    107  for (let origin of origins) {
    108    let originDir = getRelativeFile(origin.path);
    109 
    110    exists = originDir.exists();
    111    if (origin.obsolete) {
    112      ok(!exists, "Origin directory doesn't exist");
    113    } else {
    114      ok(exists, "Origin directory does exist");
    115 
    116      let metadataFile = originDir.clone();
    117      metadataFile.append(metadataFileName);
    118 
    119      exists = metadataFile.exists();
    120      ok(exists, "Metadata file does exist");
    121 
    122      let metadata2File = originDir.clone();
    123      metadata2File.append(metadata2FileName);
    124 
    125      exists = metadata2File.exists();
    126      ok(exists, "Metadata file does exist");
    127    }
    128  }
    129 
    130  info("Initializing temporary storage");
    131 
    132  request = initTemporaryStorage(continueToNextStepSync);
    133  yield undefined;
    134 
    135  Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
    136 
    137  info("Initializing origins");
    138 
    139  for (const origin of origins) {
    140    if (!origin.obsolete) {
    141      info("Initializing origin");
    142 
    143      let principal = getPrincipal(origin.url);
    144      request = initTemporaryOrigin(
    145        origin.persistence,
    146        principal,
    147        /* createIfNonExistent */ true,
    148        continueToNextStepSync
    149      );
    150      yield undefined;
    151 
    152      Assert.equal(request.resultCode, NS_OK, "Initialization succeeded");
    153 
    154      ok(!request.result, "Origin directory wasn't created");
    155    }
    156  }
    157 
    158  finishTest();
    159 }