forked from mirrors/gecko-dev
77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const { bytesToFuzzyKilobytes } = ChromeUtils.importESModule(
|
|
"resource:///modules/backup/BackupResource.sys.mjs"
|
|
);
|
|
|
|
const EXPECTED_KILOBYTES_FOR_XULSTORE = 1;
|
|
|
|
/**
|
|
* Tests that BackupService.getFileSize will get the size of a file in kilobytes.
|
|
*/
|
|
add_task(async function test_getFileSize() {
|
|
let file = do_get_file("data/test_xulstore.json");
|
|
|
|
let testFilePath = PathUtils.join(PathUtils.profileDir, "test_xulstore.json");
|
|
|
|
await IOUtils.copy(file.path, PathUtils.profileDir);
|
|
|
|
let size = await BackupResource.getFileSize(testFilePath);
|
|
|
|
Assert.equal(
|
|
size,
|
|
EXPECTED_KILOBYTES_FOR_XULSTORE,
|
|
"Size of the test_xulstore.json is rounded up to the nearest kilobyte."
|
|
);
|
|
|
|
await IOUtils.remove(testFilePath);
|
|
});
|
|
|
|
/**
|
|
* Tests that BackupService.getDirectorySize will get the total size of all the files in a directory and it's children in kilobytes.
|
|
*/
|
|
add_task(async function test_getDirectorySize() {
|
|
let file = do_get_file("data/test_xulstore.json");
|
|
|
|
// Create a test directory with the test json file in it.
|
|
let testDir = PathUtils.join(PathUtils.profileDir, "testDir");
|
|
await IOUtils.makeDirectory(testDir);
|
|
await IOUtils.copy(file.path, testDir);
|
|
|
|
// Create another test directory inside of that one.
|
|
let nestedTestDir = PathUtils.join(testDir, "testDir");
|
|
await IOUtils.makeDirectory(nestedTestDir);
|
|
await IOUtils.copy(file.path, nestedTestDir);
|
|
|
|
let size = await BackupResource.getDirectorySize(testDir);
|
|
|
|
Assert.equal(
|
|
size,
|
|
EXPECTED_KILOBYTES_FOR_XULSTORE * 2,
|
|
`Total size of the directory is rounded up to the nearest kilobyte
|
|
and is equal to twice the size of the test_xulstore.json file`
|
|
);
|
|
|
|
await IOUtils.remove(testDir, { recursive: true });
|
|
});
|
|
|
|
/**
|
|
* Tests that bytesToFuzzyKilobytes will convert bytes to kilobytes
|
|
* and round up to the nearest tenth kilobyte.
|
|
*/
|
|
add_task(async function test_bytesToFuzzyKilobytes() {
|
|
let largeSize = bytesToFuzzyKilobytes(1234000);
|
|
|
|
Assert.equal(
|
|
largeSize,
|
|
1230,
|
|
"1234 bytes is rounded up to the nearest tenth kilobyte, 1230"
|
|
);
|
|
|
|
let smallSize = bytesToFuzzyKilobytes(3);
|
|
|
|
Assert.equal(smallSize, 1, "Sizes under 10 kilobytes return 1 kilobyte");
|
|
});
|