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 test.services.completion.suggestion; | 5 library test.services.completion.suggestion; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
10 import 'package:analysis_server/src/analysis_server.dart'; | |
11 import 'package:analysis_server/src/provisional/completion/completion_core.dart' | 10 import 'package:analysis_server/src/provisional/completion/completion_core.dart' |
12 show CompletionRequest, CompletionResult; | 11 show CompletionRequest, CompletionResult; |
13 import 'package:analysis_server/src/services/completion/completion_core.dart'; | 12 import 'package:analysis_server/src/services/completion/completion_core.dart'; |
14 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; | 13 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; |
15 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 14 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
16 import 'package:analysis_server/src/services/index/index.dart'; | 15 import 'package:analysis_server/src/services/index/index.dart'; |
17 import 'package:analysis_server/src/services/index/local_memory_index.dart'; | 16 import 'package:analysis_server/src/services/index/local_memory_index.dart'; |
18 import 'package:analysis_server/src/services/search/search_engine.dart'; | 17 import 'package:analysis_server/src/services/search/search_engine.dart'; |
19 import 'package:analysis_server/src/services/search/search_engine_internal.dart'
; | 18 import 'package:analysis_server/src/services/search/search_engine_internal.dart'
; |
20 import 'package:analyzer/src/generated/engine.dart'; | 19 import 'package:analyzer/src/generated/engine.dart'; |
21 import 'package:analyzer/src/generated/source.dart'; | 20 import 'package:analyzer/src/generated/source.dart'; |
22 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 21 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
23 import 'package:unittest/unittest.dart'; | 22 import 'package:unittest/unittest.dart'; |
24 | 23 |
25 import '../../abstract_single_unit.dart'; | 24 import '../../abstract_single_unit.dart'; |
26 import '../../operation/operation_queue_test.dart'; | |
27 import '../../utils.dart'; | 25 import '../../utils.dart'; |
28 | 26 |
29 main() { | 27 main() { |
30 initializeTestEnvironment(); | 28 initializeTestEnvironment(); |
31 defineReflectiveTests(DartCompletionManagerTest); | 29 defineReflectiveTests(DartCompletionManagerTest); |
32 } | 30 } |
33 | 31 |
34 /** | 32 /** |
35 * Returns a [Future] that completes after pumping the event queue [times] | 33 * Returns a [Future] that completes after pumping the event queue [times] |
36 * times. By default, this should pump the event queue enough times to allow | 34 * times. By default, this should pump the event queue enough times to allow |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 _continuePerformingAnalysis = false; | 79 _continuePerformingAnalysis = false; |
82 } | 80 } |
83 | 81 |
84 test_compute_fastAndFull() { | 82 test_compute_fastAndFull() { |
85 contributor1 = new MockCompletionContributor(suggestion1, null); | 83 contributor1 = new MockCompletionContributor(suggestion1, null); |
86 contributor2 = new MockCompletionContributor(null, suggestion2); | 84 contributor2 = new MockCompletionContributor(null, suggestion2); |
87 manager.contributors = [contributor1, contributor2]; | 85 manager.contributors = [contributor1, contributor2]; |
88 manager.newContributors = []; | 86 manager.newContributors = []; |
89 int count = 0; | 87 int count = 0; |
90 bool done = false; | 88 bool done = false; |
91 AnalysisServer server = new AnalysisServerMock(searchEngine: searchEngine); | |
92 CompletionRequest completionRequest = | 89 CompletionRequest completionRequest = |
93 new CompletionRequestImpl(server, context, source, 0); | 90 new CompletionRequestImpl(context, provider, searchEngine, source, 0); |
94 manager.results(completionRequest).listen((CompletionResult r) { | 91 manager.results(completionRequest).listen((CompletionResult r) { |
95 bool isLast = r is CompletionResultImpl ? r.isLast : true; | 92 bool isLast = r is CompletionResultImpl ? r.isLast : true; |
96 switch (++count) { | 93 switch (++count) { |
97 case 1: | 94 case 1: |
98 contributor1.assertCalls(context, source, 0, searchEngine); | 95 contributor1.assertCalls(context, source, 0, searchEngine); |
99 expect(contributor1.fastCount, equals(1)); | 96 expect(contributor1.fastCount, equals(1)); |
100 expect(contributor1.fullCount, equals(0)); | 97 expect(contributor1.fullCount, equals(0)); |
101 contributor2.assertCalls(context, source, 0, searchEngine); | 98 contributor2.assertCalls(context, source, 0, searchEngine); |
102 expect(contributor2.fastCount, equals(1)); | 99 expect(contributor2.fastCount, equals(1)); |
103 expect(contributor2.fullCount, equals(1)); | 100 expect(contributor2.fullCount, equals(1)); |
(...skipping 16 matching lines...) Expand all Loading... |
120 }); | 117 }); |
121 } | 118 } |
122 | 119 |
123 test_compute_fastOnly() { | 120 test_compute_fastOnly() { |
124 contributor1 = new MockCompletionContributor(suggestion1, null); | 121 contributor1 = new MockCompletionContributor(suggestion1, null); |
125 contributor2 = new MockCompletionContributor(suggestion2, null); | 122 contributor2 = new MockCompletionContributor(suggestion2, null); |
126 manager.contributors = [contributor1, contributor2]; | 123 manager.contributors = [contributor1, contributor2]; |
127 manager.newContributors = []; | 124 manager.newContributors = []; |
128 int count = 0; | 125 int count = 0; |
129 bool done = false; | 126 bool done = false; |
130 AnalysisServer server = new AnalysisServerMock(searchEngine: searchEngine); | |
131 CompletionRequest completionRequest = | 127 CompletionRequest completionRequest = |
132 new CompletionRequestImpl(server, context, source, 0); | 128 new CompletionRequestImpl(context, provider, searchEngine, source, 0); |
133 manager.results(completionRequest).listen((CompletionResult r) { | 129 manager.results(completionRequest).listen((CompletionResult r) { |
134 bool isLast = r is CompletionResultImpl ? r.isLast : true; | 130 bool isLast = r is CompletionResultImpl ? r.isLast : true; |
135 switch (++count) { | 131 switch (++count) { |
136 case 1: | 132 case 1: |
137 contributor1.assertCalls(context, source, 0, searchEngine); | 133 contributor1.assertCalls(context, source, 0, searchEngine); |
138 expect(contributor1.fastCount, equals(1)); | 134 expect(contributor1.fastCount, equals(1)); |
139 expect(contributor1.fullCount, equals(0)); | 135 expect(contributor1.fullCount, equals(0)); |
140 contributor2.assertCalls(context, source, 0, searchEngine); | 136 contributor2.assertCalls(context, source, 0, searchEngine); |
141 expect(contributor2.fastCount, equals(1)); | 137 expect(contributor2.fastCount, equals(1)); |
142 expect(contributor2.fullCount, equals(0)); | 138 expect(contributor2.fullCount, equals(0)); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 @override | 197 @override |
202 Future<bool> computeFull(DartCompletionRequest request) { | 198 Future<bool> computeFull(DartCompletionRequest request) { |
203 this.request = request; | 199 this.request = request; |
204 fullCount++; | 200 fullCount++; |
205 if (fullSuggestion != null) { | 201 if (fullSuggestion != null) { |
206 request.addSuggestion(fullSuggestion); | 202 request.addSuggestion(fullSuggestion); |
207 } | 203 } |
208 return new Future.value(fullSuggestion != null); | 204 return new Future.value(fullSuggestion != null); |
209 } | 205 } |
210 } | 206 } |
OLD | NEW |