OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library analyzer.test.file_system.memory_file_system_test; | 5 library analyzer.test.file_system.memory_file_system_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:core'; | 8 import 'dart:core'; |
9 | 9 |
10 import 'package:analyzer/file_system/file_system.dart'; | 10 import 'package:analyzer/file_system/file_system.dart'; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 expect(exception.toString(), | 42 expect(exception.toString(), |
43 'FileSystemException(path=/my/path; message=my message)'); | 43 'FileSystemException(path=/my/path; message=my message)'); |
44 } | 44 } |
45 } | 45 } |
46 | 46 |
47 @reflectiveTest | 47 @reflectiveTest |
48 class FileTest { | 48 class FileTest { |
49 MemoryResourceProvider provider = new MemoryResourceProvider(); | 49 MemoryResourceProvider provider = new MemoryResourceProvider(); |
50 | 50 |
51 void test_delete() { | 51 void test_delete() { |
52 File file = provider.newFile('/foo/file.txt', 'content'); | 52 File file = |
| 53 provider.newFile(provider.convertPath('/foo/file.txt'), 'content'); |
53 expect(file.exists, isTrue); | 54 expect(file.exists, isTrue); |
54 // delete | 55 // delete |
55 file.delete(); | 56 file.delete(); |
56 expect(file.exists, isFalse); | 57 expect(file.exists, isFalse); |
57 } | 58 } |
58 | 59 |
59 void test_equals_beforeAndAfterCreate() { | 60 void test_equals_beforeAndAfterCreate() { |
60 String path = '/file.txt'; | 61 String path = provider.convertPath('/file.txt'); |
61 File file1 = provider.getResource(path); | 62 File file1 = provider.getResource(path); |
62 provider.newFile(path, 'contents'); | 63 provider.newFile(path, 'contents'); |
63 File file2 = provider.getResource(path); | 64 File file2 = provider.getResource(path); |
64 expect(file1 == file2, isTrue); | 65 expect(file1 == file2, isTrue); |
65 } | 66 } |
66 | 67 |
67 void test_equals_false() { | 68 void test_equals_false() { |
68 File fileA = provider.getResource('/fileA.txt'); | 69 File fileA = provider.getResource(provider.convertPath('/fileA.txt')); |
69 File fileB = provider.getResource('/fileB.txt'); | 70 File fileB = provider.getResource(provider.convertPath('/fileB.txt')); |
70 expect(fileA == new Object(), isFalse); | 71 expect(fileA == new Object(), isFalse); |
71 expect(fileA == fileB, isFalse); | 72 expect(fileA == fileB, isFalse); |
72 } | 73 } |
73 | 74 |
74 void test_equals_true() { | 75 void test_equals_true() { |
75 File file = provider.getResource('/file.txt'); | 76 File file = provider.getResource(provider.convertPath('/file.txt')); |
76 expect(file == file, isTrue); | 77 expect(file == file, isTrue); |
77 } | 78 } |
78 | 79 |
79 void test_exists_false() { | 80 void test_exists_false() { |
80 File file = provider.getResource('/file.txt'); | 81 File file = provider.getResource(provider.convertPath('/file.txt')); |
81 expect(file, isNotNull); | 82 expect(file, isNotNull); |
82 expect(file.exists, isFalse); | 83 expect(file.exists, isFalse); |
83 } | 84 } |
84 | 85 |
85 void test_exists_true() { | 86 void test_exists_true() { |
86 provider.newFile('/foo/file.txt', 'qwerty'); | 87 String path = provider.convertPath('/foo/file.txt'); |
87 File file = provider.getResource('/foo/file.txt'); | 88 provider.newFile(path, 'qwerty'); |
| 89 File file = provider.getResource(path); |
88 expect(file, isNotNull); | 90 expect(file, isNotNull); |
89 expect(file.exists, isTrue); | 91 expect(file.exists, isTrue); |
90 } | 92 } |
91 | 93 |
92 void test_fullName() { | 94 void test_fullName() { |
93 File file = provider.getResource('/foo/bar/file.txt'); | 95 String path = provider.convertPath('/foo/bar/file.txt'); |
94 expect(file.path, '/foo/bar/file.txt'); | 96 File file = provider.getResource(path); |
| 97 expect(file.path, path); |
95 } | 98 } |
96 | 99 |
97 void test_hashCode() { | 100 void test_hashCode() { |
98 String path = '/foo/bar/file.txt'; | 101 String path = provider.convertPath('/foo/bar/file.txt'); |
99 File file1 = provider.getResource(path); | 102 File file1 = provider.getResource(path); |
100 provider.newFile(path, 'contents'); | 103 provider.newFile(path, 'contents'); |
101 File file2 = provider.getResource(path); | 104 File file2 = provider.getResource(path); |
102 expect(file1.hashCode, equals(file2.hashCode)); | 105 expect(file1.hashCode, equals(file2.hashCode)); |
103 } | 106 } |
104 | 107 |
105 void test_isOrContains() { | 108 void test_isOrContains() { |
106 String path = '/foo/bar/file.txt'; | 109 String path = provider.convertPath('/foo/bar/file.txt'); |
107 File file = provider.getResource(path); | 110 File file = provider.getResource(path); |
108 expect(file.isOrContains(path), isTrue); | 111 expect(file.isOrContains(path), isTrue); |
109 expect(file.isOrContains('/foo/bar'), isFalse); | 112 expect(file.isOrContains(provider.convertPath('/foo/bar')), isFalse); |
110 } | 113 } |
111 | 114 |
112 void test_modificationStamp_doesNotExist() { | 115 void test_modificationStamp_doesNotExist() { |
113 String path = '/foo/bar/file.txt'; | 116 String path = provider.convertPath('/foo/bar/file.txt'); |
114 File file = provider.newFile(path, 'qwerty'); | 117 File file = provider.newFile(path, 'qwerty'); |
115 provider.deleteFile(path); | 118 provider.deleteFile(path); |
116 expect(() { | 119 expect(() { |
117 file.modificationStamp; | 120 file.modificationStamp; |
118 }, throwsA(_isFileSystemException)); | 121 }, throwsA(_isFileSystemException)); |
119 } | 122 } |
120 | 123 |
121 void test_modificationStamp_exists() { | 124 void test_modificationStamp_exists() { |
122 String path = '/foo/bar/file.txt'; | 125 String path = provider.convertPath('/foo/bar/file.txt'); |
123 File file = provider.newFile(path, 'qwerty'); | 126 File file = provider.newFile(path, 'qwerty'); |
124 expect(file.modificationStamp, isNonNegative); | 127 expect(file.modificationStamp, isNonNegative); |
125 } | 128 } |
126 | 129 |
127 void test_parent() { | 130 void test_parent() { |
128 provider.newFile('/foo/bar/file.txt', 'content'); | 131 String path = provider.convertPath('/foo/bar/file.txt'); |
129 File file = provider.getResource('/foo/bar/file.txt'); | 132 provider.newFile(path, 'content'); |
| 133 File file = provider.getResource(path); |
130 Resource parent = file.parent; | 134 Resource parent = file.parent; |
131 expect(parent, new isInstanceOf<Folder>()); | 135 expect(parent, new isInstanceOf<Folder>()); |
132 expect(parent.path, equals('/foo/bar')); | 136 expect(parent.path, equals(provider.convertPath('/foo/bar'))); |
133 } | 137 } |
134 | 138 |
135 void test_readAsBytesSync_doesNotExist() { | 139 void test_readAsBytesSync_doesNotExist() { |
136 File file = provider.getResource('/test.bin'); | 140 File file = provider.getResource(provider.convertPath('/test.bin')); |
137 expect(() { | 141 expect(() { |
138 file.readAsBytesSync(); | 142 file.readAsBytesSync(); |
139 }, throwsA(_isFileSystemException)); | 143 }, throwsA(_isFileSystemException)); |
140 } | 144 } |
141 | 145 |
142 void test_readAsBytesSync_exists() { | 146 void test_readAsBytesSync_exists() { |
143 List<int> bytes = <int>[1, 2, 3, 4, 5]; | 147 List<int> bytes = <int>[1, 2, 3, 4, 5]; |
144 File file = provider.newFileWithBytes('/file.bin', bytes); | 148 File file = |
| 149 provider.newFileWithBytes(provider.convertPath('/file.bin'), bytes); |
145 expect(file.readAsBytesSync(), bytes); | 150 expect(file.readAsBytesSync(), bytes); |
146 } | 151 } |
147 | 152 |
148 void test_readAsStringSync_doesNotExist() { | 153 void test_readAsStringSync_doesNotExist() { |
149 File file = provider.getResource('/test.txt'); | 154 File file = provider.getResource(provider.convertPath('/test.txt')); |
150 expect(() { | 155 expect(() { |
151 file.readAsStringSync(); | 156 file.readAsStringSync(); |
152 }, throwsA(_isFileSystemException)); | 157 }, throwsA(_isFileSystemException)); |
153 } | 158 } |
154 | 159 |
155 void test_readAsStringSync_exists() { | 160 void test_readAsStringSync_exists() { |
156 File file = provider.newFile('/file.txt', 'abc'); | 161 File file = provider.newFile(provider.convertPath('/file.txt'), 'abc'); |
157 expect(file.readAsStringSync(), 'abc'); | 162 expect(file.readAsStringSync(), 'abc'); |
158 } | 163 } |
159 | 164 |
160 void test_renameSync_newDoesNotExist() { | 165 void test_renameSync_newDoesNotExist() { |
161 String oldPath = '/foo/bar/file.txt'; | 166 String oldPath = provider.convertPath('/foo/bar/file.txt'); |
162 String newPath = '/foo/bar/new-file.txt'; | 167 String newPath = provider.convertPath('/foo/bar/new-file.txt'); |
163 File file = provider.newFile(oldPath, 'text'); | 168 File file = provider.newFile(oldPath, 'text'); |
164 File newFile = file.renameSync(newPath); | 169 File newFile = file.renameSync(newPath); |
165 expect(file.path, oldPath); | 170 expect(file.path, oldPath); |
166 expect(file.exists, isFalse); | 171 expect(file.exists, isFalse); |
167 expect(newFile.path, newPath); | 172 expect(newFile.path, newPath); |
168 expect(newFile.exists, isTrue); | 173 expect(newFile.exists, isTrue); |
169 expect(newFile.readAsStringSync(), 'text'); | 174 expect(newFile.readAsStringSync(), 'text'); |
170 } | 175 } |
171 | 176 |
172 void test_renameSync_newExists_file() { | 177 void test_renameSync_newExists_file() { |
173 String oldPath = '/foo/bar/file.txt'; | 178 String oldPath = provider.convertPath('/foo/bar/file.txt'); |
174 String newPath = '/foo/bar/new-file.txt'; | 179 String newPath = provider.convertPath('/foo/bar/new-file.txt'); |
175 File file = provider.newFile(oldPath, 'text'); | 180 File file = provider.newFile(oldPath, 'text'); |
176 provider.newFile(newPath, 'new text'); | 181 provider.newFile(newPath, 'new text'); |
177 File newFile = file.renameSync(newPath); | 182 File newFile = file.renameSync(newPath); |
178 expect(file.path, oldPath); | 183 expect(file.path, oldPath); |
179 expect(file.exists, isFalse); | 184 expect(file.exists, isFalse); |
180 expect(newFile.path, newPath); | 185 expect(newFile.path, newPath); |
181 expect(newFile.exists, isTrue); | 186 expect(newFile.exists, isTrue); |
182 expect(newFile.readAsStringSync(), 'text'); | 187 expect(newFile.readAsStringSync(), 'text'); |
183 } | 188 } |
184 | 189 |
185 void test_renameSync_newExists_folder() { | 190 void test_renameSync_newExists_folder() { |
186 String oldPath = '/foo/bar/file.txt'; | 191 String oldPath = provider.convertPath('/foo/bar/file.txt'); |
187 String newPath = '/foo/bar/baz'; | 192 String newPath = provider.convertPath('/foo/bar/baz'); |
188 File file = provider.newFile(oldPath, 'text'); | 193 File file = provider.newFile(oldPath, 'text'); |
189 provider.newFolder(newPath); | 194 provider.newFolder(newPath); |
190 expect(() { | 195 expect(() { |
191 file.renameSync(newPath); | 196 file.renameSync(newPath); |
192 }, throwsA(_isFileSystemException)); | 197 }, throwsA(_isFileSystemException)); |
193 expect(file.path, oldPath); | 198 expect(file.path, oldPath); |
194 expect(file.exists, isTrue); | 199 expect(file.exists, isTrue); |
195 } | 200 } |
196 | 201 |
197 void test_resolveSymbolicLinksSync() { | 202 void test_resolveSymbolicLinksSync() { |
198 File file = provider.newFile('/test.txt', 'text'); | 203 File file = provider.newFile(provider.convertPath('/test.txt'), 'text'); |
199 expect(file.resolveSymbolicLinksSync(), file); | 204 expect(file.resolveSymbolicLinksSync(), file); |
200 } | 205 } |
201 | 206 |
202 void test_shortName() { | 207 void test_shortName() { |
203 File file = provider.getResource('/foo/bar/file.txt'); | 208 File file = provider.getResource(provider.convertPath('/foo/bar/file.txt')); |
204 expect(file.shortName, 'file.txt'); | 209 expect(file.shortName, 'file.txt'); |
205 } | 210 } |
206 | 211 |
207 void test_toString() { | 212 void test_toString() { |
208 File file = provider.getResource('/foo/bar/file.txt'); | 213 String path = provider.convertPath('/foo/bar/file.txt'); |
209 expect(file.toString(), '/foo/bar/file.txt'); | 214 File file = provider.getResource(path); |
| 215 expect(file.toString(), path); |
210 } | 216 } |
211 | 217 |
212 void test_toUri() { | 218 void test_toUri() { |
213 String path = '/foo/file.txt'; | 219 String path = provider.convertPath('/foo/file.txt'); |
214 File file = provider.newFile(path, ''); | 220 File file = provider.newFile(path, ''); |
215 expect(file.toUri(), new Uri.file(path, windows: false)); | 221 expect(file.toUri(), provider.pathContext.toUri(path)); |
216 } | 222 } |
217 | 223 |
218 void test_writeAsBytesSync_existing() { | 224 void test_writeAsBytesSync_existing() { |
219 List<int> content = <int>[1, 2]; | 225 List<int> content = <int>[1, 2]; |
220 File file = provider.newFileWithBytes('/foo/file.bin', content); | 226 File file = provider.newFileWithBytes( |
| 227 provider.convertPath('/foo/file.bin'), content); |
221 expect(file.readAsBytesSync(), content); | 228 expect(file.readAsBytesSync(), content); |
222 // write new bytes | 229 // write new bytes |
223 content = <int>[10, 20]; | 230 content = <int>[10, 20]; |
224 file.writeAsBytesSync(content); | 231 file.writeAsBytesSync(content); |
225 expect(file.readAsBytesSync(), content); | 232 expect(file.readAsBytesSync(), content); |
226 } | 233 } |
227 | 234 |
228 void test_writeAsBytesSync_new() { | 235 void test_writeAsBytesSync_new() { |
229 File file = provider.getFile('/foo/file.bin'); | 236 File file = provider.getFile(provider.convertPath('/foo/file.bin')); |
230 expect(file.exists, false); | 237 expect(file.exists, false); |
231 // write new bytes | 238 // write new bytes |
232 List<int> content = <int>[10, 20]; | 239 List<int> content = <int>[10, 20]; |
233 file.writeAsBytesSync(content); | 240 file.writeAsBytesSync(content); |
234 expect(file.exists, true); | 241 expect(file.exists, true); |
235 expect(file.readAsBytesSync(), content); | 242 expect(file.readAsBytesSync(), content); |
236 } | 243 } |
237 | 244 |
238 void test_writeAsStringSync_existing() { | 245 void test_writeAsStringSync_existing() { |
239 String content = 'ab'; | 246 String content = 'ab'; |
240 File file = provider.newFile('/foo/file.txt', content); | 247 File file = |
| 248 provider.newFile(provider.convertPath('/foo/file.txt'), content); |
241 expect(file.readAsStringSync(), content); | 249 expect(file.readAsStringSync(), content); |
242 // write new bytes | 250 // write new bytes |
243 content = 'CD'; | 251 content = 'CD'; |
244 file.writeAsStringSync(content); | 252 file.writeAsStringSync(content); |
245 expect(file.readAsStringSync(), content); | 253 expect(file.readAsStringSync(), content); |
246 } | 254 } |
247 | 255 |
248 void test_writeAsStringSync_new() { | 256 void test_writeAsStringSync_new() { |
249 File file = provider.getFile('/foo/file.txt'); | 257 File file = provider.getFile(provider.convertPath('/foo/file.txt')); |
250 expect(file.exists, false); | 258 expect(file.exists, false); |
251 // write new bytes | 259 // write new bytes |
252 String content = 'ef'; | 260 String content = 'ef'; |
253 file.writeAsStringSync(content); | 261 file.writeAsStringSync(content); |
254 expect(file.exists, true); | 262 expect(file.exists, true); |
255 expect(file.readAsStringSync(), content); | 263 expect(file.readAsStringSync(), content); |
256 } | 264 } |
257 } | 265 } |
258 | 266 |
259 @reflectiveTest | 267 @reflectiveTest |
260 class FolderTest { | 268 class FolderTest { |
261 static const String path = '/foo/bar'; | |
262 | |
263 MemoryResourceProvider provider = new MemoryResourceProvider(); | 269 MemoryResourceProvider provider = new MemoryResourceProvider(); |
| 270 String path; |
264 Folder folder; | 271 Folder folder; |
265 | 272 |
266 void setUp() { | 273 void setUp() { |
| 274 path = provider.convertPath('/foo/bar'); |
267 folder = provider.newFolder(path); | 275 folder = provider.newFolder(path); |
268 } | 276 } |
269 | 277 |
270 void test_canonicalizePath() { | 278 void test_canonicalizePath() { |
271 expect(folder.canonicalizePath('baz'), equals('/foo/bar/baz')); | 279 expect(folder.canonicalizePath(provider.convertPath('baz')), |
272 expect(folder.canonicalizePath('/baz'), equals('/baz')); | 280 equals(provider.convertPath('/foo/bar/baz'))); |
273 expect(folder.canonicalizePath('../baz'), equals('/foo/baz')); | 281 expect(folder.canonicalizePath(provider.convertPath('/baz')), |
274 expect(folder.canonicalizePath('/a/b/../c'), equals('/a/c')); | 282 equals(provider.convertPath('/baz'))); |
275 expect(folder.canonicalizePath('./baz'), equals('/foo/bar/baz')); | 283 expect(folder.canonicalizePath(provider.convertPath('../baz')), |
276 expect(folder.canonicalizePath('/a/b/./c'), equals('/a/b/c')); | 284 equals(provider.convertPath('/foo/baz'))); |
| 285 expect(folder.canonicalizePath(provider.convertPath('/a/b/../c')), |
| 286 equals(provider.convertPath('/a/c'))); |
| 287 expect(folder.canonicalizePath(provider.convertPath('./baz')), |
| 288 equals(provider.convertPath('/foo/bar/baz'))); |
| 289 expect(folder.canonicalizePath(provider.convertPath('/a/b/./c')), |
| 290 equals(provider.convertPath('/a/b/c'))); |
277 } | 291 } |
278 | 292 |
279 void test_contains() { | 293 void test_contains() { |
280 expect(folder.contains('/foo/bar/aaa.txt'), isTrue); | 294 expect(folder.contains(provider.convertPath('/foo/bar/aaa.txt')), isTrue); |
281 expect(folder.contains('/foo/bar/aaa/bbb.txt'), isTrue); | 295 expect( |
282 expect(folder.contains('/baz.txt'), isFalse); | 296 folder.contains(provider.convertPath('/foo/bar/aaa/bbb.txt')), isTrue); |
283 expect(folder.contains('/foo/bar'), isFalse); | 297 expect(folder.contains(provider.convertPath('/baz.txt')), isFalse); |
| 298 expect(folder.contains(provider.convertPath('/foo/bar')), isFalse); |
284 } | 299 } |
285 | 300 |
286 void test_delete() { | 301 void test_delete() { |
287 Folder folder = provider.newFolder('/foo'); | 302 Folder folder = provider.newFolder(provider.convertPath('/foo')); |
288 Folder barFolder = provider.newFolder('/foo/bar'); | 303 Folder barFolder = provider.newFolder(provider.convertPath('/foo/bar')); |
289 File aFile = provider.newFile('/foo/bar/a.txt', ''); | 304 File aFile = provider.newFile(provider.convertPath('/foo/bar/a.txt'), ''); |
290 File bFile = provider.newFile('/foo/b.txt', ''); | 305 File bFile = provider.newFile(provider.convertPath('/foo/b.txt'), ''); |
291 expect(folder.exists, isTrue); | 306 expect(folder.exists, isTrue); |
292 expect(barFolder.exists, isTrue); | 307 expect(barFolder.exists, isTrue); |
293 expect(aFile.exists, isTrue); | 308 expect(aFile.exists, isTrue); |
294 expect(bFile.exists, isTrue); | 309 expect(bFile.exists, isTrue); |
295 // delete 'folder' | 310 // delete 'folder' |
296 folder.delete(); | 311 folder.delete(); |
297 expect(folder.exists, isFalse); | 312 expect(folder.exists, isFalse); |
298 expect(barFolder.exists, isFalse); | 313 expect(barFolder.exists, isFalse); |
299 expect(aFile.exists, isFalse); | 314 expect(aFile.exists, isFalse); |
300 expect(bFile.exists, isFalse); | 315 expect(bFile.exists, isFalse); |
301 } | 316 } |
302 | 317 |
303 void test_equal_false() { | 318 void test_equal_false() { |
304 String path2 = '/foo/baz'; | 319 String path2 = provider.convertPath('/foo/baz'); |
305 Folder folder2 = provider.newFolder(path2); | 320 Folder folder2 = provider.newFolder(path2); |
306 expect(folder == folder2, isFalse); | 321 expect(folder == folder2, isFalse); |
307 } | 322 } |
308 | 323 |
309 void test_equal_true() { | 324 void test_equal_true() { |
310 Folder folder2 = provider.getResource(path); | 325 Folder folder2 = provider.getResource(path); |
311 expect(folder == folder2, isTrue); | 326 expect(folder == folder2, isTrue); |
312 } | 327 } |
313 | 328 |
314 void test_getChild_doesNotExist() { | 329 void test_getChild_doesNotExist() { |
315 File file = folder.getChild('file.txt'); | 330 File file = folder.getChild('file.txt'); |
316 expect(file, isNotNull); | 331 expect(file, isNotNull); |
317 expect(file.exists, isFalse); | 332 expect(file.exists, isFalse); |
318 } | 333 } |
319 | 334 |
320 void test_getChild_file() { | 335 void test_getChild_file() { |
321 provider.newFile('/foo/bar/file.txt', 'content'); | 336 provider.newFile(provider.convertPath('/foo/bar/file.txt'), 'content'); |
322 File child = folder.getChild('file.txt'); | 337 File child = folder.getChild('file.txt'); |
323 expect(child, isNotNull); | 338 expect(child, isNotNull); |
324 expect(child.exists, isTrue); | 339 expect(child.exists, isTrue); |
325 } | 340 } |
326 | 341 |
327 void test_getChild_folder() { | 342 void test_getChild_folder() { |
328 provider.newFolder('/foo/bar/baz'); | 343 provider.newFolder(provider.convertPath('/foo/bar/baz')); |
329 Folder child = folder.getChild('baz'); | 344 Folder child = folder.getChild('baz'); |
330 expect(child, isNotNull); | 345 expect(child, isNotNull); |
331 expect(child.exists, isTrue); | 346 expect(child.exists, isTrue); |
332 } | 347 } |
333 | 348 |
334 void test_getChildAssumingFile_doesNotExist() { | 349 void test_getChildAssumingFile_doesNotExist() { |
335 File child = folder.getChildAssumingFile('name'); | 350 File child = folder.getChildAssumingFile('name'); |
336 expect(child, isNotNull); | 351 expect(child, isNotNull); |
337 expect(child.exists, isFalse); | 352 expect(child.exists, isFalse); |
338 } | 353 } |
339 | 354 |
340 void test_getChildAssumingFile_file() { | 355 void test_getChildAssumingFile_file() { |
341 provider.newFile('/foo/bar/name', 'content'); | 356 provider.newFile(provider.convertPath('/foo/bar/name'), 'content'); |
342 File child = folder.getChildAssumingFile('name'); | 357 File child = folder.getChildAssumingFile('name'); |
343 expect(child, isNotNull); | 358 expect(child, isNotNull); |
344 expect(child.exists, isTrue); | 359 expect(child.exists, isTrue); |
345 } | 360 } |
346 | 361 |
347 void test_getChildAssumingFile_folder() { | 362 void test_getChildAssumingFile_folder() { |
348 provider.newFolder('/foo/bar/name'); | 363 provider.newFolder(provider.convertPath('/foo/bar/name')); |
349 File child = folder.getChildAssumingFile('name'); | 364 File child = folder.getChildAssumingFile('name'); |
350 expect(child, isNotNull); | 365 expect(child, isNotNull); |
351 expect(child.exists, isFalse); | 366 expect(child.exists, isFalse); |
352 } | 367 } |
353 | 368 |
354 void test_getChildAssumingFolder_doesNotExist() { | 369 void test_getChildAssumingFolder_doesNotExist() { |
355 Folder child = folder.getChildAssumingFolder('foldername'); | 370 Folder child = folder.getChildAssumingFolder('foldername'); |
356 expect(child, isNotNull); | 371 expect(child, isNotNull); |
357 expect(child.exists, isFalse); | 372 expect(child.exists, isFalse); |
358 } | 373 } |
359 | 374 |
360 void test_getChildAssumingFolder_file() { | 375 void test_getChildAssumingFolder_file() { |
361 provider.newFile('/foo/bar/foldername', 'content'); | 376 provider.newFile(provider.convertPath('/foo/bar/foldername'), 'content'); |
362 Folder child = folder.getChildAssumingFolder('foldername'); | 377 Folder child = folder.getChildAssumingFolder('foldername'); |
363 expect(child, isNotNull); | 378 expect(child, isNotNull); |
364 expect(child.exists, isFalse); | 379 expect(child.exists, isFalse); |
365 } | 380 } |
366 | 381 |
367 void test_getChildAssumingFolder_folder() { | 382 void test_getChildAssumingFolder_folder() { |
368 provider.newFolder('/foo/bar/foldername'); | 383 provider.newFolder(provider.convertPath('/foo/bar/foldername')); |
369 Folder child = folder.getChildAssumingFolder('foldername'); | 384 Folder child = folder.getChildAssumingFolder('foldername'); |
370 expect(child, isNotNull); | 385 expect(child, isNotNull); |
371 expect(child.exists, isTrue); | 386 expect(child.exists, isTrue); |
372 } | 387 } |
373 | 388 |
374 void test_getChildren_doesNotExist() { | 389 void test_getChildren_doesNotExist() { |
375 folder = folder.getChildAssumingFolder('no-such-folder'); | 390 folder = folder.getChildAssumingFolder('no-such-folder'); |
376 expect(() { | 391 expect(() { |
377 folder.getChildren(); | 392 folder.getChildren(); |
378 }, throwsA(_isFileSystemException)); | 393 }, throwsA(_isFileSystemException)); |
379 } | 394 } |
380 | 395 |
381 void test_getChildren_exists() { | 396 void test_getChildren_exists() { |
382 provider.newFile('/foo/bar/a.txt', 'aaa'); | 397 provider.newFile(provider.convertPath('/foo/bar/a.txt'), 'aaa'); |
383 provider.newFolder('/foo/bar/bFolder'); | 398 provider.newFolder(provider.convertPath('/foo/bar/bFolder')); |
384 provider.newFile('/foo/bar/c.txt', 'ccc'); | 399 provider.newFile(provider.convertPath('/foo/bar/c.txt'), 'ccc'); |
385 // prepare 3 children | 400 // prepare 3 children |
386 List<Resource> children = folder.getChildren(); | 401 List<Resource> children = folder.getChildren(); |
387 expect(children, hasLength(3)); | 402 expect(children, hasLength(3)); |
388 children.sort((a, b) => a.shortName.compareTo(b.shortName)); | 403 children.sort((a, b) => a.shortName.compareTo(b.shortName)); |
389 // check that each child exists | 404 // check that each child exists |
390 children.forEach((child) { | 405 children.forEach((child) { |
391 expect(child.exists, true); | 406 expect(child.exists, true); |
392 }); | 407 }); |
393 // check names | 408 // check names |
394 expect(children[0].shortName, 'a.txt'); | 409 expect(children[0].shortName, 'a.txt'); |
395 expect(children[1].shortName, 'bFolder'); | 410 expect(children[1].shortName, 'bFolder'); |
396 expect(children[2].shortName, 'c.txt'); | 411 expect(children[2].shortName, 'c.txt'); |
397 // check types | 412 // check types |
398 expect(children[0], _isFile); | 413 expect(children[0], _isFile); |
399 expect(children[1], _isFolder); | 414 expect(children[1], _isFolder); |
400 expect(children[2], _isFile); | 415 expect(children[2], _isFile); |
401 } | 416 } |
402 | 417 |
403 void test_hashCode() { | 418 void test_hashCode() { |
404 Folder folder2 = provider.getResource(path); | 419 Folder folder2 = provider.getResource(path); |
405 expect(folder.hashCode, folder2.hashCode); | 420 expect(folder.hashCode, folder2.hashCode); |
406 } | 421 } |
407 | 422 |
408 void test_isOrContains() { | 423 void test_isOrContains() { |
409 expect(folder.isOrContains('/foo/bar'), isTrue); | 424 expect(folder.isOrContains(provider.convertPath('/foo/bar')), isTrue); |
410 expect(folder.isOrContains('/foo/bar/aaa.txt'), isTrue); | 425 expect( |
411 expect(folder.isOrContains('/foo/bar/aaa/bbb.txt'), isTrue); | 426 folder.isOrContains(provider.convertPath('/foo/bar/aaa.txt')), isTrue); |
412 expect(folder.isOrContains('/baz.txt'), isFalse); | 427 expect(folder.isOrContains(provider.convertPath('/foo/bar/aaa/bbb.txt')), |
| 428 isTrue); |
| 429 expect(folder.isOrContains(provider.convertPath('/baz.txt')), isFalse); |
413 } | 430 } |
414 | 431 |
415 void test_parent() { | 432 void test_parent() { |
416 Resource parent1 = folder.parent; | 433 Resource parent1 = folder.parent; |
417 expect(parent1, new isInstanceOf<Folder>()); | 434 expect(parent1, new isInstanceOf<Folder>()); |
418 expect(parent1.path, equals('/foo')); | 435 expect(parent1.path, equals(provider.convertPath('/foo'))); |
419 Resource parent2 = parent1.parent; | 436 Resource parent2 = parent1.parent; |
420 expect(parent2, new isInstanceOf<Folder>()); | 437 expect(parent2, new isInstanceOf<Folder>()); |
421 expect(parent2.path, equals('/')); | 438 expect(parent2.path, equals(provider.convertPath('/'))); |
422 expect(parent2.parent, isNull); | 439 expect(parent2.parent, isNull); |
423 } | 440 } |
424 | 441 |
425 void test_toUri() { | 442 void test_toUri() { |
426 String path = '/foo/directory'; | 443 String path = provider.convertPath('/foo/directory'); |
427 Folder folder = provider.newFolder(path); | 444 Folder folder = provider.newFolder(path); |
428 expect(folder.toUri(), new Uri.directory(path, windows: false)); | 445 expect(folder.toUri(), provider.pathContext.toUri(path)); |
429 } | 446 } |
430 } | 447 } |
431 | 448 |
432 @reflectiveTest | 449 @reflectiveTest |
433 class MemoryFileSourceExistingTest { | 450 class MemoryFileSourceExistingTest { |
434 MemoryResourceProvider provider = new MemoryResourceProvider(); | 451 MemoryResourceProvider provider = new MemoryResourceProvider(); |
| 452 String path; |
435 Source source; | 453 Source source; |
436 | 454 |
437 setUp() { | 455 setUp() { |
438 File file = provider.newFile('/foo/test.dart', 'library test;'); | 456 path = provider.convertPath('/foo/test.dart'); |
| 457 File file = provider.newFile(path, 'library test;'); |
439 source = file.createSource(); | 458 source = file.createSource(); |
440 } | 459 } |
441 | 460 |
442 void test_contents() { | 461 void test_contents() { |
443 TimestampedData<String> contents = source.contents; | 462 TimestampedData<String> contents = source.contents; |
444 expect(contents.data, 'library test;'); | 463 expect(contents.data, 'library test;'); |
445 } | 464 } |
446 | 465 |
447 void test_encoding() { | 466 void test_encoding() { |
448 expect(source.encoding, 'file:///foo/test.dart'); | 467 String expected = 'file:///foo/test.dart'; |
| 468 if (provider.pathContext == windows) { |
| 469 expected = 'file:///C:/foo/test.dart'; |
| 470 } |
| 471 expect(source.encoding, expected); |
449 } | 472 } |
450 | 473 |
451 void test_equals_false_differentFile() { | 474 void test_equals_false_differentFile() { |
452 File fileA = provider.newFile('/foo/a.dart', ''); | 475 File fileA = provider.newFile(provider.convertPath('/foo/a.dart'), ''); |
453 File fileB = provider.newFile('/foo/b.dart', ''); | 476 File fileB = provider.newFile(provider.convertPath('/foo/b.dart'), ''); |
454 Source sourceA = fileA.createSource(); | 477 Source sourceA = fileA.createSource(); |
455 Source sourceB = fileB.createSource(); | 478 Source sourceB = fileB.createSource(); |
456 expect(sourceA == sourceB, isFalse); | 479 expect(sourceA == sourceB, isFalse); |
457 } | 480 } |
458 | 481 |
459 void test_equals_false_notMemorySource() { | 482 void test_equals_false_notMemorySource() { |
460 File file = provider.newFile('/foo/test.dart', ''); | 483 File file = provider.newFile(path, ''); |
461 Source source = file.createSource(); | 484 Source source = file.createSource(); |
462 expect(source == new Object(), isFalse); | 485 expect(source == new Object(), isFalse); |
463 } | 486 } |
464 | 487 |
465 void test_equals_true_sameFile() { | 488 void test_equals_true_sameFile() { |
466 File file = provider.newFile('/foo/test.dart', ''); | 489 File file = provider.newFile(path, ''); |
467 Source sourceA = file.createSource(); | 490 Source sourceA = file.createSource(); |
468 Source sourceB = file.createSource(); | 491 Source sourceB = file.createSource(); |
469 expect(sourceA == sourceB, isTrue); | 492 expect(sourceA == sourceB, isTrue); |
470 } | 493 } |
471 | 494 |
472 void test_equals_true_self() { | 495 void test_equals_true_self() { |
473 File file = provider.newFile('/foo/test.dart', ''); | 496 File file = provider.newFile(path, ''); |
474 Source source = file.createSource(); | 497 Source source = file.createSource(); |
475 expect(source == source, isTrue); | 498 expect(source == source, isTrue); |
476 } | 499 } |
477 | 500 |
478 void test_exists() { | 501 void test_exists() { |
479 expect(source.exists(), isTrue); | 502 expect(source.exists(), isTrue); |
480 } | 503 } |
481 | 504 |
482 void test_fullName() { | 505 void test_fullName() { |
483 expect(source.fullName, '/foo/test.dart'); | 506 expect(source.fullName, path); |
484 } | 507 } |
485 | 508 |
486 void test_hashCode() { | 509 void test_hashCode() { |
487 source.hashCode; | 510 source.hashCode; |
488 } | 511 } |
489 | 512 |
490 void test_resolveRelative() { | 513 void test_resolveRelative() { |
491 Uri relative = resolveRelativeUri(source.uri, new Uri.file('bar/baz.dart')); | 514 Uri relative = resolveRelativeUri( |
492 expect(relative.path, '/foo/bar/baz.dart'); | 515 source.uri, |
| 516 provider.pathContext |
| 517 .toUri(provider.pathContext.join('bar', 'baz.dart'))); |
| 518 expect(relative, |
| 519 provider.pathContext.toUri(provider.convertPath('/foo/bar/baz.dart'))); |
493 } | 520 } |
494 | 521 |
495 void test_resolveRelative_dart() { | 522 void test_resolveRelative_dart() { |
496 File file = provider.newFile('/sdk/lib/core/core.dart', ''); | 523 File file = |
| 524 provider.newFile(provider.convertPath('/sdk/lib/core/core.dart'), ''); |
497 Source source = file.createSource(Uri.parse('dart:core')); | 525 Source source = file.createSource(Uri.parse('dart:core')); |
498 Uri resolved = resolveRelativeUri(source.uri, Uri.parse('int.dart')); | 526 Uri resolved = resolveRelativeUri(source.uri, Uri.parse('int.dart')); |
499 expect(resolved.toString(), 'dart:core/int.dart'); | 527 expect(resolved.toString(), 'dart:core/int.dart'); |
500 } | 528 } |
501 | 529 |
502 void test_shortName() { | 530 void test_shortName() { |
503 expect(source.shortName, 'test.dart'); | 531 expect(source.shortName, 'test.dart'); |
504 } | 532 } |
505 } | 533 } |
506 | 534 |
507 @reflectiveTest | 535 @reflectiveTest |
508 class MemoryFileSourceNotExistingTest { | 536 class MemoryFileSourceNotExistingTest { |
509 MemoryResourceProvider provider = new MemoryResourceProvider(); | 537 MemoryResourceProvider provider = new MemoryResourceProvider(); |
| 538 String path; |
510 Source source; | 539 Source source; |
511 | 540 |
512 setUp() { | 541 setUp() { |
513 File file = provider.getResource('/foo/test.dart'); | 542 path = provider.convertPath('/foo/test.dart'); |
| 543 File file = provider.getResource(path); |
514 source = file.createSource(); | 544 source = file.createSource(); |
515 } | 545 } |
516 | 546 |
517 void test_contents() { | 547 void test_contents() { |
518 expect(() { | 548 expect(() { |
519 source.contents; | 549 source.contents; |
520 }, throwsA(_isFileSystemException)); | 550 }, throwsA(_isFileSystemException)); |
521 } | 551 } |
522 | 552 |
523 void test_encoding() { | 553 void test_encoding() { |
524 expect(source.encoding, 'file:///foo/test.dart'); | 554 String expected = 'file:///foo/test.dart'; |
| 555 if (provider.pathContext == windows) { |
| 556 expected = 'file:///C:/foo/test.dart'; |
| 557 } |
| 558 expect(source.encoding, expected); |
525 } | 559 } |
526 | 560 |
527 void test_exists() { | 561 void test_exists() { |
528 expect(source.exists(), isFalse); | 562 expect(source.exists(), isFalse); |
529 } | 563 } |
530 | 564 |
531 void test_fullName() { | 565 void test_fullName() { |
532 expect(source.fullName, '/foo/test.dart'); | 566 expect(source.fullName, path); |
533 } | 567 } |
534 | 568 |
535 void test_modificationStamp() { | 569 void test_modificationStamp() { |
536 expect(source.modificationStamp, -1); | 570 expect(source.modificationStamp, -1); |
537 } | 571 } |
538 | 572 |
539 void test_resolveRelative() { | 573 void test_resolveRelative() { |
540 Uri relative = resolveRelativeUri(source.uri, new Uri.file('bar/baz.dart')); | 574 Uri relative = resolveRelativeUri( |
541 expect(relative.path, '/foo/bar/baz.dart'); | 575 source.uri, |
| 576 provider.pathContext |
| 577 .toUri(provider.pathContext.join('bar', 'baz.dart'))); |
| 578 expect(relative, |
| 579 provider.pathContext.toUri(provider.convertPath('/foo/bar/baz.dart'))); |
542 } | 580 } |
543 | 581 |
544 void test_shortName() { | 582 void test_shortName() { |
545 expect(source.shortName, 'test.dart'); | 583 expect(source.shortName, 'test.dart'); |
546 } | 584 } |
547 } | 585 } |
548 | 586 |
549 @reflectiveTest | 587 @reflectiveTest |
550 class MemoryResourceProviderTest { | 588 class MemoryResourceProviderTest { |
551 MemoryResourceProvider provider = new MemoryResourceProvider(); | 589 MemoryResourceProvider provider = new MemoryResourceProvider(); |
552 | 590 |
553 void test_deleteFile_folder() { | 591 void test_deleteFile_folder() { |
554 String path = '/my/file'; | 592 String path = provider.convertPath('/my/file'); |
555 provider.newFolder(path); | 593 provider.newFolder(path); |
556 expect(() { | 594 expect(() { |
557 provider.deleteFile(path); | 595 provider.deleteFile(path); |
558 }, throwsA(new isInstanceOf<ArgumentError>())); | 596 }, throwsA(new isInstanceOf<ArgumentError>())); |
559 expect(provider.getResource(path), new isInstanceOf<Folder>()); | 597 expect(provider.getResource(path), new isInstanceOf<Folder>()); |
560 } | 598 } |
561 | 599 |
562 void test_deleteFile_notExistent() { | 600 void test_deleteFile_notExistent() { |
563 String path = '/my/file'; | 601 String path = provider.convertPath('/my/file'); |
564 expect(() { | 602 expect(() { |
565 provider.deleteFile(path); | 603 provider.deleteFile(path); |
566 }, throwsA(new isInstanceOf<ArgumentError>())); | 604 }, throwsA(new isInstanceOf<ArgumentError>())); |
567 Resource file = provider.getResource(path); | 605 Resource file = provider.getResource(path); |
568 expect(file, isNotNull); | 606 expect(file, isNotNull); |
569 expect(file.exists, isFalse); | 607 expect(file.exists, isFalse); |
570 } | 608 } |
571 | 609 |
572 void test_deleteFile_success() { | 610 void test_deleteFile_success() { |
573 String path = '/my/file'; | 611 String path = provider.convertPath('/my/file'); |
574 provider.newFile(path, 'contents'); | 612 provider.newFile(path, 'contents'); |
575 Resource file = provider.getResource(path); | 613 Resource file = provider.getResource(path); |
576 expect(file, new isInstanceOf<File>()); | 614 expect(file, new isInstanceOf<File>()); |
577 expect(file.exists, isTrue); | 615 expect(file.exists, isTrue); |
578 provider.deleteFile(path); | 616 provider.deleteFile(path); |
579 expect(file.exists, isFalse); | 617 expect(file.exists, isFalse); |
580 } | 618 } |
581 | 619 |
582 test_getModificationTimes() async { | 620 test_getModificationTimes() async { |
583 File file = provider.newFile('/test.dart', ''); | 621 File file = provider.newFile(provider.convertPath('/test.dart'), ''); |
584 Source source = file.createSource(); | 622 Source source = file.createSource(); |
585 List<int> times = await provider.getModificationTimes([source]); | 623 List<int> times = await provider.getModificationTimes([source]); |
586 expect(times, [source.modificationStamp]); | 624 expect(times, [source.modificationStamp]); |
587 } | 625 } |
588 | 626 |
589 void test_getStateLocation_uniqueness() { | 627 void test_getStateLocation_uniqueness() { |
590 String idOne = 'one'; | 628 String idOne = 'one'; |
591 Folder folderOne = provider.getStateLocation(idOne); | 629 Folder folderOne = provider.getStateLocation(idOne); |
592 expect(folderOne, isNotNull); | 630 expect(folderOne, isNotNull); |
593 String idTwo = 'two'; | 631 String idTwo = 'two'; |
594 Folder folderTwo = provider.getStateLocation(idTwo); | 632 Folder folderTwo = provider.getStateLocation(idTwo); |
595 expect(folderTwo, isNotNull); | 633 expect(folderTwo, isNotNull); |
596 expect(folderTwo, isNot(equals(folderOne))); | 634 expect(folderTwo, isNot(equals(folderOne))); |
597 expect(provider.getStateLocation(idOne), equals(folderOne)); | 635 expect(provider.getStateLocation(idOne), equals(folderOne)); |
598 } | 636 } |
599 | 637 |
600 void test_modifyFile_isFolder() { | 638 void test_modifyFile_isFolder() { |
601 String path = '/my/file'; | 639 String path = provider.convertPath('/my/file'); |
602 provider.newFolder(path); | 640 provider.newFolder(path); |
603 expect(() { | 641 expect(() { |
604 provider.modifyFile(path, 'contents'); | 642 provider.modifyFile(path, 'contents'); |
605 }, throwsA(new isInstanceOf<ArgumentError>())); | 643 }, throwsA(new isInstanceOf<ArgumentError>())); |
606 expect(provider.getResource(path), new isInstanceOf<Folder>()); | 644 expect(provider.getResource(path), new isInstanceOf<Folder>()); |
607 } | 645 } |
608 | 646 |
609 void test_modifyFile_notExistent() { | 647 void test_modifyFile_notExistent() { |
610 String path = '/my/file'; | 648 String path = provider.convertPath('/my/file'); |
611 expect(() { | 649 expect(() { |
612 provider.modifyFile(path, 'contents'); | 650 provider.modifyFile(path, 'contents'); |
613 }, throwsA(new isInstanceOf<ArgumentError>())); | 651 }, throwsA(new isInstanceOf<ArgumentError>())); |
614 Resource file = provider.getResource(path); | 652 Resource file = provider.getResource(path); |
615 expect(file, isNotNull); | 653 expect(file, isNotNull); |
616 expect(file.exists, isFalse); | 654 expect(file.exists, isFalse); |
617 } | 655 } |
618 | 656 |
619 void test_modifyFile_success() { | 657 void test_modifyFile_success() { |
620 String path = '/my/file'; | 658 String path = provider.convertPath('/my/file'); |
621 provider.newFile(path, 'contents 1'); | 659 provider.newFile(path, 'contents 1'); |
622 Resource file = provider.getResource(path); | 660 Resource file = provider.getResource(path); |
623 expect(file, new isInstanceOf<File>()); | 661 expect(file, new isInstanceOf<File>()); |
624 Source source = (file as File).createSource(); | 662 Source source = (file as File).createSource(); |
625 expect(source.contents.data, equals('contents 1')); | 663 expect(source.contents.data, equals('contents 1')); |
626 provider.modifyFile(path, 'contents 2'); | 664 provider.modifyFile(path, 'contents 2'); |
627 expect(source.contents.data, equals('contents 2')); | 665 expect(source.contents.data, equals('contents 2')); |
628 } | 666 } |
629 | 667 |
630 void test_newFileWithBytes() { | 668 void test_newFileWithBytes() { |
631 String path = '/my/file'; | 669 String path = provider.convertPath('/my/file'); |
632 List<int> bytes = <int>[1, 2, 3, 4, 5]; | 670 List<int> bytes = <int>[1, 2, 3, 4, 5]; |
633 provider.newFileWithBytes(path, bytes); | 671 provider.newFileWithBytes(path, bytes); |
634 File file = provider.getResource(path); | 672 File file = provider.getResource(path); |
635 expect(file, isNotNull); | 673 expect(file, isNotNull); |
636 expect(file.exists, isTrue); | 674 expect(file.exists, isTrue); |
637 expect(file.readAsBytesSync(), bytes); | 675 expect(file.readAsBytesSync(), bytes); |
638 } | 676 } |
639 | 677 |
640 void test_newFolder_alreadyExists_asFile() { | 678 void test_newFolder_alreadyExists_asFile() { |
641 provider.newFile('/my/file', 'qwerty'); | 679 provider.newFile(provider.convertPath('/my/file'), 'qwerty'); |
642 expect(() { | 680 expect(() { |
643 provider.newFolder('/my/file'); | 681 provider.newFolder(provider.convertPath('/my/file')); |
644 }, throwsA(new isInstanceOf<ArgumentError>())); | 682 }, throwsA(new isInstanceOf<ArgumentError>())); |
645 } | 683 } |
646 | 684 |
647 void test_newFolder_alreadyExists_asFolder() { | 685 void test_newFolder_alreadyExists_asFolder() { |
648 Folder folder = provider.newFolder('/my/folder'); | 686 String path = provider.convertPath('/my/folder'); |
649 Folder newFolder = provider.newFolder('/my/folder'); | 687 Folder folder = provider.newFolder(path); |
| 688 Folder newFolder = provider.newFolder(path); |
650 expect(newFolder, folder); | 689 expect(newFolder, folder); |
651 } | 690 } |
652 | 691 |
653 void test_newFolder_emptyPath() { | 692 void test_newFolder_emptyPath() { |
654 expect(() { | 693 expect(() { |
655 provider.newFolder(''); | 694 provider.newFolder(''); |
656 }, throwsA(new isInstanceOf<ArgumentError>())); | 695 }, throwsA(new isInstanceOf<ArgumentError>())); |
657 } | 696 } |
658 | 697 |
659 void test_newFolder_notAbsolute() { | 698 void test_newFolder_notAbsolute() { |
660 expect(() { | 699 expect(() { |
661 provider.newFolder('not/absolute'); | 700 provider.newFolder('not/absolute'); |
662 }, throwsA(new isInstanceOf<ArgumentError>())); | 701 }, throwsA(new isInstanceOf<ArgumentError>())); |
663 } | 702 } |
664 | 703 |
665 test_watch_createFile() { | 704 test_watch_createFile() { |
666 String rootPath = '/my/path'; | 705 String rootPath = provider.convertPath('/my/path'); |
667 provider.newFolder(rootPath); | 706 provider.newFolder(rootPath); |
668 return _watchingFolder(rootPath, (changesReceived) { | 707 return _watchingFolder(rootPath, (changesReceived) { |
669 expect(changesReceived, hasLength(0)); | 708 expect(changesReceived, hasLength(0)); |
670 String path = posix.join(rootPath, 'foo'); | 709 String path = provider.pathContext.join(rootPath, 'foo'); |
671 provider.newFile(path, 'contents'); | 710 provider.newFile(path, 'contents'); |
672 return _delayed(() { | 711 return _delayed(() { |
673 expect(changesReceived, hasLength(1)); | 712 expect(changesReceived, hasLength(1)); |
674 expect(changesReceived[0].type, equals(ChangeType.ADD)); | 713 expect(changesReceived[0].type, equals(ChangeType.ADD)); |
675 expect(changesReceived[0].path, equals(path)); | 714 expect(changesReceived[0].path, equals(path)); |
676 }); | 715 }); |
677 }); | 716 }); |
678 } | 717 } |
679 | 718 |
680 test_watch_deleteFile() { | 719 test_watch_deleteFile() { |
681 String rootPath = '/my/path'; | 720 String rootPath = provider.convertPath('/my/path'); |
682 provider.newFolder(rootPath); | 721 provider.newFolder(rootPath); |
683 String path = posix.join(rootPath, 'foo'); | 722 String path = provider.pathContext.join(rootPath, 'foo'); |
684 provider.newFile(path, 'contents 1'); | 723 provider.newFile(path, 'contents 1'); |
685 return _watchingFolder(rootPath, (changesReceived) { | 724 return _watchingFolder(rootPath, (changesReceived) { |
686 expect(changesReceived, hasLength(0)); | 725 expect(changesReceived, hasLength(0)); |
687 provider.deleteFile(path); | 726 provider.deleteFile(path); |
688 return _delayed(() { | 727 return _delayed(() { |
689 expect(changesReceived, hasLength(1)); | 728 expect(changesReceived, hasLength(1)); |
690 expect(changesReceived[0].type, equals(ChangeType.REMOVE)); | 729 expect(changesReceived[0].type, equals(ChangeType.REMOVE)); |
691 expect(changesReceived[0].path, equals(path)); | 730 expect(changesReceived[0].path, equals(path)); |
692 }); | 731 }); |
693 }); | 732 }); |
694 } | 733 } |
695 | 734 |
696 test_watch_modifyFile() { | 735 test_watch_modifyFile() { |
697 String rootPath = '/my/path'; | 736 String rootPath = provider.convertPath('/my/path'); |
698 provider.newFolder(rootPath); | 737 provider.newFolder(rootPath); |
699 String path = posix.join(rootPath, 'foo'); | 738 String path = provider.pathContext.join(rootPath, 'foo'); |
700 provider.newFile(path, 'contents 1'); | 739 provider.newFile(path, 'contents 1'); |
701 return _watchingFolder(rootPath, (changesReceived) { | 740 return _watchingFolder(rootPath, (changesReceived) { |
702 expect(changesReceived, hasLength(0)); | 741 expect(changesReceived, hasLength(0)); |
703 provider.modifyFile(path, 'contents 2'); | 742 provider.modifyFile(path, 'contents 2'); |
704 return _delayed(() { | 743 return _delayed(() { |
705 expect(changesReceived, hasLength(1)); | 744 expect(changesReceived, hasLength(1)); |
706 expect(changesReceived[0].type, equals(ChangeType.MODIFY)); | 745 expect(changesReceived[0].type, equals(ChangeType.MODIFY)); |
707 expect(changesReceived[0].path, equals(path)); | 746 expect(changesReceived[0].path, equals(path)); |
708 }); | 747 }); |
709 }); | 748 }); |
710 } | 749 } |
711 | 750 |
712 test_watch_modifyFile_inSubDir() { | 751 test_watch_modifyFile_inSubDir() { |
713 String rootPath = '/my/path'; | 752 String rootPath = provider.convertPath('/my/path'); |
714 provider.newFolder(rootPath); | 753 provider.newFolder(rootPath); |
715 String subdirPath = posix.join(rootPath, 'foo'); | 754 String subdirPath = provider.pathContext.join(rootPath, 'foo'); |
716 provider.newFolder(subdirPath); | 755 provider.newFolder(subdirPath); |
717 String path = posix.join(rootPath, 'bar'); | 756 String path = provider.pathContext.join(rootPath, 'bar'); |
718 provider.newFile(path, 'contents 1'); | 757 provider.newFile(path, 'contents 1'); |
719 return _watchingFolder(rootPath, (changesReceived) { | 758 return _watchingFolder(rootPath, (changesReceived) { |
720 expect(changesReceived, hasLength(0)); | 759 expect(changesReceived, hasLength(0)); |
721 provider.modifyFile(path, 'contents 2'); | 760 provider.modifyFile(path, 'contents 2'); |
722 return _delayed(() { | 761 return _delayed(() { |
723 expect(changesReceived, hasLength(1)); | 762 expect(changesReceived, hasLength(1)); |
724 expect(changesReceived[0].type, equals(ChangeType.MODIFY)); | 763 expect(changesReceived[0].type, equals(ChangeType.MODIFY)); |
725 expect(changesReceived[0].path, equals(path)); | 764 expect(changesReceived[0].path, equals(path)); |
726 }); | 765 }); |
727 }); | 766 }); |
728 } | 767 } |
729 | 768 |
730 Future _delayed(computation()) { | 769 Future _delayed(computation()) { |
731 return new Future.delayed(Duration.ZERO, computation); | 770 return new Future.delayed(Duration.ZERO, computation); |
732 } | 771 } |
733 | 772 |
734 _watchingFolder(String path, test(List<WatchEvent> changesReceived)) { | 773 _watchingFolder(String path, test(List<WatchEvent> changesReceived)) { |
735 Folder folder = provider.getResource(path); | 774 Folder folder = provider.getResource(path); |
736 var changesReceived = <WatchEvent>[]; | 775 var changesReceived = <WatchEvent>[]; |
737 folder.changes.listen(changesReceived.add); | 776 folder.changes.listen(changesReceived.add); |
738 return test(changesReceived); | 777 return test(changesReceived); |
739 } | 778 } |
740 } | 779 } |
OLD | NEW |