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

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

Issue 2394683006: Switch analysis_server to use 'package:test'. (Closed)
Patch Set: Created 4 years, 2 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
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/plugin/protocol/protocol.dart'; 9 import 'package:analysis_server/plugin/protocol/protocol.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/provisional/completion/completion_core.dart' ; 11 import 'package:analysis_server/src/provisional/completion/completion_core.dart' ;
12 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart'; 12 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart';
13 import 'package:analysis_server/src/services/completion/dart/completion_manager. dart'; 13 import 'package:analysis_server/src/services/completion/dart/completion_manager. dart';
14 import 'package:analysis_server/src/services/completion/dart/contribution_sorter .dart'; 14 import 'package:analysis_server/src/services/completion/dart/contribution_sorter .dart';
15 import 'package:test/test.dart';
15 import 'package:test_reflective_loader/test_reflective_loader.dart'; 16 import 'package:test_reflective_loader/test_reflective_loader.dart';
16 import 'package:unittest/unittest.dart';
17 17
18 import 'analysis_abstract.dart'; 18 import 'analysis_abstract.dart';
19 import 'domain_completion_util.dart'; 19 import 'domain_completion_util.dart';
20 import 'mocks.dart' show pumpEventQueue; 20 import 'mocks.dart' show pumpEventQueue;
21 import 'utils.dart'; 21 import 'utils.dart';
22 22
23 main() { 23 main() {
24 initializeTestEnvironment(); 24 initializeTestEnvironment();
25 defineReflectiveTests(CompletionDomainHandlerTest); 25 defineReflectiveSuite(() {
26 defineReflectiveTests(_NoSearchEngine); 26 defineReflectiveTests(CompletionDomainHandlerTest);
27 defineReflectiveTests(_NoSearchEngine);
28 });
27 } 29 }
28 30
29 @reflectiveTest 31 @reflectiveTest
30 class CompletionDomainHandlerTest extends AbstractCompletionDomainTest { 32 class CompletionDomainHandlerTest extends AbstractCompletionDomainTest {
31 test_ArgumentList_imported_function_named_param() async { 33 test_ArgumentList_imported_function_named_param() async {
32 addTestFile('main() { int.parse("16", ^);}'); 34 addTestFile('main() { int.parse("16", ^);}');
33 await getSuggestions(); 35 await getSuggestions();
34 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix: ', 36 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix: ',
35 relevance: DART_RELEVANCE_NAMED_PARAMETER); 37 relevance: DART_RELEVANCE_NAMED_PARAMETER);
36 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError: ', 38 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError: ',
37 relevance: DART_RELEVANCE_NAMED_PARAMETER); 39 relevance: DART_RELEVANCE_NAMED_PARAMETER);
38 expect(suggestions, hasLength(2)); 40 expect(suggestions, hasLength(2));
39 } 41 }
40 42
41 test_ArgumentList_imported_function_named_param1() async { 43 test_ArgumentList_imported_function_named_param1() async {
42 addTestFile('main() { foo(o^);} foo({one, two}) {}'); 44 addTestFile('main() { foo(o^);} foo({one, two}) {}');
43 await getSuggestions(); 45 await getSuggestions();
44 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'one: ', 46 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'one: ',
45 relevance: DART_RELEVANCE_NAMED_PARAMETER); 47 relevance: DART_RELEVANCE_NAMED_PARAMETER);
46 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'two: ', 48 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'two: ',
47 relevance: DART_RELEVANCE_NAMED_PARAMETER); 49 relevance: DART_RELEVANCE_NAMED_PARAMETER);
48 expect(suggestions, hasLength(2)); 50 expect(suggestions, hasLength(2));
49 } 51 }
50 52
53 test_ArgumentList_imported_function_named_param2() async {
54 addTestFile('mainx() {A a = new A(); a.foo(one: 7, ^);}'
55 'class A { foo({one, two}) {} }');
56 await getSuggestions();
57 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'two: ',
58 relevance: DART_RELEVANCE_NAMED_PARAMETER);
59 expect(suggestions, hasLength(1));
60 }
61
51 test_ArgumentList_imported_function_named_param_label1() async { 62 test_ArgumentList_imported_function_named_param_label1() async {
52 addTestFile('main() { int.parse("16", r^: 16);}'); 63 addTestFile('main() { int.parse("16", r^: 16);}');
53 await getSuggestions(); 64 await getSuggestions();
54 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix', 65 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix',
55 relevance: DART_RELEVANCE_NAMED_PARAMETER); 66 relevance: DART_RELEVANCE_NAMED_PARAMETER);
56 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError', 67 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError',
57 relevance: DART_RELEVANCE_NAMED_PARAMETER); 68 relevance: DART_RELEVANCE_NAMED_PARAMETER);
58 expect(suggestions, hasLength(2)); 69 expect(suggestions, hasLength(2));
59 } 70 }
60 71
61 test_ArgumentList_imported_function_named_param_label3() async { 72 test_ArgumentList_imported_function_named_param_label3() async {
62 addTestFile('main() { int.parse("16", ^: 16);}'); 73 addTestFile('main() { int.parse("16", ^: 16);}');
63 await getSuggestions(); 74 await getSuggestions();
64 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix: ', 75 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'radix: ',
65 relevance: DART_RELEVANCE_NAMED_PARAMETER); 76 relevance: DART_RELEVANCE_NAMED_PARAMETER);
66 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError: ', 77 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'onError: ',
67 relevance: DART_RELEVANCE_NAMED_PARAMETER); 78 relevance: DART_RELEVANCE_NAMED_PARAMETER);
68 expect(suggestions, hasLength(2)); 79 expect(suggestions, hasLength(2));
69 } 80 }
70 81
71 test_ArgumentList_imported_function_named_param2() async {
72 addTestFile('mainx() {A a = new A(); a.foo(one: 7, ^);}'
73 'class A { foo({one, two}) {} }');
74 await getSuggestions();
75 assertHasResult(CompletionSuggestionKind.NAMED_ARGUMENT, 'two: ',
76 relevance: DART_RELEVANCE_NAMED_PARAMETER);
77 expect(suggestions, hasLength(1));
78 }
79
80 test_html() { 82 test_html() {
81 testFile = '/project/web/test.html'; 83 testFile = '/project/web/test.html';
82 addTestFile(''' 84 addTestFile('''
83 <html>^</html> 85 <html>^</html>
84 '''); 86 ''');
85 return getSuggestions().then((_) { 87 return getSuggestions().then((_) {
86 expect(replacementOffset, equals(completionOffset)); 88 expect(replacementOffset, equals(completionOffset));
87 expect(replacementLength, equals(0)); 89 expect(replacementLength, equals(0));
88 expect(suggestions, hasLength(0)); 90 expect(suggestions, hasLength(0));
89 }); 91 });
90 } 92 }
91 93
94 test_import_uri_with_trailing() {
95 addFile('/project/bin/testA.dart', 'library libA;');
96 addTestFile('''
97 import '/project/bin/t^.dart';
98 main() {}''');
99 return getSuggestions().then((_) {
100 expect(replacementOffset, equals(completionOffset - 14));
101 expect(replacementLength, equals(5 + 14));
102 assertHasResult(
103 CompletionSuggestionKind.IMPORT, '/project/bin/testA.dart');
104 assertNoResult('test');
105 });
106 }
107
92 test_imports() { 108 test_imports() {
93 addTestFile(''' 109 addTestFile('''
94 import 'dart:html'; 110 import 'dart:html';
95 main() {^} 111 main() {^}
96 '''); 112 ''');
97 return getSuggestions().then((_) { 113 return getSuggestions().then((_) {
98 expect(replacementOffset, equals(completionOffset)); 114 expect(replacementOffset, equals(completionOffset));
99 expect(replacementLength, equals(0)); 115 expect(replacementLength, equals(0));
100 assertHasResult(CompletionSuggestionKind.INVOCATION, 'Object'); 116 assertHasResult(CompletionSuggestionKind.INVOCATION, 'Object');
101 assertHasResult(CompletionSuggestionKind.INVOCATION, 'HtmlElement'); 117 assertHasResult(CompletionSuggestionKind.INVOCATION, 'HtmlElement');
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 return getSuggestions().then((_) { 570 return getSuggestions().then((_) {
555 expect(replacementOffset, equals(completionOffset - 3)); 571 expect(replacementOffset, equals(completionOffset - 3));
556 expect(replacementLength, equals(4)); 572 expect(replacementLength, equals(4));
557 // Suggestions based upon imported elements are partially filtered 573 // Suggestions based upon imported elements are partially filtered
558 //assertHasResult(CompletionSuggestionKind.INVOCATION, 'Object'); 574 //assertHasResult(CompletionSuggestionKind.INVOCATION, 'Object');
559 assertHasResult(CompletionSuggestionKind.INVOCATION, 'test', 575 assertHasResult(CompletionSuggestionKind.INVOCATION, 'test',
560 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); 576 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE);
561 assertNoResult('HtmlElement'); 577 assertNoResult('HtmlElement');
562 }); 578 });
563 } 579 }
564
565 test_import_uri_with_trailing() {
566 addFile('/project/bin/testA.dart', 'library libA;');
567 addTestFile('''
568 import '/project/bin/t^.dart';
569 main() {}''');
570 return getSuggestions().then((_) {
571 expect(replacementOffset, equals(completionOffset - 14));
572 expect(replacementLength, equals(5 + 14));
573 assertHasResult(
574 CompletionSuggestionKind.IMPORT, '/project/bin/testA.dart');
575 assertNoResult('test');
576 });
577 }
578 } 580 }
579 581
580 class MockRelevancySorter implements DartContributionSorter { 582 class MockRelevancySorter implements DartContributionSorter {
581 bool enabled = true; 583 bool enabled = true;
582 584
583 @override 585 @override
584 Future sort( 586 Future sort(
585 CompletionRequest request, Iterable<CompletionSuggestion> suggestions) { 587 CompletionRequest request, Iterable<CompletionSuggestion> suggestions) {
586 if (!enabled) { 588 if (!enabled) {
587 throw 'unexpected sort'; 589 throw 'unexpected sort';
(...skipping 18 matching lines...) Expand all
606 } 608 }
607 '''); 609 ''');
608 await waitForTasksFinished(); 610 await waitForTasksFinished();
609 Request request = 611 Request request =
610 new CompletionGetSuggestionsParams(testFile, 0).toRequest('0'); 612 new CompletionGetSuggestionsParams(testFile, 0).toRequest('0');
611 Response response = handler.handleRequest(request); 613 Response response = handler.handleRequest(request);
612 expect(response.error, isNotNull); 614 expect(response.error, isNotNull);
613 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED); 615 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED);
614 } 616 }
615 } 617 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698