1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* -*- 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/. */
- var Cc = Components.classes;
- var Ci = Components.interfaces;
- function run_test()
- {
- // Create the base directory.
- let base = Cc['@mozilla.org/file/directory_service;1']
- .getService(Ci.nsIProperties)
- .get('TmpD', Ci.nsILocalFile);
- 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');
- do_check_true(exists(subdir, 'file1.txt'));
- // Test moving across directories
- tempFile = subdir.clone();
- tempFile.append('file1.txt');
- tempFile.renameTo(base, '');
- do_check_true(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');
- do_check_true(exists(subdir, 'file2.txt'));
- // Test moving a directory
- subdir.renameTo(base, 'renamed');
- do_check_true(exists(base, 'renamed'));
- let renamed = base.clone();
- renamed.append('renamed');
- do_check_true(exists(renamed, 'file2.txt'));
- base.remove(true);
- }
- function exists(parent, filename) {
- let file = parent.clone();
- file.append(filename);
- return file.exists();
- }
|