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

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

Issue 850003002: add local parameter info to completion suggestions (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 5 years, 11 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
« no previous file with comments | « pkg/analysis_server/test/services/completion/completion_test_util.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.dart.local; 5 library test.services.completion.dart.local;
6 6
7 import 'package:analysis_server/src/protocol_server.dart'; 7 import 'package:analysis_server/src/protocol_server.dart';
8 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; 8 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
9 import 'package:analysis_server/src/services/completion/local_computer.dart'; 9 import 'package:analysis_server/src/services/completion/local_computer.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
11 11
12 import '../../reflective_tests.dart'; 12 import '../../reflective_tests.dart';
13 import 'completion_test_util.dart'; 13 import 'completion_test_util.dart';
14 14
15 main() { 15 main() {
16 groupSep = ' | '; 16 groupSep = ' | ';
17 runReflectiveTests(LocalComputerTest); 17 runReflectiveTests(LocalComputerTest);
18 } 18 }
19 19
20 @reflectiveTest 20 @reflectiveTest
21 class LocalComputerTest extends AbstractSelectorSuggestionTest { 21 class LocalComputerTest extends AbstractSelectorSuggestionTest {
22 22
23 @override 23 @override
24 CompletionSuggestion assertSuggestLocalField(String name, String type, 24 CompletionSuggestion assertSuggestLocalClass(String name, {int relevance:
25 [int relevance = COMPLETION_RELEVANCE_DEFAULT]) { 25 COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
26 return assertSuggestField(name, type, relevance: relevance); 26 return assertSuggestClass(
27 name,
28 relevance: relevance,
29 isDeprecated: isDeprecated);
27 } 30 }
28 31
29 @override 32 @override
33 CompletionSuggestion assertSuggestLocalField(String name, String type,
34 {int relevance: COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
35 return assertSuggestField(
36 name,
37 type,
38 relevance: relevance,
39 isDeprecated: isDeprecated);
40 }
41
42 @override
43 CompletionSuggestion assertSuggestLocalGetter(String name, String returnType,
44 {int relevance: COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
45 return assertSuggestGetter(
46 name,
47 returnType,
48 relevance: relevance,
49 isDeprecated: isDeprecated);
50 }
51
52 @override
53 CompletionSuggestion assertSuggestLocalMethod(String name,
54 String declaringType, String returnType, {int relevance:
55 COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
56 return assertSuggestMethod(
57 name,
58 declaringType,
59 returnType,
60 relevance: relevance,
61 isDeprecated: isDeprecated);
62 }
63
64 @override
30 void setUpComputer() { 65 void setUpComputer() {
31 computer = new LocalComputer(); 66 computer = new LocalComputer();
32 } 67 }
33 68
34 test_break_ignores_outer_functions_using_closure() { 69 test_break_ignores_outer_functions_using_closure() {
35 addTestSource(''' 70 addTestSource('''
36 void main() { 71 void main() {
37 foo: while (true) { 72 foo: while (true) {
38 var f = () { 73 var f = () {
39 bar: while (true) { break ^ } 74 bar: while (true) { break ^ }
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 case 1: 336 case 1:
302 break; 337 break;
303 foo: case 2: 338 foo: case 2:
304 continue ^; 339 continue ^;
305 case 3: 340 case 3:
306 break; 341 break;
307 '''); 342 ''');
308 expect(computeFast(), isTrue); 343 expect(computeFast(), isTrue);
309 assertSuggestLabel('foo'); 344 assertSuggestLabel('foo');
310 } 345 }
311 } 346
347 test_function_parameters_mixed_required_and_named() {
348 addTestSource('''
349 void m(x, {int y}) {}
350 class B extends A {
351 main() {^}
352 }
353 ''');
354 expect(computeFast(), isTrue);
355 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
356 expect(suggestion.parameterNames, hasLength(2));
357 expect(suggestion.parameterNames[0], 'x');
358 expect(suggestion.parameterTypes[0], 'dynamic');
359 expect(suggestion.parameterNames[1], 'y');
360 expect(suggestion.parameterTypes[1], 'int');
361 expect(suggestion.requiredParameterCount, 1);
362 expect(suggestion.hasNamedParameters, true);
363 }
364
365 test_function_parameters_mixed_required_and_positional() {
366 addTestSource('''
367 void m(x, [int y]) {}
368 class B extends A {
369 main() {^}
370 }
371 ''');
372 expect(computeFast(), isTrue);
373 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
374 expect(suggestion.parameterNames, hasLength(2));
375 expect(suggestion.parameterNames[0], 'x');
376 expect(suggestion.parameterTypes[0], 'dynamic');
377 expect(suggestion.parameterNames[1], 'y');
378 expect(suggestion.parameterTypes[1], 'int');
379 expect(suggestion.requiredParameterCount, 1);
380 expect(suggestion.hasNamedParameters, false);
381 }
382
383 test_function_parameters_named() {
384 addTestSource('''
385 void m({x, int y}) {}
386 class B extends A {
387 main() {^}
388 }
389 ''');
390 expect(computeFast(), isTrue);
391 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
392 expect(suggestion.parameterNames, hasLength(2));
393 expect(suggestion.parameterNames[0], 'x');
394 expect(suggestion.parameterTypes[0], 'dynamic');
395 expect(suggestion.parameterNames[1], 'y');
396 expect(suggestion.parameterTypes[1], 'int');
397 expect(suggestion.requiredParameterCount, 0);
398 expect(suggestion.hasNamedParameters, true);
399 }
400
401 test_function_parameters_none() {
402 addTestSource('''
403 void m() {}
404 class B extends A {
405 main() {^}
406 }
407 ''');
408 expect(computeFast(), isTrue);
409 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
410 expect(suggestion.parameterNames, isEmpty);
411 expect(suggestion.parameterTypes, isEmpty);
412 expect(suggestion.requiredParameterCount, 0);
413 expect(suggestion.hasNamedParameters, false);
414 }
415
416 test_function_parameters_positional() {
417 addTestSource('''
418 void m([x, int y]) {}
419 class B extends A {
420 main() {^}
421 }
422 ''');
423 expect(computeFast(), isTrue);
424 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
425 expect(suggestion.parameterNames, hasLength(2));
426 expect(suggestion.parameterNames[0], 'x');
427 expect(suggestion.parameterTypes[0], 'dynamic');
428 expect(suggestion.parameterNames[1], 'y');
429 expect(suggestion.parameterTypes[1], 'int');
430 expect(suggestion.requiredParameterCount, 0);
431 expect(suggestion.hasNamedParameters, false);
432 }
433
434 test_function_parameters_required() {
435 addTestSource('''
436 void m(x, int y) {}
437 class B extends A {
438 main() {^}
439 }
440 ''');
441 expect(computeFast(), isTrue);
442 CompletionSuggestion suggestion = assertSuggestFunction('m', 'void');
443 expect(suggestion.parameterNames, hasLength(2));
444 expect(suggestion.parameterNames[0], 'x');
445 expect(suggestion.parameterTypes[0], 'dynamic');
446 expect(suggestion.parameterNames[1], 'y');
447 expect(suggestion.parameterTypes[1], 'int');
448 expect(suggestion.requiredParameterCount, 2);
449 expect(suggestion.hasNamedParameters, false);
450 }
451
452 test_method_parameters_mixed_required_and_named() {
453 addTestSource('''
454 class A {
455 void m(x, {int y}) {}
456 }
457 class B extends A {
458 main() {^}
459 }
460 ''');
461 expect(computeFast(), isTrue);
462 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
463 expect(suggestion.parameterNames, hasLength(2));
464 expect(suggestion.parameterNames[0], 'x');
465 expect(suggestion.parameterTypes[0], 'dynamic');
466 expect(suggestion.parameterNames[1], 'y');
467 expect(suggestion.parameterTypes[1], 'int');
468 expect(suggestion.requiredParameterCount, 1);
469 expect(suggestion.hasNamedParameters, true);
470 }
471
472 test_method_parameters_mixed_required_and_positional() {
473 addTestSource('''
474 class A {
475 void m(x, [int y]) {}
476 }
477 class B extends A {
478 main() {^}
479 }
480 ''');
481 expect(computeFast(), isTrue);
482 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
483 expect(suggestion.parameterNames, hasLength(2));
484 expect(suggestion.parameterNames[0], 'x');
485 expect(suggestion.parameterTypes[0], 'dynamic');
486 expect(suggestion.parameterNames[1], 'y');
487 expect(suggestion.parameterTypes[1], 'int');
488 expect(suggestion.requiredParameterCount, 1);
489 expect(suggestion.hasNamedParameters, false);
490 }
491
492 test_method_parameters_named() {
493 addTestSource('''
494 class A {
495 void m({x, int y}) {}
496 }
497 class B extends A {
498 main() {^}
499 }
500 ''');
501 expect(computeFast(), isTrue);
502 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
503 expect(suggestion.parameterNames, hasLength(2));
504 expect(suggestion.parameterNames[0], 'x');
505 expect(suggestion.parameterTypes[0], 'dynamic');
506 expect(suggestion.parameterNames[1], 'y');
507 expect(suggestion.parameterTypes[1], 'int');
508 expect(suggestion.requiredParameterCount, 0);
509 expect(suggestion.hasNamedParameters, true);
510 }
511
512 test_method_parameters_none() {
513 addTestSource('''
514 class A {
515 void m() {}
516 }
517 class B extends A {
518 main() {^}
519 }
520 ''');
521 expect(computeFast(), isTrue);
522 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
523 expect(suggestion.parameterNames, isEmpty);
524 expect(suggestion.parameterTypes, isEmpty);
525 expect(suggestion.requiredParameterCount, 0);
526 expect(suggestion.hasNamedParameters, false);
527 }
528
529 test_method_parameters_positional() {
530 addTestSource('''
531 class A {
532 void m([x, int y]) {}
533 }
534 class B extends A {
535 main() {^}
536 }
537 ''');
538 expect(computeFast(), isTrue);
539 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
540 expect(suggestion.parameterNames, hasLength(2));
541 expect(suggestion.parameterNames[0], 'x');
542 expect(suggestion.parameterTypes[0], 'dynamic');
543 expect(suggestion.parameterNames[1], 'y');
544 expect(suggestion.parameterTypes[1], 'int');
545 expect(suggestion.requiredParameterCount, 0);
546 expect(suggestion.hasNamedParameters, false);
547 }
548
549 test_method_parameters_required() {
550 addTestSource('''
551 class A {
552 void m(x, int y) {}
553 }
554 class B extends A {
555 main() {^}
556 }
557 ''');
558 expect(computeFast(), isTrue);
559 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void');
560 expect(suggestion.parameterNames, hasLength(2));
561 expect(suggestion.parameterNames[0], 'x');
562 expect(suggestion.parameterTypes[0], 'dynamic');
563 expect(suggestion.parameterNames[1], 'y');
564 expect(suggestion.parameterTypes[1], 'int');
565 expect(suggestion.requiredParameterCount, 2);
566 expect(suggestion.hasNamedParameters, false);
567 }
568 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/services/completion/completion_test_util.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698