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

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

Issue 12555005: dart:io | Revert addition of Link class, because it conflicts with a Link class in dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 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 | « sdk/lib/io/link.dart ('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) 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 import "dart:io"; 5 import "dart:io";
6 import "dart:isolate"; 6 import "dart:isolate";
7 7
8 8
9 createLink(String dst, String link, void callback()) { 9 createLink(String dst, String link, bool symbolic, void callback()) {
10 new Link(link).create(dst, linkRelative: true).then((_) => callback()); 10 var args = [ symbolic ? '-s' : '', dst, link ];
11 var script = 'tests/standalone/io/ln.sh';
12 if (!new File(script).existsSync()) {
13 script = '../$script';
14 }
15 Process.run(script, args).then((result) {
16 if (result.exitCode == 0) {
17 callback();
18 } else {
19 throw new Exception('link creation failed');
20 }
21 });
11 } 22 }
12 23
13 24
14 testFileExistsCreate() { 25 testFileExistsCreate() {
15 var temp = new Directory('').createTempSync(); 26 var temp = new Directory('').createTempSync();
16 var x = '${temp.path}${Platform.pathSeparator}x'; 27 var x = '${temp.path}${Platform.pathSeparator}x';
17 var y = '${temp.path}${Platform.pathSeparator}y'; 28 var y = '${temp.path}${Platform.pathSeparator}y';
18 createLink(x, y, () { 29 createLink(x, y, true, () {
19 Expect.isFalse(new File(y).existsSync()); 30 Expect.isFalse(new File(y).existsSync());
20 Expect.isFalse(new File(x).existsSync()); 31 Expect.isFalse(new File(x).existsSync());
21 Expect.isTrue(FileSystemEntity.isLinkSync(y)); 32 Expect.isTrue(FileSystemEntity.isLinkSync(y));
22 Expect.isFalse(FileSystemEntity.isLinkSync(x)); 33 Expect.isFalse(FileSystemEntity.isLinkSync(x));
23 Expect.equals(FileSystemEntityType.NOT_FOUND, FileSystemEntity.typeSync(y)); 34 Expect.equals(FileSystemEntityType.NOT_FOUND, FileSystemEntity.typeSync(y));
24 Expect.equals(FileSystemEntityType.NOT_FOUND, FileSystemEntity.typeSync(x)); 35 Expect.equals(FileSystemEntityType.NOT_FOUND, FileSystemEntity.typeSync(x));
25 Expect.equals(FileSystemEntityType.LINK, 36 Expect.equals(FileSystemEntityType.LINK,
26 FileSystemEntity.typeSync(y, followLinks: false)); 37 FileSystemEntity.typeSync(y, followLinks: false));
27 Expect.equals(FileSystemEntityType.NOT_FOUND, 38 Expect.equals(FileSystemEntityType.NOT_FOUND,
28 FileSystemEntity.typeSync(x, followLinks: false)); 39 FileSystemEntity.typeSync(x, followLinks: false));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 temp.deleteSync(recursive: true); 72 temp.deleteSync(recursive: true);
62 }); 73 });
63 } 74 }
64 75
65 76
66 testFileDelete() { 77 testFileDelete() {
67 var temp = new Directory('').createTempSync(); 78 var temp = new Directory('').createTempSync();
68 var x = '${temp.path}${Platform.pathSeparator}x'; 79 var x = '${temp.path}${Platform.pathSeparator}x';
69 var y = '${temp.path}${Platform.pathSeparator}y'; 80 var y = '${temp.path}${Platform.pathSeparator}y';
70 new File(x).createSync(); 81 new File(x).createSync();
71 createLink(x, y, () { 82 createLink(x, y, true, () {
72 Expect.isTrue(new File(x).existsSync()); 83 Expect.isTrue(new File(x).existsSync());
73 Expect.isTrue(new File(y).existsSync()); 84 Expect.isTrue(new File(y).existsSync());
74 new File(y).deleteSync(); 85 new File(y).deleteSync();
75 Expect.isTrue(new File(x).existsSync()); 86 Expect.isTrue(new File(x).existsSync());
76 Expect.isFalse(new File(y).existsSync()); 87 Expect.isFalse(new File(y).existsSync());
77 createLink(x, y, () { 88 createLink(x, y, false, () {
78 Expect.isTrue(new File(x).existsSync()); 89 Expect.isTrue(new File(x).existsSync());
79 Expect.isTrue(new File(y).existsSync()); 90 Expect.isTrue(new File(y).existsSync());
80 new File(y).deleteSync(); 91 new File(y).deleteSync();
81 Expect.isTrue(new File(x).existsSync()); 92 Expect.isTrue(new File(x).existsSync());
82 Expect.isFalse(new File(y).existsSync()); 93 Expect.isFalse(new File(y).existsSync());
83 temp.deleteSync(recursive: true); 94 temp.deleteSync(recursive: true);
84 }); 95 });
85 }); 96 });
86 } 97 }
87 98
88 99
89 testFileWriteRead() { 100 testFileWriteRead() {
90 var temp = new Directory('').createTempSync(); 101 var temp = new Directory('').createTempSync();
91 var x = '${temp.path}${Platform.pathSeparator}x'; 102 var x = '${temp.path}${Platform.pathSeparator}x';
92 var y = '${temp.path}${Platform.pathSeparator}y'; 103 var y = '${temp.path}${Platform.pathSeparator}y';
93 new File(x).createSync(); 104 new File(x).createSync();
94 createLink(x, y, () { 105 createLink(x, y, true, () {
95 var data = "asdf".codeUnits; 106 var data = "asdf".codeUnits;
96 var output = new File(y).openWrite(mode: FileMode.WRITE); 107 var output = new File(y).openWrite(mode: FileMode.WRITE);
97 output.writeBytes(data); 108 output.writeBytes(data);
98 output.close(); 109 output.close();
99 output.done.then((_) { 110 output.done.then((_) {
100 var read = new File(y).readAsBytesSync(); 111 var read = new File(y).readAsBytesSync();
101 Expect.listEquals(data, read); 112 Expect.listEquals(data, read);
102 var read2 = new File(x).readAsBytesSync(); 113 var read2 = new File(x).readAsBytesSync();
103 Expect.listEquals(data, read2); 114 Expect.listEquals(data, read2);
104 temp.deleteSync(recursive: true); 115 temp.deleteSync(recursive: true);
105 }); 116 });
106 }); 117 });
107 } 118 }
108 119
109 120
110 testDirectoryExistsCreate() { 121 testDirectoryExistsCreate() {
111 var temp = new Directory('').createTempSync(); 122 var temp = new Directory('').createTempSync();
112 var x = '${temp.path}${Platform.pathSeparator}x'; 123 var x = '${temp.path}${Platform.pathSeparator}x';
113 var y = '${temp.path}${Platform.pathSeparator}y'; 124 var y = '${temp.path}${Platform.pathSeparator}y';
114 createLink(x, y, () { 125 createLink(x, y, true, () {
115 Expect.isFalse(new Directory(x).existsSync()); 126 Expect.isFalse(new Directory(x).existsSync());
116 Expect.isFalse(new Directory(y).existsSync()); 127 Expect.isFalse(new Directory(y).existsSync());
117 Expect.throws(new Directory(y).createSync); 128 Expect.throws(new Directory(y).createSync);
118 temp.deleteSync(recursive: true); 129 temp.deleteSync(recursive: true);
119 }); 130 });
120 } 131 }
121 132
122 133
123 testDirectoryDelete() { 134 testDirectoryDelete() {
124 var temp = new Directory('').createTempSync(); 135 var temp = new Directory('').createTempSync();
125 var temp2 = new Directory('').createTempSync(); 136 var temp2 = new Directory('').createTempSync();
126 var y = '${temp.path}${Platform.pathSeparator}y'; 137 var y = '${temp.path}${Platform.pathSeparator}y';
127 var x = '${temp2.path}${Platform.pathSeparator}x'; 138 var x = '${temp2.path}${Platform.pathSeparator}x';
128 new File(x).createSync(); 139 new File(x).createSync();
129 createLink(temp2.path, y, () { 140 createLink(temp2.path, y, true, () {
130 var link = new Directory(y); 141 var link = new Directory(y);
131 Expect.isTrue(link.existsSync()); 142 Expect.isTrue(link.existsSync());
132 Expect.isTrue(temp2.existsSync()); 143 Expect.isTrue(temp2.existsSync());
133 link.deleteSync(); 144 link.deleteSync();
134 Expect.isFalse(link.existsSync()); 145 Expect.isFalse(link.existsSync());
135 Expect.isTrue(temp2.existsSync()); 146 Expect.isTrue(temp2.existsSync());
136 createLink(temp2.path, y, () { 147 createLink(temp2.path, y, true, () {
137 Expect.isTrue(link.existsSync()); 148 Expect.isTrue(link.existsSync());
138 temp.deleteSync(recursive: true); 149 temp.deleteSync(recursive: true);
139 Expect.isFalse(link.existsSync()); 150 Expect.isFalse(link.existsSync());
140 Expect.isTrue(temp2.existsSync()); 151 Expect.isTrue(temp2.existsSync());
141 Expect.isTrue(new File(x).existsSync()); 152 Expect.isTrue(new File(x).existsSync());
142 temp2.deleteSync(recursive: true); 153 temp2.deleteSync(recursive: true);
143 }); 154 });
144 }); 155 });
145 } 156 }
146 157
147 158
148 testDirectoryListing() { 159 testDirectoryListing() {
149 var keepAlive = new ReceivePort(); 160 var keepAlive = new ReceivePort();
150 var temp = new Directory('').createTempSync(); 161 var temp = new Directory('').createTempSync();
151 var temp2 = new Directory('').createTempSync(); 162 var temp2 = new Directory('').createTempSync();
152 var y = '${temp.path}${Platform.pathSeparator}y'; 163 var y = '${temp.path}${Platform.pathSeparator}y';
153 var x = '${temp2.path}${Platform.pathSeparator}x'; 164 var x = '${temp2.path}${Platform.pathSeparator}x';
154 new File(x).createSync(); 165 new File(x).createSync();
155 createLink(temp2.path, y, () { 166 createLink(temp2.path, y, true, () {
156 var files = []; 167 var files = [];
157 var dirs = []; 168 var dirs = [];
158 for (var entry in temp.listSync(recursive:true)) { 169 for (var entry in temp.listSync(recursive:true)) {
159 if (entry is File) { 170 if (entry is File) {
160 files.add(entry.path); 171 files.add(entry.path);
161 } else { 172 } else {
162 Expect.isTrue(entry is Directory); 173 Expect.isTrue(entry is Directory);
163 dirs.add(entry.path); 174 dirs.add(entry.path);
164 } 175 }
165 } 176 }
(...skipping 26 matching lines...) Expand all
192 } 203 }
193 204
194 205
195 testDirectoryListingBrokenLink() { 206 testDirectoryListingBrokenLink() {
196 var keepAlive = new ReceivePort(); 207 var keepAlive = new ReceivePort();
197 var temp = new Directory('').createTempSync(); 208 var temp = new Directory('').createTempSync();
198 var x = '${temp.path}${Platform.pathSeparator}x'; 209 var x = '${temp.path}${Platform.pathSeparator}x';
199 var link = '${temp.path}${Platform.pathSeparator}link'; 210 var link = '${temp.path}${Platform.pathSeparator}link';
200 var doesNotExist = 'this_thing_does_not_exist'; 211 var doesNotExist = 'this_thing_does_not_exist';
201 new File(x).createSync(); 212 new File(x).createSync();
202 createLink(doesNotExist, link, () { 213 createLink(doesNotExist, link, true, () {
203 Expect.throws(() => temp.listSync(recursive: true), 214 Expect.throws(() => temp.listSync(recursive: true),
204 (e) => e is DirectoryIOException); 215 (e) => e is DirectoryIOException);
205 var files = []; 216 var files = [];
206 var dirs = []; 217 var dirs = [];
207 var errors = []; 218 var errors = [];
208 temp.list(recursive: true).listen( 219 temp.list(recursive: true).listen(
209 (entity) { 220 (entity) {
210 if (entity is File) { 221 if (entity is File) {
211 files.add(entity.path); 222 files.add(entity.path);
212 } else { 223 } else {
(...skipping 17 matching lines...) Expand all
230 241
231 main() { 242 main() {
232 testFileExistsCreate(); 243 testFileExistsCreate();
233 testFileDelete(); 244 testFileDelete();
234 testFileWriteRead(); 245 testFileWriteRead();
235 testDirectoryExistsCreate(); 246 testDirectoryExistsCreate();
236 testDirectoryDelete(); 247 testDirectoryDelete();
237 testDirectoryListing(); 248 testDirectoryListing();
238 testDirectoryListingBrokenLink(); 249 testDirectoryListingBrokenLink();
239 } 250 }
OLDNEW
« no previous file with comments | « sdk/lib/io/link.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698