mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-15 17:24:27 +00:00
61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
function run_test() {
|
|
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
|
|
startupManager();
|
|
run_next_test();
|
|
}
|
|
|
|
add_task(function* () {
|
|
let profileDir = OS.Constants.Path.profileDir;
|
|
let trashDir = OS.Path.join(profileDir, "extensions", "trash");
|
|
let testFile = OS.Path.join(trashDir, "test.txt");
|
|
|
|
yield OS.File.makeDir(trashDir, {
|
|
from: profileDir,
|
|
ignoreExisting: true
|
|
});
|
|
|
|
let trashDirExists = yield OS.File.exists(trashDir);
|
|
ok(trashDirExists, "trash directory should have been created");
|
|
|
|
let file = yield OS.File.open(testFile, {create: true}, {winShare: 0});
|
|
let fileExists = yield OS.File.exists(testFile);
|
|
ok(fileExists, "test.txt should have been created in " + trashDir);
|
|
|
|
let promiseInstallStatus = new Promise((resolve, reject) => {
|
|
let listener = {
|
|
onInstallFailed: function() {
|
|
AddonManager.removeInstallListener(listener);
|
|
reject("extension installation should not have failed");
|
|
},
|
|
onInstallEnded: function() {
|
|
AddonManager.removeInstallListener(listener);
|
|
ok(true, "extension installation should not have failed");
|
|
resolve();
|
|
}
|
|
};
|
|
|
|
AddonManager.addInstallListener(listener);
|
|
});
|
|
|
|
yield promiseInstallAllFiles([do_get_addon("test_bootstrap1_1")]);
|
|
|
|
// The testFile should still exist at this point because we have not
|
|
// yet closed the file handle and as a result, Windows cannot remove it.
|
|
fileExists = yield OS.File.exists(testFile);
|
|
ok(fileExists, "test.txt should still exist");
|
|
|
|
// Wait for the AddonManager to tell us if the installation of the extension
|
|
// succeeded or not.
|
|
yield promiseInstallStatus;
|
|
|
|
// Cleanup
|
|
yield promiseShutdownManager();
|
|
yield file.close();
|
|
yield OS.File.remove(testFile);
|
|
yield OS.File.removeDir(trashDir);
|
|
});
|