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 // Dart test program for testing error handling in directory I/O. | 5 // Dart test program for testing error handling in directory I/O. |
6 | 6 |
7 #import("dart:io"); | 7 #import("dart:io"); |
8 #import("dart:isolate"); | 8 #import("dart:isolate"); |
9 | 9 |
10 Directory tempDir() { | 10 Directory tempDir() { |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
172 void testListNonExistent(Directory temp, Function done) { | 172 void testListNonExistent(Directory temp, Function done) { |
173 Directory nonExistent = new Directory("${temp.path}/nonExistent"); | 173 Directory nonExistent = new Directory("${temp.path}/nonExistent"); |
174 var lister = nonExistent.list(); | 174 var lister = nonExistent.list(); |
175 lister.onError = (e) { | 175 lister.onError = (e) { |
176 checkListNonExistentFileException(e); | 176 checkListNonExistentFileException(e); |
177 done(); | 177 done(); |
178 }; | 178 }; |
179 } | 179 } |
180 | 180 |
181 | 181 |
182 void testRenameNonExistent(Directory temp, Function done) { | |
183 Directory nonExistent = new Directory("${temp.path}/nonExistent"); | |
184 var newPath = "${temp.path}/nonExistent2"; | |
185 Expect.throws(() => nonExistent.renameSync(newPath), | |
186 (e) => e is DirectoryIOException); | |
187 var renameDone = nonExistent.rename(newPath); | |
188 renameDone.then((ignore) => Expect.fail('rename non existent')); | |
189 renameDone.handleException((e) { | |
190 Expect.isTrue(e is DirectoryIOException); | |
191 done(); | |
192 return true; | |
193 }); | |
194 } | |
195 | |
196 | |
197 void testRenameFile(Directory temp, Function done) { | |
Søren Gjesse
2012/05/22 12:42:42
Maybe add AsDirectory or something like that to th
Mads Ager (google)
2012/05/22 12:46:10
Done.
| |
198 File f = new File("${temp.path}/file"); | |
199 var newPath = "${temp.path}/file2"; | |
200 f.createSync(); | |
201 var d = new Directory(f.name); | |
202 Expect.throws(() => d.renameSync(newPath), | |
203 (e) => e is DirectoryIOException); | |
204 var renameDone = d.rename(newPath); | |
205 renameDone.then((ignore) => Expect.fail('rename non existent')); | |
Søren Gjesse
2012/05/22 12:42:42
rename non existent -> rename file as directory
Mads Ager (google)
2012/05/22 12:46:10
Done.
| |
206 renameDone.handleException((e) { | |
207 Expect.isTrue(e is DirectoryIOException); | |
208 done(); | |
209 return true; | |
210 }); | |
211 } | |
212 | |
213 | |
214 testRenameOverwriteFile(Directory temp, Function done) { | |
215 var d = new Directory(''); | |
216 var temp1 = d.createTempSync(); | |
217 var fileName = '${temp.path}/x'; | |
218 new File(fileName).createSync(); | |
219 Expect.throws(() => temp1.renameSync(fileName), | |
220 (e) => e is DirectoryIOException); | |
221 var renameDone = temp1.rename(fileName); | |
222 renameDone.then((ignore) => Expect.fail('rename dir overwrite file')); | |
223 renameDone.handleException((e) { | |
224 Expect.isTrue(e is DirectoryIOException); | |
225 temp1.deleteRecursivelySync(); | |
226 done(); | |
227 return true; | |
228 }); | |
229 } | |
230 | |
231 | |
182 void runTest(Function test) { | 232 void runTest(Function test) { |
183 // Create a temporary directory for the test. | 233 // Create a temporary directory for the test. |
184 var temp = new Directory('').createTempSync(); | 234 var temp = new Directory('').createTempSync(); |
185 | 235 |
186 // Wait for the test to finish and delete the temporary directory. | 236 // Wait for the test to finish and delete the temporary directory. |
187 ReceivePort p = new ReceivePort(); | 237 ReceivePort p = new ReceivePort(); |
188 p.receive((x,y) { | 238 p.receive((x,y) { |
189 p.close(); | 239 p.close(); |
190 temp.deleteRecursivelySync(); | 240 temp.deleteRecursivelySync(); |
191 }); | 241 }); |
192 | 242 |
193 // Run the test. | 243 // Run the test. |
194 test(temp, () => p.toSendPort().send(null)); | 244 test(temp, () => p.toSendPort().send(null)); |
195 } | 245 } |
196 | 246 |
197 | 247 |
198 main() { | 248 main() { |
199 runTest(testCreateInNonExistent); | 249 runTest(testCreateInNonExistent); |
200 runTest(testCreateTempInNonExistent); | 250 runTest(testCreateTempInNonExistent); |
201 runTest(testDeleteNonExistent); | 251 runTest(testDeleteNonExistent); |
202 runTest(testDeleteRecursivelyNonExistent); | 252 runTest(testDeleteRecursivelyNonExistent); |
203 runTest(testListNonExistent); | 253 runTest(testListNonExistent); |
254 runTest(testRenameNonExistent); | |
255 runTest(testRenameFile); | |
256 runTest(testRenameOverwriteFile); | |
204 } | 257 } |
OLD | NEW |