Bug 1621916 - Simplify test_unknownFiles.js by merging stage 1 and stage 2; r=dom-workers-and-storage-reviewers,ttung

We plan to replace this test with more thorough tests in bug 1620277, but for
now it's still needed and will be part of a short term fix for ignoring
unknown files and directories.

Differential Revision: https://phabricator.services.mozilla.com/D75948
This commit is contained in:
Jan Varga 2020-05-27 15:02:04 +00:00
Родитель 71202aa381
Коммит 1345656755
1 изменённых файлов: 36 добавлений и 66 удалений

Просмотреть файл

@ -3,6 +3,12 @@
* http://creativecommons.org/publicdomain/zero/1.0/ * http://creativecommons.org/publicdomain/zero/1.0/
*/ */
/**
* This test is mainly to verify that initStorageAndOrigin, getUsageForPrincipal
* and clearStoragesForPrincipal are able to ignore unknown files and
* directories in the storage/default directory and its subdirectories.
*/
function* testSteps() { function* testSteps() {
const exampleUrl = "http://example.com"; const exampleUrl = "http://example.com";
const unknownRepoFile = { const unknownRepoFile = {
@ -11,12 +17,12 @@ function* testSteps() {
}; };
const unknownOriginFile = { const unknownOriginFile = {
path: "storage/permanent/chrome/foo.bar", path: "storage/default/http+++foobar.com/foo.bar",
dir: false, dir: false,
}; };
const unknownOriginDirectory = { const unknownOriginDirectory = {
path: "storage/permanent/chrome/foo", path: "storage/default/http+++foobar.com/foo",
dir: true, dir: true,
}; };
@ -34,8 +40,6 @@ function* testSteps() {
let file, request; let file, request;
info("Stage 1 - Testing unknown repo file found during tempo storage init");
info("Initializing"); info("Initializing");
request = init(continueToNextStepSync); request = init(continueToNextStepSync);
@ -43,95 +47,61 @@ function* testSteps() {
ok(request.resultCode == NS_OK, "Initialization succeeded"); ok(request.resultCode == NS_OK, "Initialization succeeded");
info("Creating unknown file"); for (let unknownFile of [
unknownRepoFile,
file = createFile(unknownRepoFile); unknownOriginFile,
unknownOriginDirectory,
info("Initializing origin"); ]) {
let principal = getPrincipal(exampleUrl);
request = initStorageAndOrigin(principal, "default", continueToNextStepSync);
yield undefined;
ok(
request.resultCode == NS_OK,
"Initialization succeeded even though there are unknown files in " +
"repositories"
);
ok(request.result === true, "The origin directory was created");
info("Clearing origin");
request = clearOrigin(principal, "default", continueToNextStepSync);
yield undefined;
ok(request.resultCode == NS_OK, "Clearing succeeded");
info("Clearing");
request = clear(continueToNextStepSync);
yield undefined;
ok(request.resultCode == NS_OK, "Clearing succeeded");
info(
"Stage 2 - Testing unknown origin files and unknown origin directories " +
"found during origin init"
);
info("Initializing");
request = init(continueToNextStepSync);
yield undefined;
ok(request.resultCode == NS_OK, "Initialization succeeded");
for (let unknownFile of [unknownOriginFile, unknownOriginDirectory]) {
info("Creating unknown file"); info("Creating unknown file");
file = createFile(unknownFile); file = createFile(unknownFile);
info("Initializing origin"); info("Initializing origin");
request = initStorageAndChromeOrigin("persistent", continueToNextStepSync); const principal = getPrincipal(exampleUrl);
request = initStorageAndOrigin(
principal,
"default",
continueToNextStepSync
);
yield undefined; yield undefined;
ok( ok(
request.resultCode == NS_OK, request.resultCode == NS_OK,
"Initialization succeeded even though there are unknown files or " + "Initialization succeeded even though there are unknown files or " +
"directories in origin directories" "directories"
); );
ok(request.result === false, "The origin directory wasn't created"); ok(request.result === true, "The origin directory was created");
info("Getting usage"); info("Getting origin usage");
request = getCurrentUsage(continueToNextStepSync); request = getOriginUsage(principal);
requestFinished(request).then(continueToNextStepSync);
yield undefined; yield undefined;
ok(
request.resultCode == NS_OK,
"Get usage succeeded even though there are unknown files or directories" +
"in origin directories"
);
ok(request.result, "The request result is not null"); ok(request.result, "The request result is not null");
ok(request.result.usage === 0, "The usage was 0"); ok(request.result.usage === 0, "The usage was 0");
ok(request.result.fileUsage === 0, "The fileUsage was 0"); ok(request.result.fileUsage === 0, "The fileUsage was 0");
file.remove(/* recursive */ false); file.remove(/* recursive */ false);
info("Getting usage"); info("Getting origin usage");
request = getCurrentUsage(continueToNextStepSync); request = getOriginUsage(principal);
requestFinished(request).then(continueToNextStepSync);
yield undefined; yield undefined;
ok(request.resultCode == NS_OK, "Get usage succeeded");
ok(request.result, "The request result is not null"); ok(request.result, "The request result is not null");
ok(request.result.usage === 0, "The usage was 0"); ok(request.result.usage === 0, "The usage was 0");
ok(request.result.fileUsage === 0, "The fileUsage was 0"); ok(request.result.fileUsage === 0, "The fileUsage was 0");
info("Initializing origin"); info("Initializing origin");
request = initStorageAndChromeOrigin("persistent", continueToNextStepSync); request = initStorageAndOrigin(
principal,
"default",
continueToNextStepSync
);
yield undefined; yield undefined;
ok(request.resultCode == NS_OK, "Initialization succeeded"); ok(request.resultCode == NS_OK, "Initialization succeeded");
@ -139,19 +109,19 @@ function* testSteps() {
file = createFile(unknownFile); file = createFile(unknownFile);
info("Getting usage"); info("Getting origin usage");
request = getCurrentUsage(continueToNextStepSync); request = getOriginUsage(principal);
requestFinished(request).then(continueToNextStepSync);
yield undefined; yield undefined;
ok(request.resultCode == NS_OK, "Get usage succeeded");
ok(request.result, "The request result is not null"); ok(request.result, "The request result is not null");
ok(request.result.usage === 0, "The usage was 0"); ok(request.result.usage === 0, "The usage was 0");
ok(request.result.fileUsage === 0, "The fileUsage was 0"); ok(request.result.fileUsage === 0, "The fileUsage was 0");
info("Clearing origin"); info("Clearing origin");
request = clearChromeOrigin(continueToNextStepSync); request = clearOrigin(principal, "default", continueToNextStepSync);
yield undefined; yield undefined;
ok(request.resultCode == NS_OK, "Clearing succeeded"); ok(request.resultCode == NS_OK, "Clearing succeeded");