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

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

Issue 11364097: Allow Directory.create to create all missing path components. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Reupload Created 8 years, 1 month 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
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 #import('dart:io'); 5 #import('dart:io');
6 6
7 7
8 createLink(String dst, String link, bool symbolic, void callback()) { 8 createLink(String dst, String link, bool symbolic, void callback()) {
9 var args = [ symbolic ? '-s' : '', dst, link ]; 9 var args = [ symbolic ? '-s' : '', dst, link ];
10 var script = 'tests/standalone/io/ln.sh'; 10 var script = 'tests/standalone/io/ln.sh';
(...skipping 13 matching lines...) Expand all
24 testFileExistsCreate() { 24 testFileExistsCreate() {
25 var temp = new Directory('').createTempSync(); 25 var temp = new Directory('').createTempSync();
26 var x = '${temp.path}${Platform.pathSeparator}x'; 26 var x = '${temp.path}${Platform.pathSeparator}x';
27 var y = '${temp.path}${Platform.pathSeparator}y'; 27 var y = '${temp.path}${Platform.pathSeparator}y';
28 createLink(x, y, true, () { 28 createLink(x, y, true, () {
29 Expect.isFalse(new File(x).existsSync()); 29 Expect.isFalse(new File(x).existsSync());
30 Expect.isFalse(new File(y).existsSync()); 30 Expect.isFalse(new File(y).existsSync());
31 new File(y).createSync(); 31 new File(y).createSync();
32 Expect.isTrue(new File(x).existsSync()); 32 Expect.isTrue(new File(x).existsSync());
33 Expect.isTrue(new File(y).existsSync()); 33 Expect.isTrue(new File(y).existsSync());
34 temp.deleteRecursivelySync(); 34 temp.deleteSync(recursive: true);
35 }); 35 });
36 } 36 }
37 37
38 38
39 testFileDelete() { 39 testFileDelete() {
40 var temp = new Directory('').createTempSync(); 40 var temp = new Directory('').createTempSync();
41 var x = '${temp.path}${Platform.pathSeparator}x'; 41 var x = '${temp.path}${Platform.pathSeparator}x';
42 var y = '${temp.path}${Platform.pathSeparator}y'; 42 var y = '${temp.path}${Platform.pathSeparator}y';
43 new File(x).createSync(); 43 new File(x).createSync();
44 createLink(x, y, true, () { 44 createLink(x, y, true, () {
45 Expect.isTrue(new File(x).existsSync()); 45 Expect.isTrue(new File(x).existsSync());
46 Expect.isTrue(new File(y).existsSync()); 46 Expect.isTrue(new File(y).existsSync());
47 new File(y).deleteSync(); 47 new File(y).deleteSync();
48 Expect.isTrue(new File(x).existsSync()); 48 Expect.isTrue(new File(x).existsSync());
49 Expect.isFalse(new File(y).existsSync()); 49 Expect.isFalse(new File(y).existsSync());
50 createLink(x, y, false, () { 50 createLink(x, y, false, () {
51 Expect.isTrue(new File(x).existsSync()); 51 Expect.isTrue(new File(x).existsSync());
52 Expect.isTrue(new File(y).existsSync()); 52 Expect.isTrue(new File(y).existsSync());
53 new File(y).deleteSync(); 53 new File(y).deleteSync();
54 Expect.isTrue(new File(x).existsSync()); 54 Expect.isTrue(new File(x).existsSync());
55 Expect.isFalse(new File(y).existsSync()); 55 Expect.isFalse(new File(y).existsSync());
56 temp.deleteRecursivelySync(); 56 temp.deleteSync(recursive: true);
57 }); 57 });
58 }); 58 });
59 } 59 }
60 60
61 61
62 testFileWriteRead() { 62 testFileWriteRead() {
63 var temp = new Directory('').createTempSync(); 63 var temp = new Directory('').createTempSync();
64 var x = '${temp.path}${Platform.pathSeparator}x'; 64 var x = '${temp.path}${Platform.pathSeparator}x';
65 var y = '${temp.path}${Platform.pathSeparator}y'; 65 var y = '${temp.path}${Platform.pathSeparator}y';
66 new File(x).createSync(); 66 new File(x).createSync();
67 createLink(x, y, true, () { 67 createLink(x, y, true, () {
68 var data = "asdf".charCodes; 68 var data = "asdf".charCodes;
69 var output = new File(y).openOutputStream(FileMode.WRITE); 69 var output = new File(y).openOutputStream(FileMode.WRITE);
70 output.write(data); 70 output.write(data);
71 output.onNoPendingWrites = () { 71 output.onNoPendingWrites = () {
72 output.close(); 72 output.close();
73 var read = new File(y).readAsBytesSync(); 73 var read = new File(y).readAsBytesSync();
74 Expect.listEquals(data, read); 74 Expect.listEquals(data, read);
75 var read2 = new File(x).readAsBytesSync(); 75 var read2 = new File(x).readAsBytesSync();
76 Expect.listEquals(data, read2); 76 Expect.listEquals(data, read2);
77 temp.deleteRecursivelySync(); 77 temp.deleteSync(recursive: true);
78 }; 78 };
79 }); 79 });
80 } 80 }
81 81
82 82
83 testDirectoryExistsCreate() { 83 testDirectoryExistsCreate() {
84 var temp = new Directory('').createTempSync(); 84 var temp = new Directory('').createTempSync();
85 var x = '${temp.path}${Platform.pathSeparator}x'; 85 var x = '${temp.path}${Platform.pathSeparator}x';
86 var y = '${temp.path}${Platform.pathSeparator}y'; 86 var y = '${temp.path}${Platform.pathSeparator}y';
87 createLink(x, y, true, () { 87 createLink(x, y, true, () {
88 Expect.isFalse(new Directory(x).existsSync()); 88 Expect.isFalse(new Directory(x).existsSync());
89 Expect.isFalse(new Directory(y).existsSync()); 89 Expect.isFalse(new Directory(y).existsSync());
90 Expect.throws(new Directory(y).createSync); 90 Expect.throws(new Directory(y).createSync);
91 temp.deleteRecursivelySync(); 91 temp.deleteSync(recursive: true);
92 }); 92 });
93 } 93 }
94 94
95 95
96 testDirectoryDelete() { 96 testDirectoryDelete() {
97 var temp = new Directory('').createTempSync(); 97 var temp = new Directory('').createTempSync();
98 var temp2 = new Directory('').createTempSync(); 98 var temp2 = new Directory('').createTempSync();
99 var y = '${temp.path}${Platform.pathSeparator}y'; 99 var y = '${temp.path}${Platform.pathSeparator}y';
100 var x = '${temp2.path}${Platform.pathSeparator}x'; 100 var x = '${temp2.path}${Platform.pathSeparator}x';
101 new File(x).createSync(); 101 new File(x).createSync();
102 createLink(temp2.path, y, true, () { 102 createLink(temp2.path, y, true, () {
103 var link = new Directory(y); 103 var link = new Directory(y);
104 Expect.isTrue(link.existsSync()); 104 Expect.isTrue(link.existsSync());
105 Expect.isTrue(temp2.existsSync()); 105 Expect.isTrue(temp2.existsSync());
106 link.deleteSync(); 106 link.deleteSync();
107 Expect.isFalse(link.existsSync()); 107 Expect.isFalse(link.existsSync());
108 Expect.isTrue(temp2.existsSync()); 108 Expect.isTrue(temp2.existsSync());
109 createLink(temp2.path, y, true, () { 109 createLink(temp2.path, y, true, () {
110 Expect.isTrue(link.existsSync()); 110 Expect.isTrue(link.existsSync());
111 temp.deleteRecursivelySync(); 111 temp.deleteSync(recursive: true);
112 Expect.isFalse(link.existsSync()); 112 Expect.isFalse(link.existsSync());
113 Expect.isTrue(temp2.existsSync()); 113 Expect.isTrue(temp2.existsSync());
114 Expect.isTrue(new File(x).existsSync()); 114 Expect.isTrue(new File(x).existsSync());
115 temp2.deleteRecursivelySync(); 115 temp2.deleteSync(recursive: true);
116 }); 116 });
117 }); 117 });
118 } 118 }
119 119
120 120
121 testDirectoryListing() { 121 testDirectoryListing() {
122 var temp = new Directory('').createTempSync(); 122 var temp = new Directory('').createTempSync();
123 var temp2 = new Directory('').createTempSync(); 123 var temp2 = new Directory('').createTempSync();
124 var y = '${temp.path}${Platform.pathSeparator}y'; 124 var y = '${temp.path}${Platform.pathSeparator}y';
125 var x = '${temp2.path}${Platform.pathSeparator}x'; 125 var x = '${temp2.path}${Platform.pathSeparator}x';
126 new File(x).createSync(); 126 new File(x).createSync();
127 createLink(temp2.path, y, true, () { 127 createLink(temp2.path, y, true, () {
128 var files = []; 128 var files = [];
129 var dirs = []; 129 var dirs = [];
130 var lister = temp.list(recursive: true); 130 var lister = temp.list(recursive: true);
131 lister.onFile = (f) => files.add(f); 131 lister.onFile = (f) => files.add(f);
132 lister.onDir = (d) => dirs.add(d); 132 lister.onDir = (d) => dirs.add(d);
133 lister.onDone = (success) { 133 lister.onDone = (success) {
134 Expect.isTrue(success); 134 Expect.isTrue(success);
135 Expect.equals(1, files.length); 135 Expect.equals(1, files.length);
136 Expect.isTrue(files[0].endsWith(x)); 136 Expect.isTrue(files[0].endsWith(x));
137 Expect.equals(1, dirs.length); 137 Expect.equals(1, dirs.length);
138 Expect.isTrue(dirs[0].endsWith(y)); 138 Expect.isTrue(dirs[0].endsWith(y));
139 temp.deleteRecursivelySync(); 139 temp.deleteSync(recursive: true);
140 temp2.deleteRecursivelySync(); 140 temp2.deleteSync(recursive: true);
141 }; 141 };
142 }); 142 });
143 } 143 }
144 144
145 145
146 testDirectoryListingBrokenLink() { 146 testDirectoryListingBrokenLink() {
147 var temp = new Directory('').createTempSync(); 147 var temp = new Directory('').createTempSync();
148 var x = '${temp.path}${Platform.pathSeparator}x'; 148 var x = '${temp.path}${Platform.pathSeparator}x';
149 var link = '${temp.path}${Platform.pathSeparator}link'; 149 var link = '${temp.path}${Platform.pathSeparator}link';
150 var doesNotExist = 'this_thing_does_not_exist'; 150 var doesNotExist = 'this_thing_does_not_exist';
151 new File(x).createSync(); 151 new File(x).createSync();
152 createLink(doesNotExist, link, true, () { 152 createLink(doesNotExist, link, true, () {
153 var files = []; 153 var files = [];
154 var dirs = []; 154 var dirs = [];
155 var errors = []; 155 var errors = [];
156 var lister = temp.list(recursive: true); 156 var lister = temp.list(recursive: true);
157 lister.onFile = (f) => files.add(f); 157 lister.onFile = (f) => files.add(f);
158 lister.onDir = (d) => dirs.add(d); 158 lister.onDir = (d) => dirs.add(d);
159 lister.onError = (d) => errors.add(d); 159 lister.onError = (d) => errors.add(d);
160 lister.onDone = (success) { 160 lister.onDone = (success) {
161 Expect.isFalse(success); 161 Expect.isFalse(success);
162 Expect.equals(1, files.length); 162 Expect.equals(1, files.length);
163 Expect.isTrue(files[0].endsWith(x)); 163 Expect.isTrue(files[0].endsWith(x));
164 Expect.equals(0, dirs.length); 164 Expect.equals(0, dirs.length);
165 Expect.equals(1, errors.length); 165 Expect.equals(1, errors.length);
166 Expect.isTrue(errors[0].toString().contains(link)); 166 Expect.isTrue(errors[0].toString().contains(link));
167 temp.deleteRecursivelySync(); 167 temp.deleteSync(recursive: true);
168 }; 168 };
169 }); 169 });
170 } 170 }
171 171
172 172
173 main() { 173 main() {
174 testFileExistsCreate(); 174 testFileExistsCreate();
175 testFileDelete(); 175 testFileDelete();
176 testFileWriteRead(); 176 testFileWriteRead();
177 testDirectoryExistsCreate(); 177 testDirectoryExistsCreate();
178 testDirectoryDelete(); 178 testDirectoryDelete();
179 testDirectoryListing(); 179 testDirectoryListing();
180 testDirectoryListingBrokenLink(); 180 testDirectoryListingBrokenLink();
181 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698