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.src.context.context_test; | 5 library analyzer.test.src.context.context_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 source, | 394 source, |
395 r''' | 395 r''' |
396 main() { | 396 main() { |
397 print(12); | 397 print(12); |
398 } | 398 } |
399 '''); | 399 '''); |
400 _analyzeAll_assertFinished(); | 400 _analyzeAll_assertFinished(); |
401 expect(context.getResolvedCompilationUnit2(source, source), unit); | 401 expect(context.getResolvedCompilationUnit2(source, source), unit); |
402 // remove overlay | 402 // remove overlay |
403 context.setContents(source, null); | 403 context.setContents(source, null); |
404 context.validateCacheConsistency(); | |
405 _analyzeAll_assertFinished(); | 404 _analyzeAll_assertFinished(); |
406 expect(context.getResolvedCompilationUnit2(source, source), unit); | 405 expect(context.getResolvedCompilationUnit2(source, source), unit); |
407 } | 406 } |
408 | 407 |
409 Future test_applyChanges_removeContainer() { | 408 Future test_applyChanges_removeContainer() { |
410 SourcesChangedListener listener = new SourcesChangedListener(); | 409 SourcesChangedListener listener = new SourcesChangedListener(); |
411 context.onSourcesChanged.listen(listener.onData); | 410 context.onSourcesChanged.listen(listener.onData); |
412 String libAContents = r''' | 411 String libAContents = r''' |
413 library libA; | 412 library libA; |
414 import 'libB.dart';'''; | 413 import 'libB.dart';'''; |
(...skipping 12 matching lines...) Expand all Loading... |
427 expect(sources, hasLength(1)); | 426 expect(sources, hasLength(1)); |
428 expect(sources[0], same(libA)); | 427 expect(sources[0], same(libA)); |
429 return pumpEventQueue().then((_) { | 428 return pumpEventQueue().then((_) { |
430 listener.assertEvent(wereSourcesAdded: true); | 429 listener.assertEvent(wereSourcesAdded: true); |
431 listener.assertEvent(wereSourcesAdded: true); | 430 listener.assertEvent(wereSourcesAdded: true); |
432 listener.assertEvent(wereSourcesRemovedOrDeleted: true); | 431 listener.assertEvent(wereSourcesRemovedOrDeleted: true); |
433 listener.assertNoMoreEvents(); | 432 listener.assertNoMoreEvents(); |
434 }); | 433 }); |
435 } | 434 } |
436 | 435 |
| 436 void test_cacheConsistencyValidator_computed() { |
| 437 CacheConsistencyValidator validator = context.cacheConsistencyValidator; |
| 438 // Add sources. |
| 439 MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); |
| 440 String path1 = '/test1.dart'; |
| 441 String path2 = '/test2.dart'; |
| 442 Source source1 = resourceProvider.newFile(path1, '// 1-1').createSource(); |
| 443 Source source2 = resourceProvider.newFile(path2, '// 2-1').createSource(); |
| 444 context.applyChanges( |
| 445 new ChangeSet()..addedSource(source1)..addedSource(source2)); |
| 446 // Same modification times. |
| 447 expect( |
| 448 validator.sourceModificationTimesComputed([source1, source2], |
| 449 [source1.modificationStamp, source2.modificationStamp]), |
| 450 isFalse); |
| 451 // Different modification times. |
| 452 expect( |
| 453 validator.sourceModificationTimesComputed([source1, source2], |
| 454 [source1.modificationStamp + 1, source2.modificationStamp]), |
| 455 isTrue); |
| 456 } |
| 457 |
| 458 void test_cacheConsistencyValidator_getSources() { |
| 459 CacheConsistencyValidator validator = context.cacheConsistencyValidator; |
| 460 // Add sources. |
| 461 MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); |
| 462 String path1 = '/test1.dart'; |
| 463 String path2 = '/test2.dart'; |
| 464 Source source1 = resourceProvider.newFile(path1, '// 1-1').createSource(); |
| 465 Source source2 = resourceProvider.newFile(path2, '// 2-1').createSource(); |
| 466 context.applyChanges( |
| 467 new ChangeSet()..addedSource(source1)..addedSource(source2)); |
| 468 // No overlays. |
| 469 expect(validator.getSourcesToComputeModificationTimes(), |
| 470 unorderedEquals([source1, source2])); |
| 471 // Add an overlay. |
| 472 context.setContents(source1, '// 1-2'); |
| 473 expect(validator.getSourcesToComputeModificationTimes(), |
| 474 unorderedEquals([source2])); |
| 475 // Remove an overlay. |
| 476 context.setContents(source1, null); |
| 477 expect(validator.getSourcesToComputeModificationTimes(), |
| 478 unorderedEquals([source1, source2])); |
| 479 } |
| 480 |
437 void test_computeDocumentationComment_class_block() { | 481 void test_computeDocumentationComment_class_block() { |
438 String comment = "/** Comment */"; | 482 String comment = "/** Comment */"; |
439 Source source = addSource( | 483 Source source = addSource( |
440 "/test.dart", | 484 "/test.dart", |
441 """ | 485 """ |
442 $comment | 486 $comment |
443 class A {}"""); | 487 class A {}"""); |
444 LibraryElement libraryElement = context.computeLibraryElement(source); | 488 LibraryElement libraryElement = context.computeLibraryElement(source); |
445 expect(libraryElement, isNotNull); | 489 expect(libraryElement, isNotNull); |
446 ClassElement classElement = libraryElement.definingCompilationUnit.types[0]; | 490 ClassElement classElement = libraryElement.definingCompilationUnit.types[0]; |
(...skipping 3374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3821 * Initialize the visitor. | 3865 * Initialize the visitor. |
3822 */ | 3866 */ |
3823 _ElementGatherer(); | 3867 _ElementGatherer(); |
3824 | 3868 |
3825 @override | 3869 @override |
3826 void visitElement(Element element) { | 3870 void visitElement(Element element) { |
3827 elements[element] = element; | 3871 elements[element] = element; |
3828 super.visitElement(element); | 3872 super.visitElement(element); |
3829 } | 3873 } |
3830 } | 3874 } |
OLD | NEW |