| OLD | NEW |
| 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 that tests listSync on a missing directory. | 5 // Directory listing test that tests listSync on a missing directory. |
| 6 // | 6 // |
| 7 // TODO(7157): Merge this test into directory_test.dart testListNonExistent() | 7 // TODO(7157): Merge this test into directory_test.dart testListNonExistent() |
| 8 // when it no longer crashes on Windows, when issue 7157 is resolved. | 8 // when it no longer crashes on Windows, when issue 7157 is resolved. |
| 9 | 9 |
| 10 import "package:expect/expect.dart"; | 10 import "package:expect/expect.dart"; |
| 11 import "dart:io"; | 11 import "dart:io"; |
| 12 import "dart:isolate"; | 12 import "dart:isolate"; |
| 13 | 13 |
| 14 void testListNonExistent() { | 14 void testListNonExistent() { |
| 15 var keepAlive = new ReceivePort(); | 15 var keepAlive = new ReceivePort(); |
| 16 new Directory("").createTemp().then((d) { | 16 new Directory("").createTemp().then((d) { |
| 17 d.delete().then((ignore) { | 17 d.delete().then((ignore) { |
| 18 Expect.throws(() => d.listSync(), (e) => e is DirectoryIOException); | 18 Expect.throws(() => d.listSync(), (e) => e is DirectoryException); |
| 19 Expect.throws(() => d.listSync(recursive: true), | 19 Expect.throws(() => d.listSync(recursive: true), |
| 20 (e) => e is DirectoryIOException); | 20 (e) => e is DirectoryException); |
| 21 keepAlive.close(); | 21 keepAlive.close(); |
| 22 }); | 22 }); |
| 23 }); | 23 }); |
| 24 } | 24 } |
| 25 | 25 |
| 26 void testListTooLongName() { | 26 void testListTooLongName() { |
| 27 var keepAlive = new ReceivePort(); | 27 var keepAlive = new ReceivePort(); |
| 28 new Directory("").createTemp().then((d) { | 28 new Directory("").createTemp().then((d) { |
| 29 var subDirName = 'subdir'; | 29 var subDirName = 'subdir'; |
| 30 var subDir = new Directory("${d.path}/$subDirName"); | 30 var subDir = new Directory("${d.path}/$subDirName"); |
| 31 subDir.create().then((ignore) { | 31 subDir.create().then((ignore) { |
| 32 // Construct a long string of the form | 32 // Construct a long string of the form |
| 33 // 'tempdir/subdir/../subdir/../subdir'. | 33 // 'tempdir/subdir/../subdir/../subdir'. |
| 34 var buffer = new StringBuffer(); | 34 var buffer = new StringBuffer(); |
| 35 buffer.write(subDir.path); | 35 buffer.write(subDir.path); |
| 36 for (var i = 0; i < 1000; i++) { | 36 for (var i = 0; i < 1000; i++) { |
| 37 buffer.write("/../${subDirName}"); | 37 buffer.write("/../${subDirName}"); |
| 38 } | 38 } |
| 39 var long = new Directory("${buffer.toString()}"); | 39 var long = new Directory("${buffer.toString()}"); |
| 40 Expect.throws(() => long.listSync(), | 40 Expect.throws(() => long.listSync(), |
| 41 (e) => e is DirectoryIOException); | 41 (e) => e is DirectoryException); |
| 42 Expect.throws(() => long.listSync(recursive: true), | 42 Expect.throws(() => long.listSync(recursive: true), |
| 43 (e) => e is DirectoryIOException); | 43 (e) => e is DirectoryException); |
| 44 d.deleteSync(recursive: true); | 44 d.deleteSync(recursive: true); |
| 45 keepAlive.close(); | 45 keepAlive.close(); |
| 46 }); | 46 }); |
| 47 }); | 47 }); |
| 48 } | 48 } |
| 49 | 49 |
| 50 void main() { | 50 void main() { |
| 51 testListNonExistent(); | 51 testListNonExistent(); |
| 52 testListTooLongName(); | 52 testListTooLongName(); |
| 53 } | 53 } |
| OLD | NEW |