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

Unified Diff: pkg/analysis_server/test/search/abstract_search_domain.dart

Issue 894323003: Wait for analysis in search domain. Rewrite with async/await. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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/analysis_server/test/search/abstract_search_domain.dart
diff --git a/pkg/analysis_server/test/search/abstract_search_domain.dart b/pkg/analysis_server/test/search/abstract_search_domain.dart
index 655ea34b2fd1dd8a08e6e3b135ad383d3d5bb61b..11a84aa7ca4d6073c285a2bcdcf86ab56fd75f7c 100644
--- a/pkg/analysis_server/test/search/abstract_search_domain.dart
+++ b/pkg/analysis_server/test/search/abstract_search_domain.dart
@@ -17,8 +17,8 @@ import '../analysis_abstract.dart';
class AbstractSearchDomainTest extends AbstractAnalysisTest {
+ final Map<String, _ResultSet> resultSets = {};
String searchId;
- bool searchDone = false;
List<SearchResult> results = <SearchResult>[];
SearchResult result;
@@ -75,24 +75,39 @@ class AbstractSearchDomainTest extends AbstractAnalysisTest {
void processNotification(Notification notification) {
if (notification.event == SEARCH_RESULTS) {
var params = new SearchResultsParams.fromNotification(notification);
- if (params.id == searchId) {
- results.addAll(params.results);
- searchDone = params.isLast;
+ String id = params.id;
+ _ResultSet resultSet = resultSets[id];
+ if (resultSet == null) {
+ resultSet = new _ResultSet(id);
+ resultSets[id] = resultSet;
}
+ resultSet.results.addAll(params.results);
+ resultSet.done = params.isLast;
}
}
@override
void setUp() {
super.setUp();
+ server.handlers = [new SearchDomainHandler(server),];
createProject();
- handler = new SearchDomainHandler(server);
}
Future waitForSearchResults() {
- if (searchDone) {
+ _ResultSet resultSet = resultSets[searchId];
+ if (resultSet != null && resultSet.done) {
+ results = resultSet.results;
return new Future.value();
}
return new Future.delayed(Duration.ZERO, waitForSearchResults);
}
}
+
+
+class _ResultSet {
+ final String id;
+ final List<SearchResult> results = <SearchResult>[];
+ bool done = false;
+
+ _ResultSet(this.id);
+}

Powered by Google App Engine
This is Rietveld 408576698