OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 import "dart:io"; | 7 import "dart:io"; |
8 import "dart:isolate"; | 8 import "dart:isolate"; |
9 | 9 |
10 class DirectoryTest { | 10 class DirectoryTest { |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 var long = new Directory("${buffer.toString()}"); | 136 var long = new Directory("${buffer.toString()}"); |
137 setupListHandlers(long.list()); | 137 setupListHandlers(long.list()); |
138 setupListHandlers(long.list(recursive: true)); | 138 setupListHandlers(long.list(recursive: true)); |
139 }); | 139 }); |
140 }); | 140 }); |
141 } | 141 } |
142 | 142 |
143 static void testDeleteNonExistent() { | 143 static void testDeleteNonExistent() { |
144 // Test that deleting a non-existing directory fails. | 144 // Test that deleting a non-existing directory fails. |
145 setupFutureHandlers(future) { | 145 setupFutureHandlers(future) { |
146 future.handleException((e) { | |
147 Expect.isTrue(e is DirectoryIOException); | |
148 return true; | |
149 }); | |
150 future.then((ignore) { | 146 future.then((ignore) { |
151 Expect.fail("Deletion of non-existing directory should fail"); | 147 Expect.fail("Deletion of non-existing directory should fail"); |
| 148 }).catchError((e) { |
| 149 Expect.isTrue(e.error is DirectoryIOException); |
152 }); | 150 }); |
153 } | 151 } |
154 | 152 |
155 new Directory("").createTemp().then((d) { | 153 new Directory("").createTemp().then((d) { |
156 d.delete().then((ignore) { | 154 d.delete().then((ignore) { |
157 setupFutureHandlers(d.delete()); | 155 setupFutureHandlers(d.delete()); |
158 setupFutureHandlers(d.delete(recursive: true)); | 156 setupFutureHandlers(d.delete(recursive: true)); |
159 }); | 157 }); |
160 }); | 158 }); |
161 } | 159 } |
162 | 160 |
163 static void testDeleteTooLongName() { | 161 static void testDeleteTooLongName() { |
164 var port = new ReceivePort(); | 162 var port = new ReceivePort(); |
165 new Directory("").createTemp().then((d) { | 163 new Directory("").createTemp().then((d) { |
166 var subDirName = 'subdir'; | 164 var subDirName = 'subdir'; |
167 var subDir = new Directory("${d.path}/$subDirName"); | 165 var subDir = new Directory("${d.path}/$subDirName"); |
168 subDir.create().then((ignore) { | 166 subDir.create().then((ignore) { |
169 // Construct a long string of the form | 167 // Construct a long string of the form |
170 // 'tempdir/subdir/../subdir/../subdir'. | 168 // 'tempdir/subdir/../subdir/../subdir'. |
171 var buffer = new StringBuffer(); | 169 var buffer = new StringBuffer(); |
172 buffer.add(subDir.path); | 170 buffer.add(subDir.path); |
173 for (var i = 0; i < 1000; i++) { | 171 for (var i = 0; i < 1000; i++) { |
174 buffer.add("/../${subDirName}"); | 172 buffer.add("/../${subDirName}"); |
175 } | 173 } |
176 var long = new Directory("${buffer.toString()}"); | 174 var long = new Directory("${buffer.toString()}"); |
177 var errors = 0; | 175 var errors = 0; |
178 onError(e) { | 176 onError(e) { |
179 Expect.isTrue(e is DirectoryIOException); | 177 Expect.isTrue(e.error is DirectoryIOException); |
180 if (++errors == 2) { | 178 if (++errors == 2) { |
181 d.delete(recursive: true).then((ignore) => port.close()); | 179 d.delete(recursive: true).then((ignore) => port.close()); |
182 } | 180 } |
183 return true; | 181 return true; |
184 } | 182 } |
185 long.delete().handleException(onError); | 183 long.delete().catchError(onError); |
186 long.delete(recursive: true).handleException(onError); | 184 long.delete(recursive: true).catchError(onError); |
187 }); | 185 }); |
188 }); | 186 }); |
189 } | 187 } |
190 | 188 |
191 static void testDeleteNonExistentSync() { | 189 static void testDeleteNonExistentSync() { |
192 Directory d = new Directory("").createTempSync(); | 190 Directory d = new Directory("").createTempSync(); |
193 d.deleteSync(); | 191 d.deleteSync(); |
194 Expect.throws(d.deleteSync); | 192 Expect.throws(d.deleteSync); |
195 Expect.throws(() => d.deleteSync(recursive: true)); | 193 Expect.throws(() => d.deleteSync(recursive: true)); |
196 } | 194 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 } | 473 } |
476 } | 474 } |
477 | 475 |
478 | 476 |
479 testCreateTempError() { | 477 testCreateTempError() { |
480 var location = illegalTempDirectoryLocation(); | 478 var location = illegalTempDirectoryLocation(); |
481 if (location == null) return; | 479 if (location == null) return; |
482 | 480 |
483 var port = new ReceivePort(); | 481 var port = new ReceivePort(); |
484 var future = new Directory(location).createTemp(); | 482 var future = new Directory(location).createTemp(); |
485 future.handleException((e) => port.close()); | 483 future.catchError((e) => port.close()); |
486 } | 484 } |
487 | 485 |
488 | 486 |
489 testCreateExistingSync() { | 487 testCreateExistingSync() { |
490 // Test that creating an existing directory succeeds. | 488 // Test that creating an existing directory succeeds. |
491 var d = new Directory(''); | 489 var d = new Directory(''); |
492 var temp = d.createTempSync(); | 490 var temp = d.createTempSync(); |
493 var subDir = new Directory('${temp.path}/flaf'); | 491 var subDir = new Directory('${temp.path}/flaf'); |
494 Expect.isFalse(subDir.existsSync()); | 492 Expect.isFalse(subDir.existsSync()); |
495 subDir.createSync(); | 493 subDir.createSync(); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 testCreateDirExistingFile() { | 541 testCreateDirExistingFile() { |
544 // Test that creating an existing directory succeeds. | 542 // Test that creating an existing directory succeeds. |
545 var port = new ReceivePort(); | 543 var port = new ReceivePort(); |
546 var d = new Directory(''); | 544 var d = new Directory(''); |
547 d.createTemp().then((temp) { | 545 d.createTemp().then((temp) { |
548 var path = '${temp.path}/flaf'; | 546 var path = '${temp.path}/flaf'; |
549 var file = new File(path); | 547 var file = new File(path); |
550 var subDir = new Directory(path); | 548 var subDir = new Directory(path); |
551 file.create().then((_) { | 549 file.create().then((_) { |
552 subDir.create() | 550 subDir.create() |
553 ..then((_) { Expect.fail("dir create should fail on existing file"); }) | 551 .then((_) { Expect.fail("dir create should fail on existing file"); }) |
554 ..handleException((e) { | 552 .catchError((e) { |
555 Expect.isTrue(e is DirectoryIOException); | 553 Expect.isTrue(e.error is DirectoryIOException); |
556 temp.delete(recursive: true).then((_) { | 554 temp.delete(recursive: true).then((_) { |
557 port.close(); | 555 port.close(); |
558 }); | |
559 return true; | |
560 }); | 556 }); |
| 557 }); |
561 }); | 558 }); |
562 }); | 559 }); |
563 } | 560 } |
564 | 561 |
565 | 562 |
566 testCreateRecursiveSync() { | 563 testCreateRecursiveSync() { |
567 var temp = new Directory('').createTempSync(); | 564 var temp = new Directory('').createTempSync(); |
568 var d = new Directory('${temp.path}/a/b/c'); | 565 var d = new Directory('${temp.path}/a/b/c'); |
569 d.createSync(recursive: true); | 566 d.createSync(recursive: true); |
570 Expect.isTrue(new Directory('${temp.path}/a').existsSync()); | 567 Expect.isTrue(new Directory('${temp.path}/a').existsSync()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
614 testCreateTempErrorSync(); | 611 testCreateTempErrorSync(); |
615 testCreateTempError(); | 612 testCreateTempError(); |
616 testCreateExistingSync(); | 613 testCreateExistingSync(); |
617 testCreateExisting(); | 614 testCreateExisting(); |
618 testCreateDirExistingFileSync(); | 615 testCreateDirExistingFileSync(); |
619 testCreateDirExistingFile(); | 616 testCreateDirExistingFile(); |
620 testCreateRecursive(); | 617 testCreateRecursive(); |
621 testCreateRecursiveSync(); | 618 testCreateRecursiveSync(); |
622 testRename(); | 619 testRename(); |
623 } | 620 } |
OLD | NEW |