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

Side by Side Diff: pkg/analysis_server/test/domain_completion_test.dart

Issue 436263002: incremental progress reworking code completion manager / computers (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 test.domain.completion; 5 library test.domain.completion;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/domain_completion.dart'; 10 import 'package:analysis_server/src/domain_completion.dart';
11 import 'package:analysis_server/src/protocol.dart'; 11 import 'package:analysis_server/src/protocol.dart';
12 import 'package:analysis_services/completion/completion_suggestion.dart'; 12 import 'package:analysis_services/completion/completion_suggestion.dart';
13 import 'package:analysis_services/constants.dart'; 13 import 'package:analysis_services/constants.dart';
14 import 'package:analysis_services/index/index.dart' show Index; 14 import 'package:analysis_services/index/index.dart' show Index;
15 import 'package:analysis_services/index/local_memory_index.dart'; 15 import 'package:analysis_services/index/local_memory_index.dart';
16 import 'package:analysis_testing/reflective_tests.dart'; 16 import 'package:analysis_testing/reflective_tests.dart';
17 import 'package:unittest/unittest.dart'; 17 import 'package:unittest/unittest.dart';
18 18
19 import 'analysis_abstract.dart'; 19 import 'analysis_abstract.dart';
20 import 'mocks.dart';
20 21
21 main() { 22 main() {
22 groupSep = ' | '; 23 groupSep = ' | ';
23 runReflectiveTests(CompletionTest); 24 runReflectiveTests(CompletionTest);
24 } 25 }
25 26
26 @ReflectiveTestCase() 27 @ReflectiveTestCase()
27 class CompletionTest extends AbstractAnalysisTest { 28 class CompletionTest extends AbstractAnalysisTest {
28 String completionId; 29 String completionId;
29 int completionOffset; 30 int completionOffset;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 } 75 }
75 76
76 Future getSuggestions() { 77 Future getSuggestions() {
77 return waitForTasksFinished().then((_) { 78 return waitForTasksFinished().then((_) {
78 Request request = new Request('0', COMPLETION_GET_SUGGESTIONS); 79 Request request = new Request('0', COMPLETION_GET_SUGGESTIONS);
79 request.setParameter(FILE, testFile); 80 request.setParameter(FILE, testFile);
80 request.setParameter(OFFSET, completionOffset); 81 request.setParameter(OFFSET, completionOffset);
81 Response response = handleSuccessfulRequest(request); 82 Response response = handleSuccessfulRequest(request);
82 completionId = response.getResult(ID); 83 completionId = response.getResult(ID);
83 assertValidId(completionId); 84 assertValidId(completionId);
84 return waitForSuggestions(); 85 return pumpEventQueue();
scheglov 2014/08/04 17:00:30 Why do we need this change? If we don't use "sugg
danrubel 2014/08/04 17:33:12 This change prevents a test hang if a microtask th
85 }); 86 });
86 } 87 }
87 88
88 void processNotification(Notification notification) { 89 void processNotification(Notification notification) {
89 if (notification.event == COMPLETION_RESULTS) { 90 if (notification.event == COMPLETION_RESULTS) {
90 String id = notification.getParameter(ID); 91 String id = notification.getParameter(ID);
91 assertValidId(id); 92 assertValidId(id);
92 if (id == completionId) { 93 if (id == completionId) {
93 expect(suggestionsDone, isFalse); 94 expect(suggestionsDone, isFalse);
94 replacementOffset = notification.getParameter(REPLACEMENT_OFFSET); 95 replacementOffset = notification.getParameter(REPLACEMENT_OFFSET);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 main() {tes^t} 144 main() {tes^t}
144 '''); 145 ''');
145 return getSuggestions().then((_) { 146 return getSuggestions().then((_) {
146 // expect(replacementOffset, equals(completionOffset - 3)); 147 // expect(replacementOffset, equals(completionOffset - 3));
147 // expect(replacementLength, equals(4)); 148 // expect(replacementLength, equals(4));
148 assertHasResult(CompletionSuggestionKind.CLASS, 'Object'); 149 assertHasResult(CompletionSuggestionKind.CLASS, 'Object');
149 assertHasResult(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, 'test'); 150 assertHasResult(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, 'test');
150 assertNoResult('HtmlElement'); 151 assertNoResult('HtmlElement');
151 }); 152 });
152 } 153 }
153
154 Future waitForSuggestions() {
155 if (suggestionsDone) {
156 return new Future.value();
157 }
158 return new Future.delayed(Duration.ZERO, waitForSuggestions);
159 }
160 } 154 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/domain_completion.dart ('k') | pkg/analysis_services/lib/completion/completion_computer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698