OLD | NEW |
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:async'; | 5 import 'dart:async'; |
6 import 'dart:io'; | 6 import 'dart:io'; |
7 | 7 |
8 import 'package:path/path.dart' as path; | 8 import 'package:path/path.dart' as path; |
9 import 'package:scheduled_test/descriptor.dart' as d; | 9 import 'package:scheduled_test/descriptor.dart' as d; |
10 import 'package:scheduled_test/scheduled_test.dart'; | 10 import 'package:scheduled_test/scheduled_test.dart'; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 d.dir('subdir', [ | 118 d.dir('subdir', [ |
119 d.file('subfile1.txt', 'subcontents1'), | 119 d.file('subfile1.txt', 'subcontents1'), |
120 d.file('subfile2.txt', 'subcontents2') | 120 d.file('subfile2.txt', 'subcontents2') |
121 ]), | 121 ]), |
122 d.file('file1.txt', 'contents1'), | 122 d.file('file1.txt', 'contents1'), |
123 d.file('file2.txt', 'contents2') | 123 d.file('file2.txt', 'contents2') |
124 ]).validate(); | 124 ]).validate(); |
125 }); | 125 }); |
126 | 126 |
127 test('test 2', () { | 127 test('test 2', () { |
128 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 128 expect(errors.single, new isInstanceOf<ScheduleError>()); |
129 expect(errors.length, equals(1)); | 129 expect(errors.single.error.toString(), |
130 expect(errors.first.error.toString(), | |
131 matches(r"^Directory not found: '[^']+[\\/]dir[\\/]subdir'\.$")); | 130 matches(r"^Directory not found: '[^']+[\\/]dir[\\/]subdir'\.$")); |
132 }); | 131 }); |
133 }, passing: ['test 2']); | 132 }, passing: ['test 2']); |
134 | 133 |
135 expectTestsPass("directory().validate() fails if a file isn't found", () { | 134 expectTestsPass("directory().validate() fails if a file isn't found", () { |
136 var errors; | 135 var errors; |
137 test('test 1', () { | 136 test('test 1', () { |
138 scheduleSandbox(); | 137 scheduleSandbox(); |
139 | 138 |
140 currentSchedule.onException.schedule(() { | 139 currentSchedule.onException.schedule(() { |
(...skipping 19 matching lines...) Expand all Loading... |
160 d.dir('subdir', [ | 159 d.dir('subdir', [ |
161 d.file('subfile1.txt', 'subcontents1'), | 160 d.file('subfile1.txt', 'subcontents1'), |
162 d.file('subfile2.txt', 'subcontents2') | 161 d.file('subfile2.txt', 'subcontents2') |
163 ]), | 162 ]), |
164 d.file('file1.txt', 'contents1'), | 163 d.file('file1.txt', 'contents1'), |
165 d.file('file2.txt', 'contents2') | 164 d.file('file2.txt', 'contents2') |
166 ]).validate(); | 165 ]).validate(); |
167 }); | 166 }); |
168 | 167 |
169 test('test 2', () { | 168 test('test 2', () { |
170 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 169 expect(errors.single, new isInstanceOf<ScheduleError>()); |
171 expect(errors.length, equals(1)); | 170 expect(errors.single.error.toString(), |
172 expect(errors.first.error.toString(), | |
173 matches(r"^File not found: '[^']+[\\/]dir[\\/]file2\.txt'\.$")); | 171 matches(r"^File not found: '[^']+[\\/]dir[\\/]file2\.txt'\.$")); |
174 }); | 172 }); |
175 }, passing: ['test 2']); | 173 }, passing: ['test 2']); |
176 | 174 |
177 expectTestsPass("directory().validate() fails if multiple children aren't " | 175 expectTestsPass("directory().validate() fails if multiple children aren't " |
178 "found or have the wrong contents", () { | 176 "found or have the wrong contents", () { |
179 var errors; | 177 var errors; |
180 test('test 1', () { | 178 test('test 1', () { |
181 scheduleSandbox(); | 179 scheduleSandbox(); |
182 | 180 |
(...skipping 18 matching lines...) Expand all Loading... |
201 d.dir('subdir', [ | 199 d.dir('subdir', [ |
202 d.file('subfile1.txt', 'subcontents1'), | 200 d.file('subfile1.txt', 'subcontents1'), |
203 d.file('subfile2.txt', 'subcontents2') | 201 d.file('subfile2.txt', 'subcontents2') |
204 ]), | 202 ]), |
205 d.file('file1.txt', 'contents1'), | 203 d.file('file1.txt', 'contents1'), |
206 d.file('file2.txt', 'contents2') | 204 d.file('file2.txt', 'contents2') |
207 ]).validate(); | 205 ]).validate(); |
208 }); | 206 }); |
209 | 207 |
210 test('test 2', () { | 208 test('test 2', () { |
211 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 209 expect(errors.single, new isInstanceOf<ScheduleError>()); |
212 expect(errors.length, equals(1)); | 210 expect(errors.single.error.toString(), matches( |
213 expect(errors.first.error.toString(), matches( | |
214 r"^\* File not found: '[^']+[\\/]dir[\\/]subdir[\\/]subfile1\.txt'\." | 211 r"^\* File not found: '[^']+[\\/]dir[\\/]subdir[\\/]subfile1\.txt'\." |
215 r"\n" | 212 r"\n" |
216 r"\* File 'subfile2\.txt' should contain:\n" | 213 r"\* File 'subfile2\.txt' should contain:\n" |
217 r" \| subcontents2\n" | 214 r" \| subcontents2\n" |
218 r" but actually contained:\n" | 215 r" but actually contained:\n" |
219 r" X subwrongtents2\n" | 216 r" X subwrongtents2\n" |
220 r"\* File not found: '[^']+[\\/]dir[\\/]file2\.txt'\.$")); | 217 r"\* File not found: '[^']+[\\/]dir[\\/]file2\.txt'\.$")); |
221 }); | 218 }); |
222 }, passing: ['test 2']); | 219 }, passing: ['test 2']); |
223 | 220 |
(...skipping 28 matching lines...) Expand all Loading... |
252 d.dir('subdir', [ | 249 d.dir('subdir', [ |
253 d.file('subfile1.txt', 'subcontents1'), | 250 d.file('subfile1.txt', 'subcontents1'), |
254 d.file('subfile2.txt', 'subcontents2') | 251 d.file('subfile2.txt', 'subcontents2') |
255 ]), | 252 ]), |
256 d.file('file1.txt', 'contents1'), | 253 d.file('file1.txt', 'contents1'), |
257 d.file('file2.txt', 'contents2') | 254 d.file('file2.txt', 'contents2') |
258 ]).validate(); | 255 ]).validate(); |
259 }); | 256 }); |
260 | 257 |
261 test('test 2', () { | 258 test('test 2', () { |
262 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 259 expect(errors.single, new isInstanceOf<ScheduleError>()); |
263 expect(errors.map((e) => e.error.toString()), equals([ | 260 expect(errors.single.error.toString(), equals( |
264 "File 'subfile1.txt' should contain:\n" | 261 "File 'subfile1.txt' should contain:\n" |
265 "| subcontents1\n" | 262 "| subcontents1\n" |
266 "but actually contained:\n" | 263 "but actually contained:\n" |
267 "X wrongtents1" | 264 "X wrongtents1")); |
268 ])); | |
269 }); | 265 }); |
270 }, passing: ['test 2']); | 266 }, passing: ['test 2']); |
271 | 267 |
272 expectTestsPass("directory().load() loads a file", () { | 268 expectTestsPass("directory().load() loads a file", () { |
273 test('test', () { | 269 test('test', () { |
274 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); | 270 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); |
275 expect(byteStreamToString(dir.load('name.txt')), | 271 expect(byteStreamToString(dir.load('name.txt')), |
276 completion(equals('contents'))); | 272 completion(equals('contents'))); |
277 }); | 273 }); |
278 }); | 274 }); |
(...skipping 14 matching lines...) Expand all Loading... |
293 | 289 |
294 expectTestsPass("directory().load() fails to load a nested directory", () { | 290 expectTestsPass("directory().load() fails to load a nested directory", () { |
295 test('test', () { | 291 test('test', () { |
296 var dir = d.dir('dir', [ | 292 var dir = d.dir('dir', [ |
297 d.dir('subdir', [ | 293 d.dir('subdir', [ |
298 d.file('name.txt', 'subcontents') | 294 d.file('name.txt', 'subcontents') |
299 ]), | 295 ]), |
300 d.file('name.txt', 'contents') | 296 d.file('name.txt', 'contents') |
301 ]); | 297 ]); |
302 | 298 |
303 expect(dir.load('subdir').toList(), | 299 expect(dir.load('subdir').toList(), throwsA(predicate( |
304 throwsA(equals("Couldn't find a readable entry named 'subdir' within " | 300 (x) => x.toString() == "Couldn't find a readable entry named " |
305 "'dir'."))); | 301 "'subdir' within 'dir'."))); |
306 }); | 302 }); |
307 }); | 303 }); |
308 | 304 |
309 expectTestsPass("directory().load() fails to load an absolute path", () { | 305 expectTestsPass("directory().load() fails to load an absolute path", () { |
310 test('test', () { | 306 test('test', () { |
311 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); | 307 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); |
312 | 308 |
313 expect(dir.load('/name.txt').toList(), throwsArgumentError); | 309 expect(dir.load('/name.txt').toList(), throwsArgumentError); |
314 }); | 310 }); |
315 }); | 311 }); |
316 | 312 |
317 expectTestsPass("directory().load() fails to load '.', '..', or ''", () { | 313 expectTestsPass("directory().load() fails to load '.', '..', or ''", () { |
318 test('test', () { | 314 test('test', () { |
319 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); | 315 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); |
320 | 316 |
321 expect(dir.load('.').toList(), throwsArgumentError); | 317 expect(dir.load('.').toList(), throwsArgumentError); |
322 | 318 |
323 expect(dir.load('..').toList(), throwsArgumentError); | 319 expect(dir.load('..').toList(), throwsArgumentError); |
324 | 320 |
325 expect(dir.load('').toList(), throwsArgumentError); | 321 expect(dir.load('').toList(), throwsArgumentError); |
326 }); | 322 }); |
327 }); | 323 }); |
328 | 324 |
329 expectTestsPass("directory().load() fails to load a file that doesn't exist", | 325 expectTestsPass("directory().load() fails to load a file that doesn't exist", |
330 () { | 326 () { |
331 test('test', () { | 327 test('test', () { |
332 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); | 328 var dir = d.dir('dir', [d.file('name.txt', 'contents')]); |
333 | 329 |
334 expect(dir.load('not-name.txt').toList(), | 330 expect(dir.load('not-name.txt').toList(), throwsA(predicate( |
335 throwsA(equals("Couldn't find a readable entry named 'not-name.txt' " | 331 (x) => x.toString() == "Couldn't find a readable entry named " |
336 "within 'dir'."))); | 332 "'not-name.txt' within 'dir'."))); |
337 }); | 333 }); |
338 }); | 334 }); |
339 | 335 |
340 expectTestsPass("directory().load() fails to load a file that exists " | 336 expectTestsPass("directory().load() fails to load a file that exists " |
341 "multiple times", () { | 337 "multiple times", () { |
342 test('test', () { | 338 test('test', () { |
343 var dir = d.dir('dir', [ | 339 var dir = d.dir('dir', [ |
344 d.file('name.txt', 'contents'), | 340 d.file('name.txt', 'contents'), |
345 d.file('name.txt', 'contents') | 341 d.file('name.txt', 'contents') |
346 ]); | 342 ]); |
347 | 343 |
348 expect(dir.load('name.txt').toList(), | 344 expect(dir.load('name.txt').toList(), throwsA(predicate( |
349 throwsA(equals("Found multiple readable entries named 'name.txt' " | 345 (x) => x.toString() == "Found multiple readable entries named " |
350 "within 'dir'."))); | 346 "'name.txt' within 'dir'."))); |
351 }); | 347 }); |
352 }); | 348 }); |
353 | 349 |
354 expectTestsPass("directory().load() loads a file next to a subdirectory with " | 350 expectTestsPass("directory().load() loads a file next to a subdirectory with " |
355 "the same name", () { | 351 "the same name", () { |
356 test('test', () { | 352 test('test', () { |
357 var dir = d.dir('dir', [ | 353 var dir = d.dir('dir', [ |
358 d.file('name', 'contents'), | 354 d.file('name', 'contents'), |
359 d.dir('name', [d.file('subfile', 'contents')]) | 355 d.dir('name', [d.file('subfile', 'contents')]) |
360 ]); | 356 ]); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 "'-- file2.txt")); | 401 "'-- file2.txt")); |
406 }); | 402 }); |
407 }); | 403 }); |
408 | 404 |
409 expectTestsPass("directory().describe() with no contents returns the " | 405 expectTestsPass("directory().describe() with no contents returns the " |
410 "directory name", () { | 406 "directory name", () { |
411 test('test', () { | 407 test('test', () { |
412 expect(d.dir('dir').describe(), equals('dir')); | 408 expect(d.dir('dir').describe(), equals('dir')); |
413 }); | 409 }); |
414 }); | 410 }); |
415 } | 411 } |
OLD | NEW |