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

Side by Side Diff: pkg/analysis_server/test/services/correction/fix_test.dart

Issue 969113002: Reformat (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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.correction.fix; 5 library test.services.correction.fix;
6 6
7 import 'package:analysis_server/src/protocol.dart' hide AnalysisError; 7 import 'package:analysis_server/src/protocol.dart' hide AnalysisError;
8 import 'package:analysis_server/src/services/correction/fix.dart'; 8 import 'package:analysis_server/src/services/correction/fix.dart';
9 import 'package:analyzer/file_system/file_system.dart'; 9 import 'package:analyzer/file_system/file_system.dart';
10 import 'package:analyzer/source/package_map_resolver.dart'; 10 import 'package:analyzer/source/package_map_resolver.dart';
11 import 'package:analyzer/src/generated/error.dart'; 11 import 'package:analyzer/src/generated/error.dart';
12 import 'package:analyzer/src/generated/parser.dart'; 12 import 'package:analyzer/src/generated/parser.dart';
13 import 'package:analyzer/src/generated/source.dart'; 13 import 'package:analyzer/src/generated/source.dart';
14 import 'package:unittest/unittest.dart'; 14 import 'package:unittest/unittest.dart';
15 15
16 import '../../abstract_context.dart'; 16 import '../../abstract_context.dart';
17 import '../../abstract_single_unit.dart'; 17 import '../../abstract_single_unit.dart';
18 import '../../reflective_tests.dart'; 18 import '../../reflective_tests.dart';
19 19
20
21 main() { 20 main() {
22 groupSep = ' | '; 21 groupSep = ' | ';
23 runReflectiveTests(FixProcessorTest); 22 runReflectiveTests(FixProcessorTest);
24 } 23 }
25 24
26
27 typedef bool AnalysisErrorFilter(AnalysisError error); 25 typedef bool AnalysisErrorFilter(AnalysisError error);
28 26
29
30 @reflectiveTest 27 @reflectiveTest
31 class FixProcessorTest extends AbstractSingleUnitTest { 28 class FixProcessorTest extends AbstractSingleUnitTest {
32 AnalysisErrorFilter errorFilter = null; 29 AnalysisErrorFilter errorFilter = null;
33 30
34 Fix fix; 31 Fix fix;
35 SourceChange change; 32 SourceChange change;
36 String resultCode; 33 String resultCode;
37 34
38 void assert_undefinedFunction_create_returnType_bool(String lineWithTest) { 35 void assert_undefinedFunction_create_returnType_bool(String lineWithTest) {
39 resolveTestUnit(''' 36 resolveTestUnit('''
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 } 78 }
82 79
83 List<Position> expectedPositions(List<String> patterns) { 80 List<Position> expectedPositions(List<String> patterns) {
84 List<Position> positions = <Position>[]; 81 List<Position> positions = <Position>[];
85 patterns.forEach((String search) { 82 patterns.forEach((String search) {
86 positions.add(expectedPosition(search)); 83 positions.add(expectedPosition(search));
87 }); 84 });
88 return positions; 85 return positions;
89 } 86 }
90 87
91 List<LinkedEditSuggestion> expectedSuggestions(LinkedEditSuggestionKind kind, 88 List<LinkedEditSuggestion> expectedSuggestions(
92 List<String> values) { 89 LinkedEditSuggestionKind kind, List<String> values) {
93 return values.map((value) { 90 return values.map((value) {
94 return new LinkedEditSuggestion(value, kind); 91 return new LinkedEditSuggestion(value, kind);
95 }).toList(); 92 }).toList();
96 } 93 }
97 94
98 void setUp() { 95 void setUp() {
99 super.setUp(); 96 super.setUp();
100 verifyNoTestUnitErrors = false; 97 verifyNoTestUnitErrors = false;
101 } 98 }
102 99
(...skipping 1568 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 useFunction(a.test); 1668 useFunction(a.test);
1672 } 1669 }
1673 class A { 1670 class A {
1674 int test(double a, String b) { 1671 int test(double a, String b) {
1675 } 1672 }
1676 } 1673 }
1677 useFunction(int g(double a, String b)) {} 1674 useFunction(int g(double a, String b)) {}
1678 '''); 1675 ''');
1679 } 1676 }
1680 1677
1681 void 1678 void test_creationFunction_forFunctionType_method_targetClass_hasOtherMember() {
1682 test_creationFunction_forFunctionType_method_targetClass_hasOtherMember() {
1683 resolveTestUnit(''' 1679 resolveTestUnit('''
1684 main(A a) { 1680 main(A a) {
1685 useFunction(a.test); 1681 useFunction(a.test);
1686 } 1682 }
1687 class A { 1683 class A {
1688 m() {} 1684 m() {}
1689 } 1685 }
1690 useFunction(int g(double a, String b)) {} 1686 useFunction(int g(double a, String b)) {}
1691 '''); 1687 ''');
1692 assertHasFix(FixKind.CREATE_METHOD, ''' 1688 assertHasFix(FixKind.CREATE_METHOD, '''
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2830 myUndefinedMethod(0, 1.0, '3'); 2826 myUndefinedMethod(0, 1.0, '3');
2831 } 2827 }
2832 2828
2833 void myUndefinedMethod(int i, double d, String s) { 2829 void myUndefinedMethod(int i, double d, String s) {
2834 } 2830 }
2835 } 2831 }
2836 '''); 2832 ''');
2837 // linked positions 2833 // linked positions
2838 int index = 0; 2834 int index = 0;
2839 _assertLinkedGroup( 2835 _assertLinkedGroup(
2840 change.linkedEditGroups[index++], 2836 change.linkedEditGroups[index++], ['void myUndefinedMethod(']);
2841 ['void myUndefinedMethod(']); 2837 _assertLinkedGroup(change.linkedEditGroups[index++],
2842 _assertLinkedGroup(
2843 change.linkedEditGroups[index++],
2844 ['myUndefinedMethod(0', 'myUndefinedMethod(int']); 2838 ['myUndefinedMethod(0', 'myUndefinedMethod(int']);
2845 _assertLinkedGroup( 2839 _assertLinkedGroup(change.linkedEditGroups[index++], [
2846 change.linkedEditGroups[index++], 2840 'int i'
2847 ['int i'], 2841 ], expectedSuggestions(
2848 expectedSuggestions( 2842 LinkedEditSuggestionKind.TYPE, ['int', 'num', 'Object', 'Comparable']));
2849 LinkedEditSuggestionKind.TYPE,
2850 ['int', 'num', 'Object', 'Comparable']));
2851 _assertLinkedGroup(change.linkedEditGroups[index++], ['i,']); 2843 _assertLinkedGroup(change.linkedEditGroups[index++], ['i,']);
2852 _assertLinkedGroup( 2844 _assertLinkedGroup(change.linkedEditGroups[index++], [
2853 change.linkedEditGroups[index++], 2845 'double d'
2854 ['double d'], 2846 ], expectedSuggestions(LinkedEditSuggestionKind.TYPE, [
2855 expectedSuggestions( 2847 'double',
2856 LinkedEditSuggestionKind.TYPE, 2848 'num',
2857 ['double', 'num', 'Object', 'Comparable'])); 2849 'Object',
2850 'Comparable'
2851 ]));
2858 _assertLinkedGroup(change.linkedEditGroups[index++], ['d,']); 2852 _assertLinkedGroup(change.linkedEditGroups[index++], ['d,']);
2859 _assertLinkedGroup( 2853 _assertLinkedGroup(change.linkedEditGroups[index++], [
2860 change.linkedEditGroups[index++], 2854 'String s'
2861 ['String s'], 2855 ], expectedSuggestions(
2862 expectedSuggestions( 2856 LinkedEditSuggestionKind.TYPE, ['String', 'Object', 'Comparable']));
2863 LinkedEditSuggestionKind.TYPE,
2864 ['String', 'Object', 'Comparable']));
2865 _assertLinkedGroup(change.linkedEditGroups[index++], ['s)']); 2857 _assertLinkedGroup(change.linkedEditGroups[index++], ['s)']);
2866 } 2858 }
2867 2859
2868 void test_undefinedMethod_createUnqualified_returnType() { 2860 void test_undefinedMethod_createUnqualified_returnType() {
2869 resolveTestUnit(''' 2861 resolveTestUnit('''
2870 class A { 2862 class A {
2871 main() { 2863 main() {
2872 int v = myUndefinedMethod(); 2864 int v = myUndefinedMethod();
2873 } 2865 }
2874 } 2866 }
2875 '''); 2867 ''');
2876 assertHasFix(FixKind.CREATE_METHOD, ''' 2868 assertHasFix(FixKind.CREATE_METHOD, '''
2877 class A { 2869 class A {
2878 main() { 2870 main() {
2879 int v = myUndefinedMethod(); 2871 int v = myUndefinedMethod();
2880 } 2872 }
2881 2873
2882 int myUndefinedMethod() { 2874 int myUndefinedMethod() {
2883 } 2875 }
2884 } 2876 }
2885 '''); 2877 ''');
2886 // linked positions 2878 // linked positions
2887 _assertLinkedGroup(change.linkedEditGroups[0], ['int myUndefinedMethod(']); 2879 _assertLinkedGroup(change.linkedEditGroups[0], ['int myUndefinedMethod(']);
2888 _assertLinkedGroup( 2880 _assertLinkedGroup(change.linkedEditGroups[1],
2889 change.linkedEditGroups[1],
2890 ['myUndefinedMethod();', 'myUndefinedMethod() {']); 2881 ['myUndefinedMethod();', 'myUndefinedMethod() {']);
2891 } 2882 }
2892 2883
2893 void test_undefinedMethod_createUnqualified_staticFromField() { 2884 void test_undefinedMethod_createUnqualified_staticFromField() {
2894 resolveTestUnit(''' 2885 resolveTestUnit('''
2895 class A { 2886 class A {
2896 static var f = myUndefinedMethod(); 2887 static var f = myUndefinedMethod();
2897 } 2888 }
2898 '''); 2889 ''');
2899 assertHasFix(FixKind.CREATE_METHOD, ''' 2890 assertHasFix(FixKind.CREATE_METHOD, '''
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
3059 } 3050 }
3060 3051
3061 /** 3052 /**
3062 * Configures the [SourceFactory] to have the `my_pkg` package in 3053 * Configures the [SourceFactory] to have the `my_pkg` package in
3063 * `/packages/my_pkg/lib` folder. 3054 * `/packages/my_pkg/lib` folder.
3064 */ 3055 */
3065 void _configureMyPkg(String myLibCode) { 3056 void _configureMyPkg(String myLibCode) {
3066 provider.newFile('/packages/my_pkg/lib/my_lib.dart', myLibCode); 3057 provider.newFile('/packages/my_pkg/lib/my_lib.dart', myLibCode);
3067 // configure SourceFactory 3058 // configure SourceFactory
3068 Folder myPkgFolder = provider.getResource('/packages/my_pkg/lib'); 3059 Folder myPkgFolder = provider.getResource('/packages/my_pkg/lib');
3069 UriResolver pkgResolver = new PackageMapUriResolver(provider, { 3060 UriResolver pkgResolver =
3070 'my_pkg': [myPkgFolder] 3061 new PackageMapUriResolver(provider, {'my_pkg': [myPkgFolder]});
3071 });
3072 context.sourceFactory = new SourceFactory( 3062 context.sourceFactory = new SourceFactory(
3073 [AbstractContextTest.SDK_RESOLVER, resourceResolver, pkgResolver]); 3063 [AbstractContextTest.SDK_RESOLVER, resourceResolver, pkgResolver]);
3074 // force 'my_pkg' resolution 3064 // force 'my_pkg' resolution
3075 addSource('/tmp/other.dart', "import 'package:my_pkg/my_lib.dart';"); 3065 addSource('/tmp/other.dart', "import 'package:my_pkg/my_lib.dart';");
3076 } 3066 }
3077 3067
3078 AnalysisError _findErrorToFix() { 3068 AnalysisError _findErrorToFix() {
3079 List<AnalysisError> errors = context.computeErrors(testSource); 3069 List<AnalysisError> errors = context.computeErrors(testSource);
3080 errors.removeWhere((error) { 3070 errors.removeWhere((error) {
3081 return error.errorCode == HintCode.UNUSED_ELEMENT || 3071 return error.errorCode == HintCode.UNUSED_ELEMENT ||
3082 error.errorCode == HintCode.UNUSED_FIELD || 3072 error.errorCode == HintCode.UNUSED_FIELD ||
3083 error.errorCode == HintCode.UNUSED_LOCAL_VARIABLE; 3073 error.errorCode == HintCode.UNUSED_LOCAL_VARIABLE;
3084 }); 3074 });
3085 if (errorFilter != null) { 3075 if (errorFilter != null) {
3086 errors = errors.where(errorFilter).toList(); 3076 errors = errors.where(errorFilter).toList();
3087 } 3077 }
3088 expect(errors, hasLength(1)); 3078 expect(errors, hasLength(1));
3089 return errors[0]; 3079 return errors[0];
3090 } 3080 }
3091 3081
3092 List<Position> _findResultPositions(List<String> searchStrings) { 3082 List<Position> _findResultPositions(List<String> searchStrings) {
3093 List<Position> positions = <Position>[]; 3083 List<Position> positions = <Position>[];
3094 for (String search in searchStrings) { 3084 for (String search in searchStrings) {
3095 int offset = resultCode.indexOf(search); 3085 int offset = resultCode.indexOf(search);
3096 positions.add(new Position(testFile, offset)); 3086 positions.add(new Position(testFile, offset));
3097 } 3087 }
3098 return positions; 3088 return positions;
3099 } 3089 }
3100 } 3090 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698