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

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

Issue 1467023002: step toward new completion API (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
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.
4
5 library test.services.completion.inherited_computer_test;
6
7 import 'package:analysis_server/plugin/protocol/protocol.dart'
8 hide Element, ElementKind;
9 import 'package:analysis_server/src/provisional/completion/completion_dart.dart' ;
10 import 'package:analysis_server/src/services/completion/dart/inherited_contribut or.dart';
11 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'
12 hide DartCompletionContributor;
13 import 'package:test_reflective_loader/test_reflective_loader.dart';
14 import 'package:unittest/unittest.dart';
15
16 import '../../../utils.dart';
17 import 'dart_completion_contributor_test.dart';
18
19 main() {
20 initializeTestEnvironment();
21 defineReflectiveTests(InheritedContributorTest);
22 }
23
24 @reflectiveTest
25 class InheritedContributorTest extends DartCompletionContributorTest {
26 @override
27 DartCompletionContributor createContributor() {
28 return new InheritedContributor();
29 }
30
31 test_fromMultipleSuperclasses() async {
32 addTestSource(r'''
33 class A {
34 A suggested1(int x) => null;
35 B suggested2(String y) => null;
36 }
37 class B extends A {
38 B suggested2(String y) => null;
39 C suggested3([String z]) => null;
40 }
41 class C extends B {
42 sugg^
43 }
44 ''');
45 await computeSuggestions();
46 _assertOverride('''@override
47 A suggested1(int x) {
48 // TODO: implement suggested1
49 return null;
50 }''');
51 _assertOverride(
52 '''@override\n A suggested1(int x) {\n // TODO: implement suggested1 \n return null;\n }''');
53 _assertOverride(
54 '''@override\n B suggested2(String y) {\n // TODO: implement suggest ed2\n return null;\n }''');
55 _assertOverride(
56 '''@override\n C suggested3([String z]) {\n // TODO: implement sugge sted3\n return null;\n }''');
57 }
58
59 test_fromPart() async {
60 addSource(
61 '/myLib.dart',
62 '''
63 library myLib;
64 part '$testFile'
65 part '/otherPart.dart'
66 class A {
67 A suggested1(int x) => null;
68 B suggested2(String y) => null;
69 }
70 ''');
71 addSource(
72 '/otherPart.dart',
73 '''
74 part of myLib;
75 class B extends A {
76 B suggested2(String y) => null;
77 C suggested3([String z]) => null;
78 }
79 ''');
80 addTestSource(r'''
81 part of myLib;
82 class C extends B {
83 sugg^
84 }
85 ''');
86 // assume information for context.getLibrariesContaining has been cached
87 await computeLibrariesContaining();
88 await computeSuggestions();
89 _assertOverride('''@override
90 A suggested1(int x) {
91 // TODO: implement suggested1
92 return null;
93 }''');
94 _assertOverride(
95 '''@override\n A suggested1(int x) {\n // TODO: implement suggested1 \n return null;\n }''');
96 _assertOverride(
97 '''@override\n B suggested2(String y) {\n // TODO: implement suggest ed2\n return null;\n }''');
98 _assertOverride(
99 '''@override\n C suggested3([String z]) {\n // TODO: implement sugge sted3\n return null;\n }''');
100 }
101
102 CompletionSuggestion _assertOverride(String completion) {
103 CompletionSuggestion cs = getSuggest(
104 completion: completion,
105 csKind: CompletionSuggestionKind.IDENTIFIER,
106 elemKind: null);
107 if (cs == null) {
108 failedCompletion('expected $completion', suggestions);
109 }
110 expect(cs.kind, equals(CompletionSuggestionKind.IDENTIFIER));
111 expect(cs.relevance, equals(DART_RELEVANCE_HIGH));
112 expect(cs.importUri, null);
113 // expect(cs.selectionOffset, equals(completion.length));
114 // expect(cs.selectionLength, equals(0));
115 expect(cs.isDeprecated, isFalse);
116 expect(cs.isPotential, isFalse);
117 expect(cs.element, isNotNull);
118 return cs;
119 }
120 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698