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

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

Issue 11175054: Change Directory.create to not fail on existing directory with that name. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comment. Created 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/bin/directory_win.cc ('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) 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 {
11 static void testListing() { 11 static void testListing() {
12 bool listedDir = false; 12 bool listedDir = false;
13 bool listedFile = false; 13 bool listedFile = false;
14 14
15 Directory directory = new Directory("").createTempSync(); 15 Directory directory = new Directory("").createTempSync();
16 Directory subDirectory = new Directory("${directory.path}/subdir"); 16 Directory subDirectory = new Directory("${directory.path}/subdir");
17 Expect.isFalse(subDirectory.existsSync()); 17 Expect.isFalse(subDirectory.existsSync());
18 subDirectory.createSync(); 18 subDirectory.createSync();
19 Expect.isTrue(subDirectory.existsSync());
19 File f = new File('${subDirectory.path}/file.txt'); 20 File f = new File('${subDirectory.path}/file.txt');
20 Expect.isFalse(f.existsSync()); 21 Expect.isFalse(f.existsSync());
21 f.createSync(); 22 f.createSync();
22 23
23 var lister = directory.list(recursive: true); 24 var lister = directory.list(recursive: true);
24 25
25 lister.onDir = (dir) { 26 lister.onDir = (dir) {
26 listedDir = true; 27 listedDir = true;
27 Expect.isTrue(dir.contains(directory.path)); 28 Expect.isTrue(dir.contains(directory.path));
28 Expect.isTrue(dir.contains('subdir')); 29 Expect.isTrue(dir.contains('subdir'));
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 testCreateTempError() { 453 testCreateTempError() {
453 var location = illegalTempDirectoryLocation(); 454 var location = illegalTempDirectoryLocation();
454 if (location == null) return; 455 if (location == null) return;
455 456
456 var port = new ReceivePort(); 457 var port = new ReceivePort();
457 var future = new Directory(location).createTemp(); 458 var future = new Directory(location).createTemp();
458 future.handleException((e) => port.close()); 459 future.handleException((e) => port.close());
459 } 460 }
460 461
461 462
463 testCreateExistingSync() {
464 // Test that creating an existing directory succeeds.
465 var d = new Directory('');
466 var temp = d.createTempSync();
467 var subDir = new Directory('${temp.path}/flaf');
468 Expect.isFalse(subDir.existsSync());
469 subDir.createSync();
470 Expect.isTrue(subDir.existsSync());
471 subDir.createSync();
472 Expect.isTrue(subDir.existsSync());
473 temp.deleteRecursivelySync();
474 }
475
476
477 testCreateExisting() {
478 // Test that creating an existing directory succeeds.
479 var port = new ReceivePort();
480 var d = new Directory('');
481 d.createTemp().then((temp) {
482 var subDir = new Directory('${temp.path}/flaf');
483 subDir.exists().then((dirExists) {
484 Expect.isFalse(dirExists);
485 subDir.create().then((_) {
486 subDir.exists().then((dirExists) {
487 Expect.isTrue(dirExists);
488 subDir.create().then((_) {
489 subDir.exists().then((dirExists) {
490 Expect.isTrue(dirExists);
491 temp.deleteRecursively().then((_) {
492 port.close();
493 });
494 });
495 });
496 });
497 });
498 });
499 });
500 }
501
502
503 testCreateDirExistingFileSync() {
504 // Test that creating an existing directory succeeds.
505 var d = new Directory('');
506 var temp = d.createTempSync();
507 var path = '${temp.path}/flaf';
508 var file = new File(path);
509 file.createSync();
510 Expect.isTrue(file.existsSync());
511 Expect.throws(new Directory(path).createSync,
512 (e) => e is DirectoryIOException);
513 temp.deleteRecursivelySync();
514 }
515
516
517 testCreateDirExistingFile() {
518 // Test that creating an existing directory succeeds.
519 var port = new ReceivePort();
520 var d = new Directory('');
521 d.createTemp().then((temp) {
522 var path = '${temp.path}/flaf';
523 var file = new File(path);
524 var subDir = new Directory(path);
525 file.create().then((_) {
526 subDir.create()
527 ..then((_) { Expect.fail("dir create should fail on existing file"); })
528 ..handleException((e) {
529 Expect.isTrue(e is DirectoryIOException);
530 temp.deleteRecursively().then((_) {
531 port.close();
532 });
533 return true;
534 });
535 });
536 });
537 }
538
539
462 testRename() { 540 testRename() {
463 var d = new Directory(''); 541 var d = new Directory('');
464 var temp1 = d.createTempSync(); 542 var temp1 = d.createTempSync();
465 var temp2 = d.createTempSync(); 543 var temp2 = d.createTempSync();
466 var temp3 = temp1.renameSync(temp2.path); 544 var temp3 = temp1.renameSync(temp2.path);
467 Expect.isFalse(temp1.existsSync()); 545 Expect.isFalse(temp1.existsSync());
468 Expect.isTrue(temp2.existsSync()); 546 Expect.isTrue(temp2.existsSync());
469 Expect.equals(temp3.path, temp2.path); 547 Expect.equals(temp3.path, temp2.path);
470 548
471 temp2.rename(temp1.path).then((temp4) { 549 temp2.rename(temp1.path).then((temp4) {
472 Expect.isFalse(temp3.existsSync()); 550 Expect.isFalse(temp3.existsSync());
473 Expect.isFalse(temp2.existsSync()); 551 Expect.isFalse(temp2.existsSync());
474 Expect.isTrue(temp1.existsSync()); 552 Expect.isTrue(temp1.existsSync());
475 Expect.isTrue(temp4.existsSync()); 553 Expect.isTrue(temp4.existsSync());
476 Expect.equals(temp1.path, temp4.path); 554 Expect.equals(temp1.path, temp4.path);
477 temp1.deleteRecursivelySync(); 555 temp1.deleteRecursivelySync();
478 }); 556 });
479 } 557 }
480 558
481 main() { 559 main() {
482 DirectoryTest.testMain(); 560 DirectoryTest.testMain();
483 NestedTempDirectoryTest.testMain(); 561 NestedTempDirectoryTest.testMain();
484 testCreateTempErrorSync(); 562 testCreateTempErrorSync();
485 testCreateTempError(); 563 testCreateTempError();
564 testCreateExistingSync();
565 testCreateExisting();
566 testCreateDirExistingFileSync();
567 testCreateDirExistingFile();
486 testRename(); 568 testRename();
487 } 569 }
OLDNEW
« no previous file with comments | « runtime/bin/directory_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698