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

Unified Diff: pkg/analysis_server/test/domain_completion_test.dart

Issue 2876793006: improve code completion abort request tests (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « pkg/analysis_server/lib/src/domain_completion.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/domain_completion_test.dart
diff --git a/pkg/analysis_server/test/domain_completion_test.dart b/pkg/analysis_server/test/domain_completion_test.dart
index 0b6df7bd49fcff83150c001ba109523b78591bde..a1bd02a4b2a035e5fd2efe7f63e86c01f6c94176 100644
--- a/pkg/analysis_server/test/domain_completion_test.dart
+++ b/pkg/analysis_server/test/domain_completion_test.dart
@@ -284,31 +284,33 @@ class CompletionDomainHandlerTest extends AbstractCompletionDomainTest {
Request request1 =
new CompletionGetSuggestionsParams(testFile, completionOffset)
.toRequest('7');
- Response response1 = await waitResponse(request1);
- var result1 = new CompletionGetSuggestionsResult.fromResponse(response1);
- var completionId1 = result1.id;
- assertValidId(completionId1);
-
- // Perform some analysis but assert that no suggestions have yet been made
- completionId = completionId1;
- await pumpEventQueue(25);
- expect(suggestionsDone, isFalse);
- expect(suggestions, hasLength(0));
+ Future<Response> responseFuture1 = waitResponse(request1);
// Make another request before the first request completes
Request request2 =
new CompletionGetSuggestionsParams(testFile, completionOffset)
.toRequest('8');
- Response response2 = await waitResponse(request2);
+ Future<Response> responseFuture2 = waitResponse(request2);
+
+ // Await first response
+ Response response1 = await responseFuture1;
+ var result1 = new CompletionGetSuggestionsResult.fromResponse(response1);
+ assertValidId(result1.id);
+
+ // Await second response
+ Response response2 = await responseFuture2;
var result2 = new CompletionGetSuggestionsResult.fromResponse(response2);
- var completionId2 = result2.id;
- assertValidId(completionId2);
+ assertValidId(result2.id);
- // Wait for both sets of suggestions
- completionId = completionId2;
+ // Wait for all processing to be complete
+ await analysisHandler.server.analysisDriverScheduler.waitForIdle();
await pumpEventQueue();
- expect(allSuggestions[completionId1], hasLength(0));
- expect(allSuggestions[completionId2], same(suggestions));
+
+ // Assert that first request has been aborted
+ expect(allSuggestions[result1.id], hasLength(0));
+
+ // Assert valid results for the second request
+ expect(allSuggestions[result2.id], same(suggestions));
assertHasResult(CompletionSuggestionKind.KEYWORD, 'class',
relevance: DART_RELEVANCE_HIGH);
}
@@ -327,14 +329,7 @@ class CompletionDomainHandlerTest extends AbstractCompletionDomainTest {
Request request =
new CompletionGetSuggestionsParams(testFile, completionOffset)
.toRequest('0');
- Response response = await waitResponse(request);
- completionId = response.id;
- assertValidId(completionId);
-
- // Perform some analysis but assert that no suggestions have yet been made
- await pumpEventQueue(25);
- expect(suggestionsDone, isFalse);
- expect(suggestions, hasLength(0));
+ Future<Response> responseFuture = waitResponse(request);
// Simulate user deleting text after request but before suggestions returned
server.updateContent('uc1', {testFile: new AddContentOverlay(testCode)});
@@ -343,10 +338,17 @@ class CompletionDomainHandlerTest extends AbstractCompletionDomainTest {
[new SourceEdit(completionOffset - 1, 1, '')])
});
- // Expect the completion domain to discard request because source changed
- await pumpEventQueue().then((_) {
- expect(suggestionsDone, isTrue);
- });
+ // Await a response
+ Response response = await responseFuture;
+ completionId = response.id;
+ assertValidId(completionId);
+
+ // Wait for all processing to be complete
+ await analysisHandler.server.analysisDriverScheduler.waitForIdle();
+ await pumpEventQueue();
+
+ // Assert that request has been aborted
+ expect(suggestionsDone, isTrue);
expect(suggestions, hasLength(0));
}
« no previous file with comments | « pkg/analysis_server/lib/src/domain_completion.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698