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

Side by Side Diff: pkg/analysis_server/test/analysis/get_hover_test.dart

Issue 1513943005: Tweaks for hover. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: 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.domain.analysis.hover; 5 library test.domain.analysis.hover;
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:test_reflective_loader/test_reflective_loader.dart'; 10 import 'package:test_reflective_loader/test_reflective_loader.dart';
(...skipping 23 matching lines...) Expand all
34 List<HoverInformation> hovers = result.hovers; 34 List<HoverInformation> hovers = result.hovers;
35 return hovers.isNotEmpty ? hovers.first : null; 35 return hovers.isNotEmpty ? hovers.first : null;
36 } 36 }
37 37
38 @override 38 @override
39 void setUp() { 39 void setUp() {
40 super.setUp(); 40 super.setUp();
41 createProject(); 41 createProject();
42 } 42 }
43 43
44 test_class() async {
45 addTestFile('''
46 class A<E> {}
47 class I1<K, V> {}
48 class I2<E> {}
49 class M1 {}
50 class M2<E> {}
51 class B<T> extends A<T> with M1, M2<int> implements I1<int, String>, I2 {}
52 ''');
53 HoverInformation hover = await prepareHover('B<T>');
54 expect(
55 hover.elementDescription,
56 'class B<T> extends A<T> with M1, M2<int> '
57 'implements I1<int, String>, I2');
58 expect(hover.staticType, isNull);
59 expect(hover.propagatedType, isNull);
60 }
61
62 test_class_abstract() async {
63 addTestFile('''
64 class A {}
65 abstract class B extends A {}
66 ''');
67 HoverInformation hover = await prepareHover('B extends');
68 expect(hover.elementDescription, 'abstract class B extends A');
69 expect(hover.staticType, isNull);
70 expect(hover.propagatedType, isNull);
71 }
72
44 test_dartdoc_clunky() async { 73 test_dartdoc_clunky() async {
45 addTestFile(''' 74 addTestFile('''
46 library my.library; 75 library my.library;
47 /** 76 /**
48 * doc aaa 77 * doc aaa
49 * doc bbb 78 * doc bbb
50 */ 79 */
51 main() { 80 main() {
52 } 81 }
53 '''); 82 ''');
(...skipping 23 matching lines...) Expand all
77 '''); 106 ''');
78 HoverInformation hover = await prepareHover('fff(int a'); 107 HoverInformation hover = await prepareHover('fff(int a');
79 // element 108 // element
80 expect(hover.containingLibraryName, 'my.library'); 109 expect(hover.containingLibraryName, 'my.library');
81 expect(hover.containingLibraryPath, testFile); 110 expect(hover.containingLibraryPath, testFile);
82 expect(hover.containingClassDescription, isNull); 111 expect(hover.containingClassDescription, isNull);
83 expect(hover.dartdoc, '''doc aaa\ndoc bbb'''); 112 expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
84 expect(hover.elementDescription, 'fff(int a, String b) → List<String>'); 113 expect(hover.elementDescription, 'fff(int a, String b) → List<String>');
85 expect(hover.elementKind, 'function'); 114 expect(hover.elementKind, 'function');
86 // types 115 // types
87 expect(hover.staticType, '(int, String) → List<String>'); 116 expect(hover.staticType, isNull);
88 expect(hover.propagatedType, isNull); 117 expect(hover.propagatedType, isNull);
89 // no parameter 118 // no parameter
90 expect(hover.parameter, isNull); 119 expect(hover.parameter, isNull);
91 } 120 }
92 121
93 test_expression_literal_noElement() async { 122 test_expression_literal_noElement() async {
94 addTestFile(''' 123 addTestFile('''
95 main() { 124 main() {
96 foo(123); 125 foo(123);
97 } 126 }
(...skipping 23 matching lines...) Expand all
121 '''); 150 ''');
122 HoverInformation hover = await prepareHover('mmm(int a'); 151 HoverInformation hover = await prepareHover('mmm(int a');
123 // element 152 // element
124 expect(hover.containingLibraryName, 'my.library'); 153 expect(hover.containingLibraryName, 'my.library');
125 expect(hover.containingLibraryPath, testFile); 154 expect(hover.containingLibraryPath, testFile);
126 expect(hover.containingClassDescription, 'A'); 155 expect(hover.containingClassDescription, 'A');
127 expect(hover.dartdoc, '''doc aaa\ndoc bbb'''); 156 expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
128 expect(hover.elementDescription, 'mmm(int a, String b) → List<String>'); 157 expect(hover.elementDescription, 'mmm(int a, String b) → List<String>');
129 expect(hover.elementKind, 'method'); 158 expect(hover.elementKind, 'method');
130 // types 159 // types
131 expect(hover.staticType, '(int, String) → List<String>'); 160 expect(hover.staticType, isNull);
132 expect(hover.propagatedType, isNull); 161 expect(hover.propagatedType, isNull);
133 // no parameter 162 // no parameter
134 expect(hover.parameter, isNull); 163 expect(hover.parameter, isNull);
135 } 164 }
136 165
137 test_expression_method_invocation() async { 166 test_expression_method_invocation() async {
138 addTestFile(''' 167 addTestFile('''
139 library my.library; 168 library my.library;
140 class A { 169 class A {
141 List<String> mmm(int a, String b) { 170 List<String> mmm(int a, String b) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 expect(hover.dartdoc, 'The method documentation.'); 207 expect(hover.dartdoc, 'The method documentation.');
179 expect(hover.elementDescription, 'int p'); 208 expect(hover.elementDescription, 'int p');
180 expect(hover.elementKind, 'parameter'); 209 expect(hover.elementKind, 'parameter');
181 // types 210 // types
182 expect(hover.staticType, 'int'); 211 expect(hover.staticType, 'int');
183 expect(hover.propagatedType, isNull); 212 expect(hover.propagatedType, isNull);
184 // no parameter 213 // no parameter
185 expect(hover.parameter, isNull); 214 expect(hover.parameter, isNull);
186 } 215 }
187 216
188 test_expression_syntheticGetter() async { 217 test_expression_syntheticGetter_invocation() async {
189 addTestFile(''' 218 addTestFile('''
190 library my.library; 219 library my.library;
191 class A { 220 class A {
192 /// doc aaa 221 /// doc aaa
193 /// doc bbb 222 /// doc bbb
194 String fff; 223 String fff;
195 } 224 }
196 main(A a) { 225 main(A a) {
197 print(a.fff); 226 print(a.fff);
198 } 227 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 // range 297 // range
269 expect(hover.offset, findOffset('new A')); 298 expect(hover.offset, findOffset('new A'));
270 expect(hover.length, 'new A()'.length); 299 expect(hover.length, 'new A()'.length);
271 // element 300 // element
272 expect(hover.containingLibraryName, 'my.library'); 301 expect(hover.containingLibraryName, 'my.library');
273 expect(hover.containingLibraryPath, testFile); 302 expect(hover.containingLibraryPath, testFile);
274 expect(hover.dartdoc, isNull); 303 expect(hover.dartdoc, isNull);
275 expect(hover.elementDescription, 'A() → A'); 304 expect(hover.elementDescription, 'A() → A');
276 expect(hover.elementKind, 'constructor'); 305 expect(hover.elementKind, 'constructor');
277 // types 306 // types
278 expect(hover.staticType, 'A'); 307 expect(hover.staticType, isNull);
279 expect(hover.propagatedType, isNull); 308 expect(hover.propagatedType, isNull);
280 // no parameter 309 // no parameter
281 expect(hover.parameter, isNull); 310 expect(hover.parameter, isNull);
282 } 311 }
283 312
284 test_instanceCreation_implicit_withTypeArgument() async { 313 test_instanceCreation_implicit_withTypeArgument() async {
285 addTestFile(''' 314 addTestFile('''
286 library my.library; 315 library my.library;
287 class A<T> {} 316 class A<T> {}
288 main() { 317 main() {
289 new A<String>(); 318 new A<String>();
290 } 319 }
291 '''); 320 ''');
292 void onConstructor(HoverInformation hover) { 321 void onConstructor(HoverInformation hover) {
293 // range 322 // range
294 expect(hover.offset, findOffset('new A<String>')); 323 expect(hover.offset, findOffset('new A<String>'));
295 expect(hover.length, 'new A<String>()'.length); 324 expect(hover.length, 'new A<String>()'.length);
296 // element 325 // element
297 expect(hover.containingLibraryName, 'my.library'); 326 expect(hover.containingLibraryName, 'my.library');
298 expect(hover.containingLibraryPath, testFile); 327 expect(hover.containingLibraryPath, testFile);
299 expect(hover.dartdoc, isNull); 328 expect(hover.dartdoc, isNull);
300 expect(hover.elementDescription, 'A() → A<String>'); 329 expect(hover.elementDescription, 'A() → A<String>');
301 expect(hover.elementKind, 'constructor'); 330 expect(hover.elementKind, 'constructor');
302 // types 331 // types
303 expect(hover.staticType, 'A<String>'); 332 expect(hover.staticType, isNull);
304 expect(hover.propagatedType, isNull); 333 expect(hover.propagatedType, isNull);
305 // no parameter 334 // no parameter
306 expect(hover.parameter, isNull); 335 expect(hover.parameter, isNull);
307 } 336 }
308 { 337 {
309 HoverInformation hover = await prepareHover('new A'); 338 HoverInformation hover = await prepareHover('new A');
310 onConstructor(hover); 339 onConstructor(hover);
311 } 340 }
312 { 341 {
313 HoverInformation hover = await prepareHover('A<String>()'); 342 HoverInformation hover = await prepareHover('A<String>()');
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 addTestFile(''' 384 addTestFile('''
356 library my.library; 385 library my.library;
357 main() { 386 main() {
358 // nothing 387 // nothing
359 } 388 }
360 '''); 389 ''');
361 HoverInformation hover = await prepareHover('nothing'); 390 HoverInformation hover = await prepareHover('nothing');
362 expect(hover, isNull); 391 expect(hover, isNull);
363 } 392 }
364 } 393 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698