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

Side by Side Diff: pkg/analysis_server/test/edit/refactoring_test.dart

Issue 1080653003: Create a public API for contributing fixes and make fixes pluggable (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Missed clean-up Created 5 years, 8 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.edit.refactoring; 5 library test.edit.refactoring;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/edit/edit_domain.dart'; 9 import 'package:analysis_server/src/edit/edit_domain.dart';
10 import 'package:analysis_server/src/plugin/server_plugin.dart';
10 import 'package:analysis_server/src/protocol.dart'; 11 import 'package:analysis_server/src/protocol.dart';
11 import 'package:analysis_server/src/services/index/index.dart'; 12 import 'package:analysis_server/src/services/index/index.dart';
12 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 13 import 'package:analysis_server/src/services/index/local_memory_index.dart';
14 import 'package:analyzer/src/plugin/plugin_impl.dart';
13 import 'package:unittest/unittest.dart' hide ERROR; 15 import 'package:unittest/unittest.dart' hide ERROR;
14 16
15 import '../analysis_abstract.dart'; 17 import '../analysis_abstract.dart';
16 import '../mocks.dart'; 18 import '../mocks.dart';
17 import '../reflective_tests.dart'; 19 import '../reflective_tests.dart';
18 20
19 main() { 21 main() {
20 groupSep = ' | '; 22 groupSep = ' | ';
21 runReflectiveTests(ConvertGetterMethodToMethodTest); 23 runReflectiveTests(ConvertGetterMethodToMethodTest);
22 runReflectiveTests(ConvertMethodToGetterTest); 24 runReflectiveTests(ConvertMethodToGetterTest);
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 offset = findOffset(search); 604 offset = findOffset(search);
603 length = search.length; 605 length = search.length;
604 } 606 }
605 } 607 }
606 608
607 @reflectiveTest 609 @reflectiveTest
608 class GetAvailableRefactoringsTest extends AbstractAnalysisTest { 610 class GetAvailableRefactoringsTest extends AbstractAnalysisTest {
609 List<RefactoringKind> kinds; 611 List<RefactoringKind> kinds;
610 612
611 /** 613 /**
612 * Tests that there is a RENAME refactoring available at the [search] offset.
613 */
614 Future assertHasRenameRefactoring(String code, String search) async {
615 return assertHasKind(code, search, RefactoringKind.RENAME, true);
616 }
617
618 /**
619 * Tests that there is refactoring of the given [kind] is available at the 614 * Tests that there is refactoring of the given [kind] is available at the
620 * [search] offset. 615 * [search] offset.
621 */ 616 */
622 Future assertHasKind( 617 Future assertHasKind(
623 String code, String search, RefactoringKind kind, bool expected) async { 618 String code, String search, RefactoringKind kind, bool expected) async {
624 addTestFile(code); 619 addTestFile(code);
625 await waitForTasksFinished(); 620 await waitForTasksFinished();
626 await getRefactoringsAtString(search); 621 await getRefactoringsAtString(search);
627 // verify 622 // verify
628 Matcher matcher = contains(kind); 623 Matcher matcher = contains(kind);
629 if (!expected) { 624 if (!expected) {
630 matcher = isNot(matcher); 625 matcher = isNot(matcher);
631 } 626 }
632 expect(kinds, matcher); 627 expect(kinds, matcher);
633 } 628 }
634 629
630 /**
631 * Tests that there is a RENAME refactoring available at the [search] offset.
632 */
633 Future assertHasRenameRefactoring(String code, String search) async {
634 return assertHasKind(code, search, RefactoringKind.RENAME, true);
635 }
636
635 @override 637 @override
636 Index createIndex() { 638 Index createIndex() {
637 return createLocalMemoryIndex(); 639 return createLocalMemoryIndex();
638 } 640 }
639 641
640 /** 642 /**
641 * Returns the list of available refactorings for the given [offset] and 643 * Returns the list of available refactorings for the given [offset] and
642 * [length]. 644 * [length].
643 */ 645 */
644 Future getRefactorings(int offset, int length) async { 646 Future getRefactorings(int offset, int length) async {
(...skipping 15 matching lines...) Expand all
660 662
661 Future getRefactoringsForString(String search) { 663 Future getRefactoringsForString(String search) {
662 int offset = findOffset(search); 664 int offset = findOffset(search);
663 return getRefactorings(offset, search.length); 665 return getRefactorings(offset, search.length);
664 } 666 }
665 667
666 @override 668 @override
667 void setUp() { 669 void setUp() {
668 super.setUp(); 670 super.setUp();
669 createProject(); 671 createProject();
670 handler = new EditDomainHandler(server); 672 ExtensionManager manager = new ExtensionManager();
673 ServerPlugin plugin = new ServerPlugin();
674 manager.processPlugins([plugin]);
675 handler = new EditDomainHandler(server, plugin);
671 server.handlers = [handler]; 676 server.handlers = [handler];
672 } 677 }
673 678
679 Future test_convertMethodToGetter_hasElement() {
680 return assertHasKind('''
681 int getValue() => 42;
682 ''', 'getValue', RefactoringKind.CONVERT_METHOD_TO_GETTER, true);
683 }
684
674 Future test_extractLocal() async { 685 Future test_extractLocal() async {
675 addTestFile(''' 686 addTestFile('''
676 main() { 687 main() {
677 var a = 1 + 2; 688 var a = 1 + 2;
678 } 689 }
679 '''); 690 ''');
680 await waitForTasksFinished(); 691 await waitForTasksFinished();
681 await getRefactoringsForString('1 + 2'); 692 await getRefactoringsForString('1 + 2');
682 expect(kinds, contains(RefactoringKind.EXTRACT_LOCAL_VARIABLE)); 693 expect(kinds, contains(RefactoringKind.EXTRACT_LOCAL_VARIABLE));
683 expect(kinds, contains(RefactoringKind.EXTRACT_METHOD)); 694 expect(kinds, contains(RefactoringKind.EXTRACT_METHOD));
684 } 695 }
685 696
686 Future test_convertMethodToGetter_hasElement() {
687 return assertHasKind('''
688 int getValue() => 42;
689 ''', 'getValue', RefactoringKind.CONVERT_METHOD_TO_GETTER, true);
690 }
691
692 Future test_rename_hasElement_class() { 697 Future test_rename_hasElement_class() {
693 return assertHasRenameRefactoring(''' 698 return assertHasRenameRefactoring('''
694 class Test {} 699 class Test {}
695 main() { 700 main() {
696 Test v; 701 Test v;
697 } 702 }
698 ''', 'Test v'); 703 ''', 'Test v');
699 } 704 }
700 705
701 Future test_rename_hasElement_constructor() { 706 Future test_rename_hasElement_constructor() {
(...skipping 993 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 [bool validateOnly = false]) { 1700 [bool validateOnly = false]) {
1696 Request request = new EditGetRefactoringParams( 1701 Request request = new EditGetRefactoringParams(
1697 kind, testFile, offset, length, validateOnly, options: options) 1702 kind, testFile, offset, length, validateOnly, options: options)
1698 .toRequest('0'); 1703 .toRequest('0');
1699 return serverChannel.sendRequest(request); 1704 return serverChannel.sendRequest(request);
1700 } 1705 }
1701 1706
1702 @override 1707 @override
1703 void setUp() { 1708 void setUp() {
1704 super.setUp(); 1709 super.setUp();
1705 server.handlers = [new EditDomainHandler(server),];
1706 createProject(); 1710 createProject();
1707 handler = new EditDomainHandler(server); 1711 ExtensionManager manager = new ExtensionManager();
1712 ServerPlugin plugin = new ServerPlugin();
1713 manager.processPlugins([plugin]);
1714 handler = new EditDomainHandler(server, plugin);
1715 server.handlers = [handler];
1708 } 1716 }
1709 } 1717 }
1710 1718
1711 @reflectiveTest 1719 @reflectiveTest
1712 class _NoSearchEngine extends _AbstractGetRefactoring_Test { 1720 class _NoSearchEngine extends _AbstractGetRefactoring_Test {
1713 @override 1721 @override
1714 Index createIndex() { 1722 Index createIndex() {
1715 return null; 1723 return null;
1716 } 1724 }
1717 1725
(...skipping 21 matching lines...) Expand all
1739 .toRequest('0'); 1747 .toRequest('0');
1740 return _assertErrorResposeNoIndex(request); 1748 return _assertErrorResposeNoIndex(request);
1741 } 1749 }
1742 1750
1743 _assertErrorResposeNoIndex(Request request) async { 1751 _assertErrorResposeNoIndex(Request request) async {
1744 Response response = await serverChannel.sendRequest(request); 1752 Response response = await serverChannel.sendRequest(request);
1745 expect(response.error, isNotNull); 1753 expect(response.error, isNotNull);
1746 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED); 1754 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED);
1747 } 1755 }
1748 } 1756 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/edit/format_test.dart ('k') | pkg/analysis_server/test/edit/sort_members_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698