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

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

Issue 901253002: move relevance computation from client to server (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix test Created 5 years, 10 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
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.toplevel; 5 library test.services.completion.toplevel;
6 6
7 import 'package:analysis_server/src/protocol.dart'; 7 import 'package:analysis_server/src/protocol.dart';
8 import 'package:analysis_server/src/services/completion/completion_manager.dart' ; 8 import 'package:analysis_server/src/services/completion/completion_manager.dart' ;
9 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt'; 9 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt';
10 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; 10 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 if (isCached(cache.importedTypeSuggestions, completion) || 100 if (isCached(cache.importedTypeSuggestions, completion) ||
101 isCached(cache.importedVoidReturnSuggestions, completion) || 101 isCached(cache.importedVoidReturnSuggestions, completion) ||
102 isCached(cache.libraryPrefixSuggestions, completion) || 102 isCached(cache.libraryPrefixSuggestions, completion) ||
103 isCached(cache.otherImportedSuggestions, completion)) { 103 isCached(cache.otherImportedSuggestions, completion)) {
104 fail('expected $completion NOT to be cached'); 104 fail('expected $completion NOT to be cached');
105 } 105 }
106 } 106 }
107 107
108 @override 108 @override
109 CompletionSuggestion assertSuggestImportedField(String name, String type, 109 CompletionSuggestion assertSuggestImportedField(String name, String type,
110 [int relevance = COMPLETION_RELEVANCE_DEFAULT]) { 110 {int relevance: DART_RELEVANCE_INHERITED_FIELD}) {
111 return assertSuggestField(name, type, relevance: relevance); 111 return assertSuggestField(name, type, relevance: relevance);
112 } 112 }
113 113
114 CompletionSuggestion assertSuggestImportedGetter(String name,
115 String returnType, {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) {
116 return assertSuggestGetter(name, returnType, relevance: relevance);
117 }
118
119 CompletionSuggestion assertSuggestImportedMethod(String name,
120 String declaringType, String returnType, {int relevance:
121 DART_RELEVANCE_INHERITED_METHOD}) {
122 return assertSuggestMethod(
123 name,
124 declaringType,
125 returnType,
126 relevance: relevance);
127 }
128
129 CompletionSuggestion assertSuggestImportedSetter(String name, {int relevance:
130 DART_RELEVANCE_INHERITED_ACCESSOR}) {
131 return assertSuggestSetter(name, relevance);
132 }
133
114 bool isCached(List<CompletionSuggestion> suggestions, String completion) => 134 bool isCached(List<CompletionSuggestion> suggestions, String completion) =>
115 suggestions.any((CompletionSuggestion s) => s.completion == completion); 135 suggestions.any((CompletionSuggestion s) => s.completion == completion);
116 136
117 @override 137 @override
118 void setUpComputer() { 138 void setUpComputer() {
119 computer = new ImportedComputer(shouldWaitForLowPrioritySuggestions: true); 139 computer = new ImportedComputer(shouldWaitForLowPrioritySuggestions: true);
120 } 140 }
121 141
122 @override 142 @override
123 test_ArgumentList() { 143 test_ArgumentList() {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 void m(x, {int y}) {} 362 void m(x, {int y}) {}
343 } 363 }
344 '''); 364 ''');
345 addTestSource(''' 365 addTestSource('''
346 import '/libA.dart'; 366 import '/libA.dart';
347 class B extends A { 367 class B extends A {
348 main() {^} 368 main() {^}
349 } 369 }
350 '''); 370 ''');
351 return computeFull((bool result) { 371 return computeFull((bool result) {
352 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 372 CompletionSuggestion suggestion =
373 assertSuggestImportedMethod('m', 'A', 'void');
353 expect(suggestion.parameterNames, hasLength(2)); 374 expect(suggestion.parameterNames, hasLength(2));
354 expect(suggestion.parameterNames[0], 'x'); 375 expect(suggestion.parameterNames[0], 'x');
355 expect(suggestion.parameterTypes[0], 'dynamic'); 376 expect(suggestion.parameterTypes[0], 'dynamic');
356 expect(suggestion.parameterNames[1], 'y'); 377 expect(suggestion.parameterNames[1], 'y');
357 expect(suggestion.parameterTypes[1], 'int'); 378 expect(suggestion.parameterTypes[1], 'int');
358 expect(suggestion.requiredParameterCount, 1); 379 expect(suggestion.requiredParameterCount, 1);
359 expect(suggestion.hasNamedParameters, true); 380 expect(suggestion.hasNamedParameters, true);
360 }); 381 });
361 } 382 }
362 383
363 test_method_parameters_mixed_required_and_positional() { 384 test_method_parameters_mixed_required_and_positional() {
364 addSource('/libA.dart', ''' 385 addSource('/libA.dart', '''
365 class A { 386 class A {
366 void m(x, [int y]) {} 387 void m(x, [int y]) {}
367 } 388 }
368 '''); 389 ''');
369 addTestSource(''' 390 addTestSource('''
370 import '/libA.dart'; 391 import '/libA.dart';
371 class B extends A { 392 class B extends A {
372 main() {^} 393 main() {^}
373 } 394 }
374 '''); 395 ''');
375 return computeFull((bool result) { 396 return computeFull((bool result) {
376 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 397 CompletionSuggestion suggestion =
398 assertSuggestImportedMethod('m', 'A', 'void');
377 expect(suggestion.parameterNames, hasLength(2)); 399 expect(suggestion.parameterNames, hasLength(2));
378 expect(suggestion.parameterNames[0], 'x'); 400 expect(suggestion.parameterNames[0], 'x');
379 expect(suggestion.parameterTypes[0], 'dynamic'); 401 expect(suggestion.parameterTypes[0], 'dynamic');
380 expect(suggestion.parameterNames[1], 'y'); 402 expect(suggestion.parameterNames[1], 'y');
381 expect(suggestion.parameterTypes[1], 'int'); 403 expect(suggestion.parameterTypes[1], 'int');
382 expect(suggestion.requiredParameterCount, 1); 404 expect(suggestion.requiredParameterCount, 1);
383 expect(suggestion.hasNamedParameters, false); 405 expect(suggestion.hasNamedParameters, false);
384 }); 406 });
385 } 407 }
386 408
387 test_method_parameters_named() { 409 test_method_parameters_named() {
388 addSource('/libA.dart', ''' 410 addSource('/libA.dart', '''
389 class A { 411 class A {
390 void m({x, int y}) {} 412 void m({x, int y}) {}
391 } 413 }
392 '''); 414 ''');
393 addTestSource(''' 415 addTestSource('''
394 import '/libA.dart'; 416 import '/libA.dart';
395 class B extends A { 417 class B extends A {
396 main() {^} 418 main() {^}
397 } 419 }
398 '''); 420 ''');
399 return computeFull((bool result) { 421 return computeFull((bool result) {
400 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 422 CompletionSuggestion suggestion =
423 assertSuggestImportedMethod('m', 'A', 'void');
401 expect(suggestion.parameterNames, hasLength(2)); 424 expect(suggestion.parameterNames, hasLength(2));
402 expect(suggestion.parameterNames[0], 'x'); 425 expect(suggestion.parameterNames[0], 'x');
403 expect(suggestion.parameterTypes[0], 'dynamic'); 426 expect(suggestion.parameterTypes[0], 'dynamic');
404 expect(suggestion.parameterNames[1], 'y'); 427 expect(suggestion.parameterNames[1], 'y');
405 expect(suggestion.parameterTypes[1], 'int'); 428 expect(suggestion.parameterTypes[1], 'int');
406 expect(suggestion.requiredParameterCount, 0); 429 expect(suggestion.requiredParameterCount, 0);
407 expect(suggestion.hasNamedParameters, true); 430 expect(suggestion.hasNamedParameters, true);
408 }); 431 });
409 } 432 }
410 433
411 test_method_parameters_none() { 434 test_method_parameters_none() {
412 addSource('/libA.dart', ''' 435 addSource('/libA.dart', '''
413 class A { 436 class A {
414 void m() {} 437 void m() {}
415 } 438 }
416 '''); 439 ''');
417 addTestSource(''' 440 addTestSource('''
418 import '/libA.dart'; 441 import '/libA.dart';
419 class B extends A { 442 class B extends A {
420 main() {^} 443 main() {^}
421 } 444 }
422 '''); 445 ''');
423 computeFast(); 446 computeFast();
424 return computeFull((bool result) { 447 return computeFull((bool result) {
425 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 448 CompletionSuggestion suggestion =
449 assertSuggestImportedMethod('m', 'A', 'void');
426 expect(suggestion.parameterNames, isEmpty); 450 expect(suggestion.parameterNames, isEmpty);
427 expect(suggestion.parameterTypes, isEmpty); 451 expect(suggestion.parameterTypes, isEmpty);
428 expect(suggestion.requiredParameterCount, 0); 452 expect(suggestion.requiredParameterCount, 0);
429 expect(suggestion.hasNamedParameters, false); 453 expect(suggestion.hasNamedParameters, false);
430 }); 454 });
431 } 455 }
432 456
433 test_method_parameters_positional() { 457 test_method_parameters_positional() {
434 addSource('/libA.dart', ''' 458 addSource('/libA.dart', '''
435 class A { 459 class A {
436 void m([x, int y]) {} 460 void m([x, int y]) {}
437 } 461 }
438 '''); 462 ''');
439 addTestSource(''' 463 addTestSource('''
440 import '/libA.dart'; 464 import '/libA.dart';
441 class B extends A { 465 class B extends A {
442 main() {^} 466 main() {^}
443 } 467 }
444 '''); 468 ''');
445 return computeFull((bool result) { 469 return computeFull((bool result) {
446 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 470 CompletionSuggestion suggestion =
471 assertSuggestImportedMethod('m', 'A', 'void');
447 expect(suggestion.parameterNames, hasLength(2)); 472 expect(suggestion.parameterNames, hasLength(2));
448 expect(suggestion.parameterNames[0], 'x'); 473 expect(suggestion.parameterNames[0], 'x');
449 expect(suggestion.parameterTypes[0], 'dynamic'); 474 expect(suggestion.parameterTypes[0], 'dynamic');
450 expect(suggestion.parameterNames[1], 'y'); 475 expect(suggestion.parameterNames[1], 'y');
451 expect(suggestion.parameterTypes[1], 'int'); 476 expect(suggestion.parameterTypes[1], 'int');
452 expect(suggestion.requiredParameterCount, 0); 477 expect(suggestion.requiredParameterCount, 0);
453 expect(suggestion.hasNamedParameters, false); 478 expect(suggestion.hasNamedParameters, false);
454 }); 479 });
455 } 480 }
456 481
457 test_method_parameters_required() { 482 test_method_parameters_required() {
458 addSource('/libA.dart', ''' 483 addSource('/libA.dart', '''
459 class A { 484 class A {
460 void m(x, int y) {} 485 void m(x, int y) {}
461 } 486 }
462 '''); 487 ''');
463 addTestSource(''' 488 addTestSource('''
464 import '/libA.dart'; 489 import '/libA.dart';
465 class B extends A { 490 class B extends A {
466 main() {^} 491 main() {^}
467 } 492 }
468 '''); 493 ''');
469 return computeFull((bool result) { 494 return computeFull((bool result) {
470 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); 495 CompletionSuggestion suggestion =
496 assertSuggestImportedMethod('m', 'A', 'void');
471 expect(suggestion.parameterNames, hasLength(2)); 497 expect(suggestion.parameterNames, hasLength(2));
472 expect(suggestion.parameterNames[0], 'x'); 498 expect(suggestion.parameterNames[0], 'x');
473 expect(suggestion.parameterTypes[0], 'dynamic'); 499 expect(suggestion.parameterTypes[0], 'dynamic');
474 expect(suggestion.parameterNames[1], 'y'); 500 expect(suggestion.parameterNames[1], 'y');
475 expect(suggestion.parameterTypes[1], 'int'); 501 expect(suggestion.parameterTypes[1], 'int');
476 expect(suggestion.requiredParameterCount, 2); 502 expect(suggestion.requiredParameterCount, 2);
477 expect(suggestion.hasNamedParameters, false); 503 expect(suggestion.hasNamedParameters, false);
478 }); 504 });
479 } 505 }
480 506
(...skipping 12 matching lines...) Expand all
493 '''); 519 ''');
494 addTestSource(''' 520 addTestSource('''
495 import '/libA.dart'; 521 import '/libA.dart';
496 class C extends B with M1, M2 { 522 class C extends B with M1, M2 {
497 void f() { 523 void f() {
498 ^ 524 ^
499 } 525 }
500 } 526 }
501 '''); 527 ''');
502 return computeFull((bool result) { 528 return computeFull((bool result) {
503 assertSuggestMethod('m', 'M2', 'void'); 529 assertSuggestImportedMethod('m', 'M2', 'void');
504 }); 530 });
505 } 531 }
506 532
507 /** 533 /**
508 * Ensure that completions in one context don't appear in another 534 * Ensure that completions in one context don't appear in another
509 */ 535 */
510 test_multiple_contexts() { 536 test_multiple_contexts() {
511 537
512 // Create a 2nd context with source 538 // Create a 2nd context with source
513 var context2 = AnalysisEngine.instance.createAnalysisContext(); 539 var context2 = AnalysisEngine.instance.createAnalysisContext();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 int x; 583 int x;
558 } 584 }
559 '''); 585 ''');
560 addTestSource(''' 586 addTestSource('''
561 import '/libA.dart'; 587 import '/libA.dart';
562 class B extends A { 588 class B extends A {
563 main() {^} 589 main() {^}
564 } 590 }
565 '''); 591 ''');
566 return computeFull((bool result) { 592 return computeFull((bool result) {
567 CompletionSuggestion suggestion = assertSuggestField('x', 'int'); 593 CompletionSuggestion suggestion = assertSuggestImportedField('x', 'int');
568 assertHasNoParameterInfo(suggestion); 594 assertHasNoParameterInfo(suggestion);
569 }); 595 });
570 } 596 }
571 597
572 test_no_parameters_getter() { 598 test_no_parameters_getter() {
573 addSource('/libA.dart', ''' 599 addSource('/libA.dart', '''
574 class A { 600 class A {
575 int get x => null; 601 int get x => null;
576 } 602 }
577 '''); 603 ''');
578 addTestSource(''' 604 addTestSource('''
579 import '/libA.dart'; 605 import '/libA.dart';
580 class B extends A { 606 class B extends A {
581 main() {^} 607 main() {^}
582 } 608 }
583 '''); 609 ''');
584 return computeFull((bool result) { 610 return computeFull((bool result) {
585 CompletionSuggestion suggestion = assertSuggestGetter('x', 'int'); 611 CompletionSuggestion suggestion = assertSuggestImportedGetter('x', 'int');
586 assertHasNoParameterInfo(suggestion); 612 assertHasNoParameterInfo(suggestion);
587 }); 613 });
588 } 614 }
589 615
590 test_no_parameters_setter() { 616 test_no_parameters_setter() {
591 addSource('/libA.dart', ''' 617 addSource('/libA.dart', '''
592 class A { 618 class A {
593 set x(int value) {}; 619 set x(int value) {};
594 } 620 }
595 '''); 621 ''');
596 addTestSource(''' 622 addTestSource('''
597 import '/libA.dart'; 623 import '/libA.dart';
598 class B extends A { 624 class B extends A {
599 main() {^} 625 main() {^}
600 } 626 }
601 '''); 627 ''');
602 return computeFull((bool result) { 628 return computeFull((bool result) {
603 CompletionSuggestion suggestion = assertSuggestSetter('x'); 629 CompletionSuggestion suggestion = assertSuggestImportedSetter('x');
604 assertHasNoParameterInfo(suggestion); 630 assertHasNoParameterInfo(suggestion);
605 }); 631 });
606 } 632 }
607 633
608 @override 634 @override
609 test_partFile_TypeName() { 635 test_partFile_TypeName() {
610 return super.test_partFile_TypeName().then((_) { 636 return super.test_partFile_TypeName().then((_) {
611 expect(request.cache.importKey, 'part of libA;'); 637 expect(request.cache.importKey, 'part of libA;');
612 }); 638 });
613 } 639 }
614 640
615 @override 641 @override
616 test_partFile_TypeName2() { 642 test_partFile_TypeName2() {
617 return super.test_partFile_TypeName2().then((_) { 643 return super.test_partFile_TypeName2().then((_) {
618 expect( 644 expect(
619 request.cache.importKey, 645 request.cache.importKey,
620 'library libA;import "/testB.dart";part "/testA.dart";'); 646 'library libA;import "/testB.dart";part "/testA.dart";');
621 }); 647 });
622 } 648 }
623 } 649 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698