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

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

Issue 1461313004: Make FixContributor asynchronous. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: tweaks Created 5 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
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.fixes; 5 library test.edit.fixes;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; 9 import 'package:analysis_server/plugin/protocol/protocol.dart';
10 import 'package:analysis_server/src/domain_analysis.dart'; 10 import 'package:analysis_server/src/domain_analysis.dart';
(...skipping 15 matching lines...) Expand all
26 class FixesTest extends AbstractAnalysisTest { 26 class FixesTest extends AbstractAnalysisTest {
27 @override 27 @override
28 void setUp() { 28 void setUp() {
29 super.setUp(); 29 super.setUp();
30 createProject(); 30 createProject();
31 ExtensionManager manager = new ExtensionManager(); 31 ExtensionManager manager = new ExtensionManager();
32 manager.processPlugins([server.serverPlugin]); 32 manager.processPlugins([server.serverPlugin]);
33 handler = new EditDomainHandler(server); 33 handler = new EditDomainHandler(server);
34 } 34 }
35 35
36 Future test_fixUndefinedClass() async { 36 test_fixUndefinedClass() async {
37 addTestFile(''' 37 addTestFile('''
38 main() { 38 main() {
39 Future<String> x = null; 39 Future<String> x = null;
40 } 40 }
41 '''); 41 ''');
42 await waitForTasksFinished(); 42 await waitForTasksFinished();
43 List<AnalysisErrorFixes> errorFixes = _getFixesAt('Future<String>'); 43 List<AnalysisErrorFixes> errorFixes = await _getFixesAt('Future<String>');
44 expect(errorFixes, hasLength(1)); 44 expect(errorFixes, hasLength(1));
45 AnalysisError error = errorFixes[0].error; 45 AnalysisError error = errorFixes[0].error;
46 expect(error.severity, AnalysisErrorSeverity.WARNING); 46 expect(error.severity, AnalysisErrorSeverity.WARNING);
47 expect(error.type, AnalysisErrorType.STATIC_WARNING); 47 expect(error.type, AnalysisErrorType.STATIC_WARNING);
48 List<SourceChange> fixes = errorFixes[0].fixes; 48 List<SourceChange> fixes = errorFixes[0].fixes;
49 expect(fixes, hasLength(2)); 49 expect(fixes, hasLength(2));
50 expect(fixes[0].message, matches('Import library')); 50 expect(fixes[0].message, matches('Import library'));
51 expect(fixes[1].message, matches('Create class')); 51 expect(fixes[1].message, matches('Create class'));
52 } 52 }
53 53
54 Future test_hasFixes() async { 54 test_hasFixes() async {
55 addTestFile(''' 55 addTestFile('''
56 foo() { 56 foo() {
57 print(1) 57 print(1)
58 } 58 }
59 bar() { 59 bar() {
60 print(10) print(20) 60 print(10) print(20)
61 } 61 }
62 '''); 62 ''');
63 await waitForTasksFinished(); 63 await waitForTasksFinished();
64 // print(1) 64 // print(1)
65 { 65 {
66 List<AnalysisErrorFixes> errorFixes = _getFixesAt('print(1)'); 66 List<AnalysisErrorFixes> errorFixes = await _getFixesAt('print(1)');
67 expect(errorFixes, hasLength(1)); 67 expect(errorFixes, hasLength(1));
68 _isSyntacticErrorWithSingleFix(errorFixes[0]); 68 _isSyntacticErrorWithSingleFix(errorFixes[0]);
69 } 69 }
70 // print(10) 70 // print(10)
71 { 71 {
72 List<AnalysisErrorFixes> errorFixes = _getFixesAt('print(10)'); 72 List<AnalysisErrorFixes> errorFixes = await _getFixesAt('print(10)');
73 expect(errorFixes, hasLength(2)); 73 expect(errorFixes, hasLength(2));
74 _isSyntacticErrorWithSingleFix(errorFixes[0]); 74 _isSyntacticErrorWithSingleFix(errorFixes[0]);
75 _isSyntacticErrorWithSingleFix(errorFixes[1]); 75 _isSyntacticErrorWithSingleFix(errorFixes[1]);
76 } 76 }
77 } 77 }
78 78
79 Future test_overlayOnlyFile() async { 79 test_overlayOnlyFile() async {
80 // add an overlay-only file 80 // add an overlay-only file
81 { 81 {
82 testCode = ''' 82 testCode = '''
83 main() { 83 main() {
84 print(1) 84 print(1)
85 } 85 }
86 '''; 86 ''';
87 Request request = new AnalysisUpdateContentParams( 87 Request request = new AnalysisUpdateContentParams(
88 {testFile: new AddContentOverlay(testCode)}).toRequest('0'); 88 {testFile: new AddContentOverlay(testCode)}).toRequest('0');
89 Response response = 89 Response response =
90 new AnalysisDomainHandler(server).handleRequest(request); 90 new AnalysisDomainHandler(server).handleRequest(request);
91 expect(response, isResponseSuccess('0')); 91 expect(response, isResponseSuccess('0'));
92 } 92 }
93 // ask for fixes 93 // ask for fixes
94 await waitForTasksFinished(); 94 await waitForTasksFinished();
95 List<AnalysisErrorFixes> errorFixes = _getFixesAt('print(1)'); 95 List<AnalysisErrorFixes> errorFixes = await _getFixesAt('print(1)');
96 expect(errorFixes, hasLength(1)); 96 expect(errorFixes, hasLength(1));
97 _isSyntacticErrorWithSingleFix(errorFixes[0]); 97 _isSyntacticErrorWithSingleFix(errorFixes[0]);
98 } 98 }
99 99
100 List<AnalysisErrorFixes> _getFixes(int offset) { 100 Future<List<AnalysisErrorFixes>> _getFixes(int offset) async {
101 Request request = new EditGetFixesParams(testFile, offset).toRequest('0'); 101 Request request = new EditGetFixesParams(testFile, offset).toRequest('0');
102 Response response = handleSuccessfulRequest(request); 102 Response response = await waitResponse(request);
103 var result = new EditGetFixesResult.fromResponse(response); 103 var result = new EditGetFixesResult.fromResponse(response);
104 return result.fixes; 104 return result.fixes;
105 } 105 }
106 106
107 List<AnalysisErrorFixes> _getFixesAt(String search) { 107 Future<List<AnalysisErrorFixes>> _getFixesAt(String search) async {
108 int offset = findOffset(search); 108 int offset = findOffset(search);
109 return _getFixes(offset); 109 return await _getFixes(offset);
110 } 110 }
111 111
112 void _isSyntacticErrorWithSingleFix(AnalysisErrorFixes fixes) { 112 void _isSyntacticErrorWithSingleFix(AnalysisErrorFixes fixes) {
113 AnalysisError error = fixes.error; 113 AnalysisError error = fixes.error;
114 expect(error.severity, AnalysisErrorSeverity.ERROR); 114 expect(error.severity, AnalysisErrorSeverity.ERROR);
115 expect(error.type, AnalysisErrorType.SYNTACTIC_ERROR); 115 expect(error.type, AnalysisErrorType.SYNTACTIC_ERROR);
116 expect(fixes.fixes, hasLength(1)); 116 expect(fixes.fixes, hasLength(1));
117 } 117 }
118 } 118 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698