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

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

Issue 717513003: Issue 21552. Fixes for navigation, hover and rename in instance creation expressions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | 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.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/src/protocol.dart'; 9 import 'package:analysis_server/src/protocol.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 expect(hover.elementDescription, 'A.mmm(int a, String b) → List<String>'); 131 expect(hover.elementDescription, 'A.mmm(int a, String b) → List<String>');
132 expect(hover.elementKind, 'method'); 132 expect(hover.elementKind, 'method');
133 // types 133 // types
134 expect(hover.staticType, '(int, String) → List<String>'); 134 expect(hover.staticType, '(int, String) → List<String>');
135 expect(hover.propagatedType, isNull); 135 expect(hover.propagatedType, isNull);
136 // no parameter 136 // no parameter
137 expect(hover.parameter, isNull); 137 expect(hover.parameter, isNull);
138 }); 138 });
139 } 139 }
140 140
141 test_expression_method_nvocation() { 141 test_expression_method_invocation() {
142 addTestFile(''' 142 addTestFile('''
143 library my.library; 143 library my.library;
144 class A { 144 class A {
145 List<String> mmm(int a, String b) { 145 List<String> mmm(int a, String b) {
146 } 146 }
147 } 147 }
148 main(A a) { 148 main(A a) {
149 a.mmm(42, 'foo'); 149 a.mmm(42, 'foo');
150 } 150 }
151 '''); 151 ''');
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 expect(hover.containingLibraryPath, testFile); 205 expect(hover.containingLibraryPath, testFile);
206 expect(hover.dartdoc, isNull); 206 expect(hover.dartdoc, isNull);
207 expect(hover.elementDescription, 'dynamic vvv'); 207 expect(hover.elementDescription, 'dynamic vvv');
208 expect(hover.elementKind, 'local variable'); 208 expect(hover.elementKind, 'local variable');
209 // types 209 // types
210 expect(hover.staticType, 'dynamic'); 210 expect(hover.staticType, 'dynamic');
211 expect(hover.propagatedType, 'int'); 211 expect(hover.propagatedType, 'int');
212 }); 212 });
213 } 213 }
214 214
215 test_instanceCreation_implicit() {
216 addTestFile('''
217 library my.library;
218 class A {
219 }
220 main() {
221 new A();
222 }
223 ''');
224 return prepareHover('new A').then((HoverInformation hover) {
225 // range
226 expect(hover.offset, findOffset('new A'));
227 expect(hover.length, 'new A()'.length);
228 // element
229 expect(hover.containingLibraryName, 'my.library');
230 expect(hover.containingLibraryPath, testFile);
231 expect(hover.dartdoc, isNull);
232 expect(hover.elementDescription, 'A() → A');
233 expect(hover.elementKind, 'constructor');
234 // types
235 expect(hover.staticType, 'A');
236 expect(hover.propagatedType, isNull);
237 // no parameter
238 expect(hover.parameter, isNull);
239 });
240 }
241
242 test_instanceCreation_implicit_withTypeArgument() {
243 addTestFile('''
244 library my.library;
245 class A<T> {}
246 main() {
247 new A<String>();
248 }
249 ''');
250 Function onConstructor = (HoverInformation hover) {
251 // range
252 expect(hover.offset, findOffset('new A<String>'));
253 expect(hover.length, 'new A<String>()'.length);
254 // element
255 expect(hover.containingLibraryName, 'my.library');
256 expect(hover.containingLibraryPath, testFile);
257 expect(hover.dartdoc, isNull);
258 expect(hover.elementDescription, 'A() → A<String>');
259 expect(hover.elementKind, 'constructor');
260 // types
261 expect(hover.staticType, 'A<String>');
262 expect(hover.propagatedType, isNull);
263 // no parameter
264 expect(hover.parameter, isNull);
265 };
266 var futureNewA = prepareHover('new A').then(onConstructor);
267 var futureA = prepareHover('A<String>()').then(onConstructor);
268 var futureString = prepareHover('String>').then((HoverInformation hover) {
269 expect(hover.offset, findOffset('String>'));
270 expect(hover.length, 'String'.length);
271 expect(hover.elementKind, 'class');
272 });
273 return Future.wait([futureNewA, futureA, futureString]);
274 }
275
276 test_instanceCreation_named() {
277 addTestFile('''
278 library my.library;
279 class A {
280 /// my doc
281 A.named() {}
282 }
283 main() {
284 new A.named();
285 }
286 ''');
287 var onConstructor = (HoverInformation hover) {
288 // range
289 expect(hover.offset, findOffset('new A'));
290 expect(hover.length, 'new A.named()'.length);
291 // element
292 expect(hover.dartdoc, 'my doc');
293 expect(hover.elementDescription, 'A.named() → A');
294 expect(hover.elementKind, 'constructor');
295 };
296 var futureCreation = prepareHover('new A').then(onConstructor);
297 var futureName = prepareHover('named();').then(onConstructor);
298 return Future.wait([futureCreation, futureName]);
299 }
300
215 test_noHoverInfo() { 301 test_noHoverInfo() {
216 addTestFile(''' 302 addTestFile('''
217 library my.library; 303 library my.library;
218 main() { 304 main() {
219 // nothing 305 // nothing
220 } 306 }
221 '''); 307 ''');
222 return prepareHover('nothing').then((HoverInformation hover) { 308 return prepareHover('nothing').then((HoverInformation hover) {
223 expect(hover, isNull); 309 expect(hover, isNull);
224 }); 310 });
225 } 311 }
226 } 312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698