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

Unified Diff: pkg/analyzer/test/src/context/context_test.dart

Issue 1239863002: Add hook for listening to implicitly analyzed files (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address comments Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/src/context/context_test.dart
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index 7bc47ba7aebdac6ce85f8d12e3dd62d69f9f4cfe..8f960348427ad4e451274a5a426c00c22bd5bec5 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -55,6 +55,32 @@ main() {
@reflectiveTest
class AnalysisContextImplTest extends AbstractContextTest {
+ Future fail_analyzedSources_removed() async {
+ AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
+ context.implicitAnalysisEvents.listen(listener.onData);
+ //
+ // Create a file that references an file that is not explicitly being
+ // analyzed and fully analyze it. Ensure that the listener is told about
+ // the implicitly analyzed file.
+ //
+ Source sourceA = newSource('/a.dart', "library a; import 'b.dart';");
+ Source sourceB = newSource('/b.dart', "library b;");
+ ChangeSet changeSet = new ChangeSet();
+ changeSet.addedSource(sourceA);
+ context.applyChanges(changeSet);
+ context.computeErrors(sourceA);
+ await pumpEventQueue();
+ listener.expectAnalyzed(sourceB);
+ //
+ // Remove the reference and ensure that the listener is told that we're no
+ // longer implicitly analyzing the file.
+ //
+ context.setContents(sourceA, "library a;");
+ context.computeErrors(sourceA);
+ await pumpEventQueue();
+ listener.expectNotAnalyzed(sourceB);
+ }
+
void fail_performAnalysisTask_importedLibraryDelete_html() {
// NOTE: This was failing before converting to the new task model.
Source htmlSource = addSource("/page.html", r'''
@@ -90,6 +116,24 @@ class AnalysisContextImplTest extends AbstractContextTest {
super.tearDown();
}
+ Future test_analyzedSources_added() async {
+ AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
+ context.implicitAnalysisEvents.listen(listener.onData);
+ //
+ // Create a file that references an file that is not explicitly being
+ // analyzed and fully analyze it. Ensure that the listener is told about
+ // the implicitly analyzed file.
+ //
+ Source sourceA = newSource('/a.dart', "library a; import 'b.dart';");
+ Source sourceB = newSource('/b.dart', "library b;");
+ ChangeSet changeSet = new ChangeSet();
+ changeSet.addedSource(sourceA);
+ context.applyChanges(changeSet);
+ context.computeErrors(sourceA);
+ await pumpEventQueue();
+ listener.expectAnalyzed(sourceB);
+ }
+
Future test_applyChanges_add() {
SourcesChangedListener listener = new SourcesChangedListener();
context.onSourcesChanged.listen(listener.onData);
« pkg/analyzer/lib/src/context/context.dart ('K') | « pkg/analyzer/test/src/context/cache_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698