mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-17 00:24:30 +00:00
80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const ARCHIVE = "zips/zen.zip";
|
|
const SUBDIR = "zen";
|
|
const SYMLINK = "beyond_link";
|
|
const ENTRIES = ["beyond.txt", SYMLINK, "waterwood.txt"];
|
|
|
|
Components.utils.import("resource://gre/modules/ZipUtils.jsm");
|
|
Components.utils.import("resource://gre/modules/FileUtils.jsm");
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
|
|
const archive = do_get_file(ARCHIVE, false);
|
|
const dir = do_get_profile().clone();
|
|
dir.append("test_ZipUtils");
|
|
|
|
function run_test() {
|
|
run_next_test();
|
|
}
|
|
|
|
function ensureExtracted(target) {
|
|
target.append(SUBDIR);
|
|
do_check_true(target.exists());
|
|
|
|
for (let i = 0; i < ENTRIES.length; i++) {
|
|
let entry = target.clone();
|
|
entry.append(ENTRIES[i]);
|
|
do_print("ENTRY " + entry.path);
|
|
do_check_true(entry.exists());
|
|
}
|
|
}
|
|
|
|
function ensureHasSymlink(target) {
|
|
// Just bail out if running on Windows, since symlinks do not exists there.
|
|
if (Services.appinfo.OS === "WINNT") {
|
|
return;
|
|
}
|
|
|
|
let entry = target.clone();
|
|
entry.append(SYMLINK);
|
|
|
|
do_print("ENTRY " + entry.path);
|
|
do_check_true(entry.exists());
|
|
do_check_true(entry.isSymlink());
|
|
}
|
|
|
|
add_task(function test_extractFiles() {
|
|
let target = dir.clone();
|
|
target.append("test_extractFiles");
|
|
|
|
try {
|
|
ZipUtils.extractFiles(archive, target);
|
|
} catch(e) {
|
|
do_throw("Failed to extract synchronously!");
|
|
}
|
|
|
|
ensureExtracted(target);
|
|
ensureHasSymlink(target);
|
|
});
|
|
|
|
add_task(function* test_extractFilesAsync() {
|
|
let target = dir.clone();
|
|
target.append("test_extractFilesAsync");
|
|
target.create(Components.interfaces.nsIFile.DIRECTORY_TYPE,
|
|
FileUtils.PERMS_DIRECTORY);
|
|
|
|
yield ZipUtils.extractFilesAsync(archive, target).then(
|
|
function success() {
|
|
do_print("SUCCESS");
|
|
ensureExtracted(target);
|
|
},
|
|
function failure() {
|
|
do_print("FAILURE");
|
|
do_throw("Failed to extract asynchronously!");
|
|
}
|
|
);
|
|
});
|