Index: utils/tests/pub/io_test.dart |
diff --git a/utils/tests/pub/io_test.dart b/utils/tests/pub/io_test.dart |
deleted file mode 100644 |
index 54e165f6c2228e26c496342e27feab16aa7f7182..0000000000000000000000000000000000000000 |
--- a/utils/tests/pub/io_test.dart |
+++ /dev/null |
@@ -1,280 +0,0 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library io_test; |
- |
-import 'dart:io'; |
- |
-import 'package:pathos/path.dart' as path; |
-import 'package:unittest/unittest.dart'; |
- |
-import '../../pub/io.dart'; |
-import '../../pub/utils.dart'; |
-import 'test_pub.dart'; |
- |
-main() { |
- initConfig(); |
- |
- group('listDir', () { |
- test('lists a simple directory non-recursively', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- writeTextFile(path.join(temp, 'file2.txt'), ''); |
- createDir(path.join(temp, 'subdir')); |
- writeTextFile(path.join(temp, 'subdir', 'file3.txt'), ''); |
- |
- expect(listDir(temp), unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'file2.txt'), |
- path.join(temp, 'subdir') |
- ])); |
- }), completes); |
- }); |
- |
- test('lists a simple directory recursively', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- writeTextFile(path.join(temp, 'file2.txt'), ''); |
- createDir(path.join(temp, 'subdir')); |
- writeTextFile(path.join(temp, 'subdir', 'file3.txt'), ''); |
- |
- expect(listDir(temp, recursive: true), unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'file2.txt'), |
- path.join(temp, 'subdir'), |
- path.join(temp, 'subdir', 'file3.txt'), |
- ])); |
- }), completes); |
- }); |
- |
- test('ignores hidden files by default', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- writeTextFile(path.join(temp, 'file2.txt'), ''); |
- writeTextFile(path.join(temp, '.file3.txt'), ''); |
- createDir(path.join(temp, '.subdir')); |
- writeTextFile(path.join(temp, '.subdir', 'file3.txt'), ''); |
- |
- expect(listDir(temp, recursive: true), unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'file2.txt') |
- ])); |
- }), completes); |
- }); |
- |
- test('includes hidden files when told to', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- writeTextFile(path.join(temp, 'file2.txt'), ''); |
- writeTextFile(path.join(temp, '.file3.txt'), ''); |
- createDir(path.join(temp, '.subdir')); |
- writeTextFile(path.join(temp, '.subdir', 'file3.txt'), ''); |
- |
- expect(listDir(temp, recursive: true, includeHidden: true), |
- unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'file2.txt'), |
- path.join(temp, '.file3.txt'), |
- path.join(temp, '.subdir'), |
- path.join(temp, '.subdir', 'file3.txt') |
- ])); |
- }), completes); |
- }); |
- |
- test('returns the unresolved paths for symlinks', () { |
- expect(withTempDir((temp) { |
- var dirToList = path.join(temp, 'dir-to-list'); |
- createDir(path.join(temp, 'dir1')); |
- writeTextFile(path.join(temp, 'dir1', 'file1.txt'), ''); |
- createDir(path.join(temp, 'dir2')); |
- writeTextFile(path.join(temp, 'dir2', 'file2.txt'), ''); |
- createDir(dirToList); |
- createSymlink( |
- path.join(temp, 'dir1'), |
- path.join(dirToList, 'linked-dir1')); |
- createDir(path.join(dirToList, 'subdir')); |
- createSymlink( |
- path.join(temp, 'dir2'), |
- path.join(dirToList, 'subdir', 'linked-dir2')); |
- |
- expect(listDir(dirToList, recursive: true), unorderedEquals([ |
- path.join(dirToList, 'linked-dir1'), |
- path.join(dirToList, 'linked-dir1', 'file1.txt'), |
- path.join(dirToList, 'subdir'), |
- path.join(dirToList, 'subdir', 'linked-dir2'), |
- path.join(dirToList, 'subdir', 'linked-dir2', 'file2.txt'), |
- ])); |
- }), completes); |
- }); |
- |
- test('works with recursive symlinks', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- createSymlink(temp, path.join(temp, 'linkdir')); |
- |
- expect(listDir(temp, recursive: true), unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'linkdir') |
- ])); |
- }), completes); |
- }); |
- |
- test('treats a broken symlink as a file', () { |
- expect(withTempDir((temp) { |
- writeTextFile(path.join(temp, 'file1.txt'), ''); |
- createDir(path.join(temp, 'dir')); |
- createSymlink(path.join(temp, 'dir'), path.join(temp, 'linkdir')); |
- deleteEntry(path.join(temp, 'dir')); |
- |
- expect(listDir(temp, recursive: true), unorderedEquals([ |
- path.join(temp, 'file1.txt'), |
- path.join(temp, 'linkdir') |
- ])); |
- }), completes); |
- }); |
- }); |
- |
- testExistencePredicate("entryExists", entryExists, |
- forFile: true, |
- forFileSymlink: true, |
- forMultiLevelFileSymlink: true, |
- forDirectory: true, |
- forDirectorySymlink: true, |
- forMultiLevelDirectorySymlink: true, |
- forBrokenSymlink: true, |
- forMultiLevelBrokenSymlink: true); |
- |
- testExistencePredicate("linkExists", linkExists, |
- forFile: false, |
- forFileSymlink: true, |
- forMultiLevelFileSymlink: true, |
- forDirectory: false, |
- forDirectorySymlink: true, |
- forMultiLevelDirectorySymlink: true, |
- forBrokenSymlink: true, |
- forMultiLevelBrokenSymlink: true); |
- |
- testExistencePredicate("fileExists", fileExists, |
- forFile: true, |
- forFileSymlink: true, |
- forMultiLevelFileSymlink: true, |
- forDirectory: false, |
- forDirectorySymlink: false, |
- forMultiLevelDirectorySymlink: false, |
- forBrokenSymlink: false, |
- forMultiLevelBrokenSymlink: false); |
- |
- testExistencePredicate("dirExists", dirExists, |
- forFile: false, |
- forFileSymlink: false, |
- forMultiLevelFileSymlink: false, |
- forDirectory: true, |
- forDirectorySymlink: true, |
- forMultiLevelDirectorySymlink: true, |
- forBrokenSymlink: false, |
- forMultiLevelBrokenSymlink: false); |
-} |
- |
-void testExistencePredicate(String name, bool predicate(String path), |
- {bool forFile, |
- bool forFileSymlink, |
- bool forMultiLevelFileSymlink, |
- bool forDirectory, |
- bool forDirectorySymlink, |
- bool forMultiLevelDirectorySymlink, |
- bool forBrokenSymlink, |
- bool forMultiLevelBrokenSymlink}) { |
- group(name, () { |
- test('returns $forFile for a file', () { |
- expect(withTempDir((temp) { |
- var file = path.join(temp, "test.txt"); |
- writeTextFile(file, "contents"); |
- expect(predicate(file), equals(forFile)); |
- }), completes); |
- }); |
- |
- test('returns $forDirectory for a directory', () { |
- expect(withTempDir((temp) { |
- var file = path.join(temp, "dir"); |
- createDir(file); |
- expect(predicate(file), equals(forDirectory)); |
- }), completes); |
- }); |
- |
- test('returns $forDirectorySymlink for a symlink to a directory', () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "dir"); |
- var symlinkPath = path.join(temp, "linkdir"); |
- createDir(targetPath); |
- createSymlink(targetPath, symlinkPath); |
- expect(predicate(symlinkPath), equals(forDirectorySymlink)); |
- }), completes); |
- }); |
- |
- test('returns $forMultiLevelDirectorySymlink for a multi-level symlink to ' |
- 'a directory', () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "dir"); |
- var symlink1Path = path.join(temp, "link1dir"); |
- var symlink2Path = path.join(temp, "link2dir"); |
- createDir(targetPath); |
- createSymlink(targetPath, symlink1Path); |
- createSymlink(symlink1Path, symlink2Path); |
- expect(predicate(symlink2Path), |
- equals(forMultiLevelDirectorySymlink)); |
- }), completes); |
- }); |
- |
- test('returns $forBrokenSymlink for a broken symlink', () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "dir"); |
- var symlinkPath = path.join(temp, "linkdir"); |
- createDir(targetPath); |
- createSymlink(targetPath, symlinkPath); |
- deleteEntry(targetPath); |
- expect(predicate(symlinkPath), equals(forBrokenSymlink)); |
- }), completes); |
- }); |
- |
- test('returns $forMultiLevelBrokenSymlink for a multi-level broken symlink', |
- () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "dir"); |
- var symlink1Path = path.join(temp, "link1dir"); |
- var symlink2Path = path.join(temp, "link2dir"); |
- createDir(targetPath); |
- createSymlink(targetPath, symlink1Path); |
- createSymlink(symlink1Path, symlink2Path); |
- deleteEntry(targetPath); |
- expect(predicate(symlink2Path), equals(forMultiLevelBrokenSymlink)); |
- }), completes); |
- }); |
- |
- // Windows doesn't support symlinking to files. |
- if (Platform.operatingSystem != 'windows') { |
- test('returns $forFileSymlink for a symlink to a file', () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "test.txt"); |
- var symlinkPath = path.join(temp, "link.txt"); |
- writeTextFile(targetPath, "contents"); |
- createSymlink(targetPath, symlinkPath); |
- expect(predicate(symlinkPath), equals(forFileSymlink)); |
- }), completes); |
- }); |
- |
- test('returns $forMultiLevelFileSymlink for a multi-level symlink to a ' |
- 'file', () { |
- expect(withTempDir((temp) { |
- var targetPath = path.join(temp, "test.txt"); |
- var symlink1Path = path.join(temp, "link1.txt"); |
- var symlink2Path = path.join(temp, "link2.txt"); |
- writeTextFile(targetPath, "contents"); |
- createSymlink(targetPath, symlink1Path); |
- createSymlink(symlink1Path, symlink2Path); |
- expect(predicate(symlink2Path), equals(forMultiLevelFileSymlink)); |
- }), completes); |
- }); |
- } |
- }); |
-} |