/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function run_test() {
// Create the base directory.
let base = Services.dirsvc.get(
"TmpD", Ci.nsIFile);
base.append(
"renameTesting");
if (base.exists()) {
base.remove(
true);
}
base.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt(
"0777", 8));
// Create a sub directory under the base.
let subdir = base.clone();
subdir.append(
"subdir");
subdir.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt(
"0777", 8));
// Create a file under the sub directory.
let tempFile = subdir.clone();
tempFile.append(
"file0.txt");
tempFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt(
"0777", 8));
// Test renameTo in the base directory
tempFile.renameTo(
null,
"file1.txt");
Assert.ok(exists(subdir,
"file1.txt"));
// Test moving across directories
tempFile = subdir.clone();
tempFile.append(
"file1.txt");
tempFile.renameTo(base,
"");
Assert.ok(exists(base,
"file1.txt"));
// Test moving across directories and renaming at the same time
tempFile = base.clone();
tempFile.append(
"file1.txt");
tempFile.renameTo(subdir,
"file2.txt");
Assert.ok(exists(subdir,
"file2.txt"));
// Test moving a directory
subdir.renameTo(base,
"renamed");
Assert.ok(exists(base,
"renamed"));
let renamed = base.clone();
renamed.append(
"renamed");
Assert.ok(exists(renamed,
"file2.txt"));
base.remove(
true);
}
function exists(parent, filename) {
let file = parent.clone();
file.append(filename);
return file.exists();
}