Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Unified Diff: tests/standalone/io/parent_test.dart

Issue 26001002: dart:io | Add FileSystemEntity.parent, make File.directory call it. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix Windows tests. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/io/file_system_entity.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/parent_test.dart
diff --git a/tests/standalone/io/parent_test.dart b/tests/standalone/io/parent_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..fc687e3b9fb487b92890cc550045538356522d75
--- /dev/null
+++ b/tests/standalone/io/parent_test.dart
@@ -0,0 +1,127 @@
+// Copyright (c) 2013, 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.
+//
+// Dart test program for testing file I/O.
+
+import 'dart:async';
+import 'dart:convert';
+import 'dart:collection';
+import 'dart:io';
+
+import "package:async_helper/async_helper.dart";
+import "package:expect/expect.dart";
+import "package:path/path.dart";
+
+String tempDirectory;
+
+void main() {
+ if (Platform.isWindows) {
+ testWindowsCases();
+ } else {
+ testPosixCases();
+ }
+ asyncStart();
+ createTempDirectories()
+ .then(testObjects)
+ .whenComplete(() {
+ asyncEnd();
+ new Directory(tempDirectory).delete(recursive: true);
+ });
+}
+
+testPosixCases() {
+ Expect.equals('/dir', FileSystemEntity.parentOf('/dir/file'));
+ Expect.equals('/dir', FileSystemEntity.parentOf('/dir/file/'));
+ Expect.equals('/dir', FileSystemEntity.parentOf('/dir//file//'));
+ Expect.equals('/', FileSystemEntity.parentOf('/dir'));
+ Expect.equals('/', FileSystemEntity.parentOf('/dir///'));
+ Expect.equals('/', FileSystemEntity.parentOf('/'));
+
+ Expect.equals('.', FileSystemEntity.parentOf('file'));
+ Expect.equals('.', FileSystemEntity.parentOf('file//'));
+ Expect.equals('.', FileSystemEntity.parentOf(''));
+ Expect.equals('.', FileSystemEntity.parentOf('..'));
+ Expect.equals('.', FileSystemEntity.parentOf('.'));
+ Expect.equals('.', FileSystemEntity.parentOf(''));
+ Expect.equals('/', FileSystemEntity.parentOf('/'));
+ Expect.equals('/', FileSystemEntity.parentOf('//'));
+ Expect.equals('/', FileSystemEntity.parentOf('//file///'));
+ Expect.equals('dir', FileSystemEntity.parentOf('dir/file'));
+ Expect.equals('dir', FileSystemEntity.parentOf('dir/file/'));
+ Expect.equals('dir', FileSystemEntity.parentOf('dir/file//'));
+ Expect.equals('dir/subdir', FileSystemEntity.parentOf('dir/subdir/file'));
+ Expect.equals('dir//subdir', FileSystemEntity.parentOf('dir//subdir//file/'));
+ Expect.equals('dir/sub.dir',
+ FileSystemEntity.parentOf('dir/sub.dir/fi le///'));
+ Expect.equals('dir/..', FileSystemEntity.parentOf('dir/../file/'));
+ Expect.equals('dir/..', FileSystemEntity.parentOf('dir/../..'));
+ Expect.equals('.', FileSystemEntity.parentOf('./..'));
+ Expect.equals('..', FileSystemEntity.parentOf('../.'));
+}
+
+testWindowsCases() {
+ Expect.equals(r'C:/dir', FileSystemEntity.parentOf(r'C:/dir/file'));
+ Expect.equals(r'C:/dir', FileSystemEntity.parentOf(r'C:/dir/file/'));
+ Expect.equals(r'C:\dir', FileSystemEntity.parentOf(r'C:\dir\file'));
+ Expect.equals(r'C:\dir', FileSystemEntity.parentOf(r'C:\dir\file\'));
+ Expect.equals(r'C:\dir', FileSystemEntity.parentOf(r'C:\dir\\file\\'));
+ Expect.equals(r'C:\', FileSystemEntity.parentOf(r'C:\dir'));
+ Expect.equals(r'C:\', FileSystemEntity.parentOf(r'C:\dir\/\'));
+ Expect.equals(r'C:\', FileSystemEntity.parentOf(r'C:\'));
+ // FileSystemEntity.isAbsolute returns false for 'C:'.
+ Expect.equals(r'.', FileSystemEntity.parentOf(r'C:'));
+
+ Expect.equals(r'\\server\share\dir',
+ FileSystemEntity.parentOf(r'\\server\share\dir\file'));
+ Expect.equals(r'\\server\share\dir',
+ FileSystemEntity.parentOf(r'\\server\share\dir\file\'));
+ Expect.equals(r'\\server\share',
+ FileSystemEntity.parentOf(r'\\server\share\file'));
+ Expect.equals(r'\\server\',
+ FileSystemEntity.parentOf(r'\\server\share'));
+ Expect.equals(r'\\server\',
+ FileSystemEntity.parentOf(r'\\server\share\'));
+ Expect.equals(r'\\server\',
+ FileSystemEntity.parentOf(r'\\server\'));
+ Expect.equals(r'\\server/',
+ FileSystemEntity.parentOf(r'\\server/'));
+ Expect.equals(r'\\serve',
+ FileSystemEntity.parentOf(r'\\serve'));
+
+ Expect.equals(r'.', FileSystemEntity.parentOf(r'file'));
+ Expect.equals(r'.', FileSystemEntity.parentOf(r''));
+ Expect.equals(r'.', FileSystemEntity.parentOf(r'..'));
+ Expect.equals(r'.', FileSystemEntity.parentOf(r'.'));
+ Expect.equals(r'.', FileSystemEntity.parentOf(r''));
+ Expect.equals(r'/', FileSystemEntity.parentOf(r'/'));
+ Expect.equals(r'\', FileSystemEntity.parentOf(r'\'));
+ Expect.equals(r'\', FileSystemEntity.parentOf(r'\file\\/'));
+ Expect.equals(r'dir', FileSystemEntity.parentOf(r'dir\file'));
+ Expect.equals(r'dir', FileSystemEntity.parentOf(r'dir\file\'));
+ Expect.equals(r'dir', FileSystemEntity.parentOf(r'dir/file/'));
+ Expect.equals(r'dir\subdir', FileSystemEntity.parentOf(r'dir\subdir\file'));
+ Expect.equals(r'dir\sub.dir',
+ FileSystemEntity.parentOf(r'dir\sub.dir\fi le'));
+}
+
+Future createTempDirectories() {
+ return Directory.systemTemp.createTemp('dart_parent_').then((dir) {
+ tempDirectory = dir.path;
+ }).then((_) => new File(join(tempDirectory, 'file1')).create())
+ .then((_) => new Link(join(tempDirectory, 'link1')).create('.'))
+ .then((_) => new Directory(join(tempDirectory, 'dir1')).create());
+}
+
+testObjects(var ignored) {
+ ['file1', 'link1', 'dir1', 'file2', 'link2', 'dir2'].map(testPath);
+}
+
+testPath(String path) {
+ Expect.equals(tempDirectory,
+ new File(join(tempDirectory, path)).parent.path);
+ Expect.equals(tempDirectory,
+ new Link(join(tempDirectory, path)).parent.path);
+ Expect.equals(tempDirectory,
+ new Directory(join(tempDirectory, path)).parent.path);
+}
« no previous file with comments | « sdk/lib/io/file_system_entity.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698