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

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

Issue 1115843003: restructure internal request to implement CompletionRequest API, (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 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.services.completion.util; 5 library test.services.completion.util;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart';
9 import 'package:analysis_server/src/protocol.dart' as protocol 10 import 'package:analysis_server/src/protocol.dart' as protocol
10 show Element, ElementKind; 11 show Element, ElementKind;
11 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind; 12 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind;
12 import 'package:analysis_server/src/services/completion/common_usage_computer.da rt'; 13 import 'package:analysis_server/src/services/completion/common_usage_computer.da rt';
13 import 'package:analysis_server/src/services/completion/completion_manager.dart' ; 14 import 'package:analysis_server/src/services/completion/completion_manager.dart' ;
14 import 'package:analysis_server/src/services/completion/completion_target.dart'; 15 import 'package:analysis_server/src/services/completion/completion_target.dart';
15 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt'; 16 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt';
16 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; 17 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
17 import 'package:analysis_server/src/services/completion/imported_reference_contr ibutor.dart'; 18 import 'package:analysis_server/src/services/completion/imported_reference_contr ibutor.dart';
18 import 'package:analysis_server/src/services/completion/prefixed_element_contrib utor.dart'; 19 import 'package:analysis_server/src/services/completion/prefixed_element_contrib utor.dart';
19 import 'package:analysis_server/src/services/index/index.dart'; 20 import 'package:analysis_server/src/services/index/index.dart';
20 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 21 import 'package:analysis_server/src/services/index/local_memory_index.dart';
21 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 22 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
22 import 'package:analyzer/src/generated/ast.dart'; 23 import 'package:analyzer/src/generated/ast.dart';
23 import 'package:analyzer/src/generated/element.dart'; 24 import 'package:analyzer/src/generated/element.dart';
24 import 'package:analyzer/src/generated/engine.dart'; 25 import 'package:analyzer/src/generated/engine.dart';
25 import 'package:analyzer/src/generated/source.dart'; 26 import 'package:analyzer/src/generated/source.dart';
26 import 'package:unittest/unittest.dart'; 27 import 'package:unittest/unittest.dart';
27 28
28 import '../../abstract_context.dart'; 29 import '../../abstract_context.dart';
30 import '../../operation/operation_queue_test.dart';
29 31
30 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) { 32 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) {
31 String c1 = s1.completion.toLowerCase(); 33 String c1 = s1.completion.toLowerCase();
32 String c2 = s2.completion.toLowerCase(); 34 String c2 = s2.completion.toLowerCase();
33 return c1.compareTo(c2); 35 return c1.compareTo(c2);
34 } 36 }
35 37
36 abstract class AbstractCompletionTest extends AbstractContextTest { 38 abstract class AbstractCompletionTest extends AbstractContextTest {
37 Index index; 39 Index index;
38 SearchEngineImpl searchEngine; 40 SearchEngineImpl searchEngine;
(...skipping 17 matching lines...) Expand all
56 void addTestSource(String content) { 58 void addTestSource(String content) {
57 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once'); 59 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once');
58 completionOffset = content.indexOf('^'); 60 completionOffset = content.indexOf('^');
59 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); 61 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
60 int nextOffset = content.indexOf('^', completionOffset + 1); 62 int nextOffset = content.indexOf('^', completionOffset + 1);
61 expect(nextOffset, equals(-1), reason: 'too many ^'); 63 expect(nextOffset, equals(-1), reason: 'too many ^');
62 content = content.substring(0, completionOffset) + 64 content = content.substring(0, completionOffset) +
63 content.substring(completionOffset + 1); 65 content.substring(completionOffset + 1);
64 testSource = addSource(testFile, content); 66 testSource = addSource(testFile, content);
65 cache = new DartCompletionCache(context, testSource); 67 cache = new DartCompletionCache(context, testSource);
66 request = new DartCompletionRequest(context, searchEngine, testSource, 68 AnalysisServer server = new AnalysisServerMock(searchEngine: searchEngine);
67 completionOffset, cache, new CompletionPerformance()); 69 request = new DartCompletionRequest(
70 server, context, testSource, completionOffset, cache);
68 } 71 }
69 72
70 void assertHasNoParameterInfo(CompletionSuggestion suggestion) { 73 void assertHasNoParameterInfo(CompletionSuggestion suggestion) {
71 expect(suggestion.parameterNames, isNull); 74 expect(suggestion.parameterNames, isNull);
72 expect(suggestion.parameterTypes, isNull); 75 expect(suggestion.parameterTypes, isNull);
73 expect(suggestion.requiredParameterCount, isNull); 76 expect(suggestion.requiredParameterCount, isNull);
74 expect(suggestion.hasNamedParameters, isNull); 77 expect(suggestion.hasNamedParameters, isNull);
75 } 78 }
76 79
77 void assertHasParameterInfo(CompletionSuggestion suggestion) { 80 void assertHasParameterInfo(CompletionSuggestion suggestion) {
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 assertSuggestSetter(name); 401 assertSuggestSetter(name);
399 } else { 402 } else {
400 assertNotSuggested(name); 403 assertNotSuggested(name);
401 } 404 }
402 } 405 }
403 406
404 bool computeFast() { 407 bool computeFast() {
405 expect(computeFastResult, isNull); 408 expect(computeFastResult, isNull);
406 _completionManager = new DartCompletionManager(context, searchEngine, 409 _completionManager = new DartCompletionManager(context, searchEngine,
407 testSource, cache, [contributor], new CommonUsageComputer({})); 410 testSource, cache, [contributor], new CommonUsageComputer({}));
408 var result = _completionManager.computeFast(request); 411 var result =
412 _completionManager.computeFast(request, new CompletionPerformance());
409 expect(request.replacementOffset, isNotNull); 413 expect(request.replacementOffset, isNotNull);
410 expect(request.replacementLength, isNotNull); 414 expect(request.replacementLength, isNotNull);
411 computeFastResult = result.isEmpty; 415 computeFastResult = result.isEmpty;
412 return computeFastResult; 416 return computeFastResult;
413 } 417 }
414 418
415 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) { 419 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) {
416 if (computeFastResult == null) { 420 if (computeFastResult == null) {
417 computeFast(); 421 computeFast();
418 } 422 }
(...skipping 1373 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 '/proj/testAB.dart', 'import "package:myBar/bar.dart"; class Foo { }'); 1796 '/proj/testAB.dart', 'import "package:myBar/bar.dart"; class Foo { }');
1793 testFile = '/proj/completionTest.dart'; 1797 testFile = '/proj/completionTest.dart';
1794 addTestSource('class C {foo(){F^}}'); 1798 addTestSource('class C {foo(){F^}}');
1795 computeFast(); 1799 computeFast();
1796 return computeFull((bool result) { 1800 return computeFull((bool result) {
1797 expect(request.replacementOffset, completionOffset - 1); 1801 expect(request.replacementOffset, completionOffset - 1);
1798 expect(request.replacementLength, 1); 1802 expect(request.replacementLength, 1);
1799 assertSuggestImportedClass('Foo', 1803 assertSuggestImportedClass('Foo',
1800 relevance: DART_RELEVANCE_LOW, importUri: 'testAB.dart'); 1804 relevance: DART_RELEVANCE_LOW, importUri: 'testAB.dart');
1801 // TODO(danrubel) implement 1805 // TODO(danrubel) implement
1802 assertSuggestImportedClass('Foo2', 1806 assertSuggestImportedClass('Foo2',
1803 relevance: DART_RELEVANCE_LOW, importUri: 'package:myBar/bar.dart'); 1807 relevance: DART_RELEVANCE_LOW, importUri: 'package:myBar/bar.dart');
1804 assertSuggestImportedClass('Future', 1808 assertSuggestImportedClass('Future',
1805 relevance: DART_RELEVANCE_LOW, importUri: 'dart:async'); 1809 relevance: DART_RELEVANCE_LOW, importUri: 'dart:async');
1806 }); 1810 });
1807 } 1811 }
1808 1812
1809 test_CascadeExpression_selector1() { 1813 test_CascadeExpression_selector1() {
1810 // PropertyAccess CascadeExpression ExpressionStatement Block 1814 // PropertyAccess CascadeExpression ExpressionStatement Block
1811 addSource('/testB.dart', ''' 1815 addSource('/testB.dart', '''
1812 class B { }'''); 1816 class B { }''');
(...skipping 2529 matching lines...) Expand 10 before | Expand all | Expand 10 after
4342 assertNotSuggested('bar2'); 4346 assertNotSuggested('bar2');
4343 assertNotSuggested('_B'); 4347 assertNotSuggested('_B');
4344 assertSuggestLocalClass('Y'); 4348 assertSuggestLocalClass('Y');
4345 assertSuggestLocalClass('C'); 4349 assertSuggestLocalClass('C');
4346 assertSuggestLocalVariable('f', null); 4350 assertSuggestLocalVariable('f', null);
4347 assertNotSuggested('x'); 4351 assertNotSuggested('x');
4348 assertNotSuggested('e'); 4352 assertNotSuggested('e');
4349 }); 4353 });
4350 } 4354 }
4351 } 4355 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698