summaryrefslogtreecommitdiffstats
path: root/dom/quota/test/xpcshell/test_allowListFiles.js
blob: 04c64c2ef5682621d96b2198d0adea46064d235e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 */

/**
 * This test is mainly to verify thoes unexpected files are in the allow list of
 * QuotaManager. They aren't expected in the repository but if there are,
 * QuotaManager shouldn't fail to initialize an origin and getting usage, though
 * those files aren't managed by QuotaManager.
 */

async function testSteps() {
  const allowListFiles = [
    ".dot-file",
    "desktop.ini",
    "Desktop.ini",
    "Thumbs.db",
    "thumbs.db",
  ];

  for (let allowListFile of allowListFiles) {
    info("Testing " + allowListFile + " in the repository");

    info("Initializing");

    let request = init();
    await requestFinished(request);

    info("Creating unknown files");

    for (let dir of ["persistenceType dir", "origin dir"]) {
      let dirPath =
        dir == "persistenceType dir"
          ? "storage/default/"
          : "storage/default/http+++example.com/";
      let file = getRelativeFile(dirPath + allowListFile);
      file.create(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt("0644", 8));
    }

    info("Initializing temporary storage");

    request = initTemporaryStorage();
    await requestFinished(request);

    info("Resetting");

    request = reset();
    await requestFinished(request);

    info("Getting usage");

    request = getCurrentUsage(continueToNextStepSync);
    await requestFinished(request);

    info("Clearing");

    request = clear();
    await requestFinished(request);
  }
}