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

Side by Side Diff: pkg/analysis_server/test/analysis/get_errors_test.dart

Issue 532403002: Fix error handling in analysis.getError. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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.analysis.get_errors; 5 library test.analysis.get_errors;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/domain_analysis.dart'; 9 import 'package:analysis_server/src/domain_analysis.dart';
10 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
(...skipping 29 matching lines...) Expand all
40 '''); 40 ''');
41 return waitForTasksFinished().then((_) { 41 return waitForTasksFinished().then((_) {
42 return _getErrors(testFile).then((List<AnalysisError> errors) { 42 return _getErrors(testFile).then((List<AnalysisError> errors) {
43 expect(errors, hasLength(1)); 43 expect(errors, hasLength(1));
44 }); 44 });
45 }); 45 });
46 } 46 }
47 47
48 test_fileDoesNotExist() { 48 test_fileDoesNotExist() {
49 String file = '$projectPath/doesNotExist.dart'; 49 String file = '$projectPath/doesNotExist.dart';
50 return _getErrors(file).then((List<AnalysisError> errors) { 50 return _checkInvalid(file);
51 expect(errors, isEmpty);
52 });
53 } 51 }
54 52
55 test_fileWithoutContext() { 53 test_fileWithoutContext() {
56 String file = '/outside.dart'; 54 String file = '/outside.dart';
57 addFile(file, ''' 55 addFile(file, '''
58 main() { 56 main() {
59 print(42); 57 print(42);
60 } 58 }
61 '''); 59 ''');
62 return _getErrors(file).then((List<AnalysisError> errors) { 60 return _checkInvalid(file);
63 expect(errors, isEmpty);
64 });
65 } 61 }
66 62
67 test_hasErrors() { 63 test_hasErrors() {
68 addTestFile(''' 64 addTestFile('''
69 main() { 65 main() {
70 print(42) 66 print(42)
71 } 67 }
72 '''); 68 ''');
73 return _getErrors(testFile).then((List<AnalysisError> errors) { 69 return _getErrors(testFile).then((List<AnalysisError> errors) {
74 expect(errors, hasLength(1)); 70 expect(errors, hasLength(1));
(...skipping 20 matching lines...) Expand all
95 91
96 test_removeContextAfterRequest() { 92 test_removeContextAfterRequest() {
97 addTestFile(''' 93 addTestFile('''
98 main() { 94 main() {
99 print(42) 95 print(42)
100 } 96 }
101 '''); 97 ''');
102 // handle the request synchronously 98 // handle the request synchronously
103 Request request = _createGetErrorsRequest(); 99 Request request = _createGetErrorsRequest();
104 server.handleRequest(request); 100 server.handleRequest(request);
105 // remove context, causes sending a 'cancelled' error 101 // remove context, causes sending an "invalid file" error
106 { 102 {
107 Folder projectFolder = resourceProvider.getResource(projectPath); 103 Folder projectFolder = resourceProvider.getResource(projectPath);
108 server.contextDirectoryManager.removeContext(projectFolder); 104 server.contextDirectoryManager.removeContext(projectFolder);
109 } 105 }
110 // wait for an error response 106 // wait for an error response
111 return serverChannel.waitForResponse(request).then((Response response) { 107 return serverChannel.waitForResponse(request).then((Response response) {
112 var result = new AnalysisGetErrorsResult.fromResponse(response); 108 expect(response.error, isNotNull);
113 expect(result.errors, isEmpty); 109 expect(response.error.code, RequestErrorCode.GET_ERRORS_INVALID_FILE);
114 RequestError error = response.error;
115 expect(error, isNotNull);
116 expect(error.code, RequestErrorCode.GET_ERRORS_ERROR);
117 }); 110 });
118 } 111 }
119 112
120 Request _createGetErrorsRequest() { 113 Request _createGetErrorsRequest() {
121 return new AnalysisGetErrorsParams(testFile).toRequest(requestId); 114 return new AnalysisGetErrorsParams(testFile).toRequest(requestId);
122 } 115 }
123 116
124 Future<List<AnalysisError>> _getErrors(String file) { 117 Future<List<AnalysisError>> _getErrors(String file) {
125 Request request = _createGetErrorsRequest(); 118 Request request = _createGetErrorsRequest();
126 return serverChannel.sendRequest(request).then((Response response) { 119 return serverChannel.sendRequest(request).then((Response response) {
127 return new AnalysisGetErrorsResult.fromResponse(response).errors; 120 return new AnalysisGetErrorsResult.fromResponse(response).errors;
128 }); 121 });
129 } 122 }
123
124 Future _checkInvalid(String file) {
125 Request request = _createGetErrorsRequest();
126 return serverChannel.sendRequest(request).then((Response response) {
127 expect(response.error, isNotNull);
128 expect(response.error.code, RequestErrorCode.GET_ERRORS_INVALID_FILE);
129 });
130 }
130 } 131 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698