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

Side by Side Diff: tests/standalone/io/directory_chdir_test.dart

Issue 23702037: Fix error handling when current working directory is deleted. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix type of _Directory._current Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/io/directory_impl.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // Directory listing test. 5 // Directory listing test.
6 6
7 7
8 import "dart:io"; 8 import "dart:io";
9 9
10 import "package:async_helper/async_helper.dart"; 10 import "package:async_helper/async_helper.dart";
11 import "package:expect/expect.dart"; 11 import "package:expect/expect.dart";
12 12
13 testChangeDirectory() { 13 testChangeDirectory() {
14 asyncStart(); 14 asyncStart();
15 new Directory("").createTemp().then((temp) { 15 new Directory("").createTemp().then((temp) {
16 var initialCurrent = Directory.current; 16 var initialCurrent = Directory.current;
17 Directory.current = temp; 17 Directory.current = temp;
18 var newCurrent = Directory.current; 18 var newCurrent = Directory.current;
19 new File("111").createSync(); 19 new File("111").createSync();
20 var dir = new Directory(newCurrent.path + Platform.pathSeparator + "222"); 20 var dir = new Directory(newCurrent.path + Platform.pathSeparator + "222");
21 dir.createSync(); 21 dir.createSync();
22 Directory.current = dir; 22 Directory.current = dir;
23 new File("333").createSync(); 23 new File("333").createSync();
24 Expect.isTrue(new File("333").existsSync()); 24 Expect.isTrue(new File("333").existsSync());
25 Expect.isTrue(new File("../111").existsSync()); 25 Expect.isTrue(new File("../111").existsSync());
26 Directory.current = ".."; 26 Directory.current = "..";
27 Expect.isTrue(new File("111").existsSync()); 27 Expect.isTrue(new File("111").existsSync());
28 Expect.isTrue(new File("222/333").existsSync()); 28 Expect.isTrue(new File("222/333").existsSync());
29 // Deleting the current working directory causes an error.
30 // On Windows, the deletion fails, and on non-Windows, the getter fails.
31 Expect.throws(() {
32 temp.deleteSync(recursive: true);
33 Directory.current;
34 }, (e) => e is DirectoryException);
29 Directory.current = initialCurrent; 35 Directory.current = initialCurrent;
30 temp.deleteSync(recursive: true); 36 Directory.current;
37 if (temp.existsSync()) temp.deleteSync(recursive: true);
31 asyncEnd(); 38 asyncEnd();
32 }); 39 });
33 } 40 }
34 41
35 42
36 testChangeDirectoryIllegalArguments() { 43 testChangeDirectoryIllegalArguments() {
37 Expect.throws(() => Directory.current = 1, (e) => e is ArgumentError); 44 Expect.throws(() => Directory.current = 1, (e) => e is ArgumentError);
38 Expect.throws(() => Directory.current = 111111111111111111111111111111111111, 45 Expect.throws(() => Directory.current = 111111111111111111111111111111111111,
39 (e) => e is ArgumentError); 46 (e) => e is ArgumentError);
40 Expect.throws(() => Directory.current = true, (e) => e is ArgumentError); 47 Expect.throws(() => Directory.current = true, (e) => e is ArgumentError);
41 Expect.throws(() => Directory.current = [], (e) => e is ArgumentError); 48 Expect.throws(() => Directory.current = [], (e) => e is ArgumentError);
42 Expect.throws(() => Directory.current = new File("xxx"), 49 Expect.throws(() => Directory.current = new File("xxx"),
43 (e) => e is ArgumentError); 50 (e) => e is ArgumentError);
44 } 51 }
45 52
46 53
47 main() { 54 main() {
48 testChangeDirectory(); 55 testChangeDirectory();
49 testChangeDirectoryIllegalArguments(); 56 testChangeDirectoryIllegalArguments();
50 } 57 }
OLDNEW
« no previous file with comments | « sdk/lib/io/directory_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698