OLD | NEW |
---|---|
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 | 6 |
7 import 'package:front_end/memory_file_system.dart'; | 7 import 'package:front_end/memory_file_system.dart'; |
8 import 'package:front_end/src/fasta/translate_uri.dart'; | 8 import 'package:front_end/src/fasta/translate_uri.dart'; |
9 import 'package:front_end/src/incremental/file_state.dart'; | 9 import 'package:front_end/src/incremental/file_state.dart'; |
10 import 'package:test/test.dart'; | 10 import 'package:test/test.dart'; |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
277 expect(export_.combinators[1].names, unorderedEquals(['C'])); | 277 expect(export_.combinators[1].names, unorderedEquals(['C'])); |
278 expect(export_.combinators[2].isShow, isTrue); | 278 expect(export_.combinators[2].isShow, isTrue); |
279 expect(export_.combinators[2].names, unorderedEquals(['A', 'D'])); | 279 expect(export_.combinators[2].names, unorderedEquals(['A', 'D'])); |
280 expect(export_.isExposed('A'), isTrue); | 280 expect(export_.isExposed('A'), isTrue); |
281 expect(export_.isExposed('B'), isFalse); | 281 expect(export_.isExposed('B'), isFalse); |
282 expect(export_.isExposed('C'), isFalse); | 282 expect(export_.isExposed('C'), isFalse); |
283 expect(export_.isExposed('D'), isTrue); | 283 expect(export_.isExposed('D'), isTrue); |
284 } | 284 } |
285 } | 285 } |
286 | 286 |
287 test_hasMixin_false() async { | |
288 writeFile( | |
289 '/a.dart', | |
290 r''' | |
291 class A {} | |
292 class B extends Object with A {} | |
293 '''); | |
294 var uri = writeFile( | |
295 '/test.dart', | |
296 r''' | |
297 import 'a.dart'; | |
298 class T1 extends A {} | |
299 class T2 extends B {} | |
300 '''); | |
301 FileState file = await fsState.getFile(uri); | |
302 expect(file.hasMixin, isFalse); | |
303 } | |
304 | |
305 test_hasMixin_true() async { | |
306 var uri = writeFile( | |
307 '/test.dart', | |
308 r''' | |
309 class A {} | |
310 class B extends Object with A {} | |
311 '''); | |
312 FileState file = await fsState.getFile(uri); | |
313 expect(file.hasMixin, isTrue); | |
314 } | |
315 | |
316 test_hasMixinLibrary_false() async { | |
317 var partUri = writeFile( | |
318 '/part.dart', | |
319 r''' | |
320 part of test; | |
321 class A {} | |
322 '''); | |
323 var libUri = writeFile( | |
324 '/test.dart', | |
325 r''' | |
326 library test; | |
327 part 'part.dart'; | |
328 class B extends A {} | |
329 '''); | |
330 | |
331 FileState part = await fsState.getFile(partUri); | |
332 FileState lib = await fsState.getFile(libUri); | |
333 | |
334 expect(part.hasMixin, isFalse); | |
335 expect(lib.hasMixin, isFalse); | |
336 expect(lib.hasMixinLibrary, isFalse); | |
337 } | |
338 | |
339 test_hasMixinLibrary_true_inDefiningUnit() async { | |
340 var partUri = writeFile( | |
341 '/part.dart', | |
342 r''' | |
343 part of test; | |
344 class A {} | |
345 '''); | |
346 var libUri = writeFile( | |
347 '/test.dart', | |
348 r''' | |
349 library test; | |
350 part 'part.dart'; | |
351 class B extends Object with A {} | |
352 '''); | |
353 | |
354 FileState part = await fsState.getFile(partUri); | |
355 FileState lib = await fsState.getFile(libUri); | |
356 | |
357 expect(part.hasMixin, isFalse); | |
358 expect(lib.hasMixin, isTrue); | |
359 expect(lib.hasMixinLibrary, isTrue); | |
360 } | |
361 | |
362 test_hasMixinLibrary_true_inPart() async { | |
363 var partUri = writeFile( | |
364 '/part.dart', | |
365 r''' | |
366 part of test; | |
367 class A {} | |
368 class B extends Object with A {} | |
ahe
2017/06/12 19:22:03
Consider adding a test for a named mixin applicati
scheglov
2017/06/12 19:43:19
Done.
| |
369 '''); | |
370 var libUri = writeFile( | |
371 '/test.dart', | |
372 r''' | |
373 library test; | |
374 part 'part.dart'; | |
375 class C {} | |
376 '''); | |
377 | |
378 FileState part = await fsState.getFile(partUri); | |
379 FileState lib = await fsState.getFile(libUri); | |
380 | |
381 expect(part.hasMixin, isTrue); | |
382 expect(lib.hasMixin, isFalse); | |
383 expect(lib.hasMixinLibrary, isTrue); | |
384 } | |
385 | |
287 test_newFileListener() async { | 386 test_newFileListener() async { |
288 var a = writeFile('/a.dart', ''); | 387 var a = writeFile('/a.dart', ''); |
289 var b = writeFile('/b.dart', ''); | 388 var b = writeFile('/b.dart', ''); |
290 var c = writeFile( | 389 var c = writeFile( |
291 '/c.dart', | 390 '/c.dart', |
292 r''' | 391 r''' |
293 import 'a.dart'; | 392 import 'a.dart'; |
294 '''); | 393 '''); |
295 | 394 |
296 FileState cFile = await fsState.getFile(c); | 395 FileState cFile = await fsState.getFile(c); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
391 Uri _writeFileDirectives(String path, | 490 Uri _writeFileDirectives(String path, |
392 {List<String> imports: const [], List<String> exports: const []}) { | 491 {List<String> imports: const [], List<String> exports: const []}) { |
393 return writeFile( | 492 return writeFile( |
394 path, | 493 path, |
395 ''' | 494 ''' |
396 ${imports.map((uri) => 'import "$uri";').join('\n')} | 495 ${imports.map((uri) => 'import "$uri";').join('\n')} |
397 ${exports.map((uri) => 'export "$uri";').join('\n')} | 496 ${exports.map((uri) => 'export "$uri";').join('\n')} |
398 '''); | 497 '''); |
399 } | 498 } |
400 } | 499 } |
OLD | NEW |