OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.notification.analysis_options; | 5 library test.analysis.notification.analysis_options; |
6 | 6 |
7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
8 import 'package:analysis_server/src/constants.dart'; | 8 import 'package:analysis_server/src/constants.dart'; |
9 import 'package:analysis_server/src/domain_analysis.dart'; | 9 import 'package:analysis_server/src/domain_analysis.dart'; |
10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 final testSource = ''' | 30 final testSource = ''' |
31 main() { | 31 main() { |
32 var x = ''; | 32 var x = ''; |
33 int y = x; // Not assignable in strong-mode | 33 int y = x; // Not assignable in strong-mode |
34 print(y); | 34 print(y); |
35 }'''; | 35 }'''; |
36 | 36 |
37 List<AnalysisError> get errors => filesErrors[testFile]; | 37 List<AnalysisError> get errors => filesErrors[testFile]; |
38 | 38 |
| 39 List<AnalysisError> get optionsFileErrors => filesErrors[optionsFilePath]; |
| 40 |
39 String get optionsFilePath => '$projectPath/.analysis_options'; | 41 String get optionsFilePath => '$projectPath/.analysis_options'; |
40 | 42 |
41 AnalysisContext get testContext => server.getContainingContext(testFile); | 43 AnalysisContext get testContext => server.getContainingContext(testFile); |
42 | 44 |
43 void addOptionsFile(String contents) { | 45 void addOptionsFile(String contents) { |
44 addFile(optionsFilePath, contents); | 46 addFile(optionsFilePath, contents); |
45 } | 47 } |
46 | 48 |
47 void deleteFile(String filePath) { | 49 void deleteFile(String filePath) { |
48 resourceProvider.deleteFile(filePath); | 50 resourceProvider.deleteFile(filePath); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 99 |
98 // Add options file with strong mode enabled. | 100 // Add options file with strong mode enabled. |
99 setStrongMode(true); | 101 setStrongMode(true); |
100 | 102 |
101 await pumpEventQueue(); | 103 await pumpEventQueue(); |
102 await waitForTasksFinished(); | 104 await waitForTasksFinished(); |
103 | 105 |
104 verifyStrongMode(enabled: true); | 106 verifyStrongMode(enabled: true); |
105 } | 107 } |
106 | 108 |
| 109 test_options_file_parse_error() async { |
| 110 addOptionsFile(''' |
| 111 ; #bang |
| 112 '''); |
| 113 setAnalysisRoot(); |
| 114 |
| 115 await waitForTasksFinished(); |
| 116 |
| 117 expect(optionsFileErrors, hasLength(1)); |
| 118 expect(optionsFileErrors.first.severity, AnalysisErrorSeverity.ERROR); |
| 119 expect(optionsFileErrors.first.type, AnalysisErrorType.COMPILE_TIME_ERROR); |
| 120 } |
| 121 |
107 test_options_file_removed() async { | 122 test_options_file_removed() async { |
108 setStrongMode(true); | 123 setStrongMode(true); |
109 | 124 |
110 addTestFile(testSource); | 125 addTestFile(testSource); |
111 setAnalysisRoot(); | 126 setAnalysisRoot(); |
112 | 127 |
113 await waitForTasksFinished(); | 128 await waitForTasksFinished(); |
114 | 129 |
115 verifyStrongMode(enabled: true); | 130 verifyStrongMode(enabled: true); |
116 | 131 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 AnalysisErrorType.STATIC_TYPE_WARNING, | 173 AnalysisErrorType.STATIC_TYPE_WARNING, |
159 AnalysisErrorType.COMPILE_TIME_ERROR | 174 AnalysisErrorType.COMPILE_TIME_ERROR |
160 ])); | 175 ])); |
161 } else { | 176 } else { |
162 // Should only produce a hint. | 177 // Should only produce a hint. |
163 expect(errors.map((error) => error.type), | 178 expect(errors.map((error) => error.type), |
164 unorderedEquals([AnalysisErrorType.HINT])); | 179 unorderedEquals([AnalysisErrorType.HINT])); |
165 } | 180 } |
166 } | 181 } |
167 } | 182 } |
OLD | NEW |