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

Side by Side Diff: pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart

Issue 1499003002: extract ReplacementRange for use in tests (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years 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
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.services.completion.dart.util; 5 library test.services.completion.dart.util;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol 9 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol
10 show Element, ElementKind; 10 show Element, ElementKind;
11 import 'package:analysis_server/plugin/protocol/protocol.dart' 11 import 'package:analysis_server/plugin/protocol/protocol.dart'
12 hide Element, ElementKind; 12 hide Element, ElementKind;
13 import 'package:analysis_server/plugin/protocol/protocol.dart'; 13 import 'package:analysis_server/plugin/protocol/protocol.dart';
14 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart'; 14 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart';
15 import 'package:analysis_server/src/services/completion/completion_core.dart'; 15 import 'package:analysis_server/src/services/completion/completion_core.dart';
16 import 'package:analysis_server/src/services/completion/dart/completion_manager. dart' 16 import 'package:analysis_server/src/services/completion/dart/completion_manager. dart'
17 show DartCompletionRequestImpl; 17 show DartCompletionRequestImpl;
18 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart' 18 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'
19 show DART_RELEVANCE_DEFAULT, DART_RELEVANCE_LOW; 19 show DART_RELEVANCE_DEFAULT, DART_RELEVANCE_LOW, ReplacementRange;
20 import 'package:analysis_server/src/services/index/index.dart'; 20 import 'package:analysis_server/src/services/index/index.dart';
21 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 21 import 'package:analysis_server/src/services/index/local_memory_index.dart';
22 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 22 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
23 import 'package:analyzer/src/generated/source.dart'; 23 import 'package:analyzer/src/generated/source.dart';
24 import 'package:unittest/unittest.dart'; 24 import 'package:unittest/unittest.dart';
25 25
26 import '../../../abstract_context.dart'; 26 import '../../../abstract_context.dart';
27 27
28 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) { 28 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) {
29 String c1 = s1.completion.toLowerCase(); 29 String c1 = s1.completion.toLowerCase();
30 String c2 = s2.completion.toLowerCase(); 30 String c2 = s2.completion.toLowerCase();
31 return c1.compareTo(c2); 31 return c1.compareTo(c2);
32 } 32 }
33 33
34 abstract class DartCompletionContributorTest extends AbstractContextTest { 34 abstract class DartCompletionContributorTest extends AbstractContextTest {
35 Index index; 35 Index index;
36 SearchEngineImpl searchEngine; 36 SearchEngineImpl searchEngine;
37 String testFile = '/completionTest.dart'; 37 String testFile = '/completionTest.dart';
38 Source testSource; 38 Source testSource;
39 int completionOffset; 39 int completionOffset;
40 int replacementOffset;
41 int replacementLength;
40 DartCompletionContributor contributor; 42 DartCompletionContributor contributor;
41 DartCompletionRequest request; 43 DartCompletionRequest request;
42 List<CompletionSuggestion> suggestions; 44 List<CompletionSuggestion> suggestions;
43 45
44 void addTestSource(String content) { 46 void addTestSource(String content) {
45 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once'); 47 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once');
46 completionOffset = content.indexOf('^'); 48 completionOffset = content.indexOf('^');
47 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); 49 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
48 int nextOffset = content.indexOf('^', completionOffset + 1); 50 int nextOffset = content.indexOf('^', completionOffset + 1);
49 expect(nextOffset, equals(-1), reason: 'too many ^'); 51 expect(nextOffset, equals(-1), reason: 'too many ^');
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // would therefore not wait for microtask callbacks that are scheduled after 144 // would therefore not wait for microtask callbacks that are scheduled after
143 // invoking this method. 145 // invoking this method.
144 return new Future.delayed( 146 return new Future.delayed(
145 Duration.ZERO, () => computeLibrariesContaining(times - 1)); 147 Duration.ZERO, () => computeLibrariesContaining(times - 1));
146 } 148 }
147 149
148 Future computeSuggestions([int times = 200]) async { 150 Future computeSuggestions([int times = 200]) async {
149 CompletionRequestImpl baseRequest = new CompletionRequestImpl( 151 CompletionRequestImpl baseRequest = new CompletionRequestImpl(
150 context, provider, searchEngine, testSource, completionOffset); 152 context, provider, searchEngine, testSource, completionOffset);
151 request = new DartCompletionRequestImpl.forRequest(baseRequest); 153 request = new DartCompletionRequestImpl.forRequest(baseRequest);
154 var range = new ReplacementRange.compute(request.offset, request.target);
155 replacementOffset = range.offset;
156 replacementLength = range.length;
152 Completer<List<CompletionSuggestion>> completer = 157 Completer<List<CompletionSuggestion>> completer =
153 new Completer<List<CompletionSuggestion>>(); 158 new Completer<List<CompletionSuggestion>>();
154 159
155 // Request completions 160 // Request completions
156 contributor 161 contributor
157 .computeSuggestions(request) 162 .computeSuggestions(request)
158 .then((List<CompletionSuggestion> computedSuggestions) { 163 .then((List<CompletionSuggestion> computedSuggestions) {
159 completer.complete(computedSuggestions); 164 completer.complete(computedSuggestions);
160 }); 165 });
161 166
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 } 229 }
225 230
226 @override 231 @override
227 void setUp() { 232 void setUp() {
228 super.setUp(); 233 super.setUp();
229 index = createLocalMemoryIndex(); 234 index = createLocalMemoryIndex();
230 searchEngine = new SearchEngineImpl(index); 235 searchEngine = new SearchEngineImpl(index);
231 contributor = createContributor(); 236 contributor = createContributor();
232 } 237 }
233 } 238 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698