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

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

Issue 1420363005: Error Suppression FTW. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Test fix. 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) 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 25 matching lines...) Expand all
36 }'''; 36 }''';
37 37
38 List<AnalysisError> get errors => filesErrors[testFile]; 38 List<AnalysisError> get errors => filesErrors[testFile];
39 39
40 List<AnalysisError> get optionsFileErrors => filesErrors[optionsFilePath]; 40 List<AnalysisError> get optionsFileErrors => filesErrors[optionsFilePath];
41 41
42 String get optionsFilePath => '$projectPath/.analysis_options'; 42 String get optionsFilePath => '$projectPath/.analysis_options';
43 43
44 AnalysisContext get testContext => server.getContainingContext(testFile); 44 AnalysisContext get testContext => server.getContainingContext(testFile);
45 45
46 List<AnalysisError> get testFileErrors => filesErrors[testFile];
47
46 void addOptionsFile(String contents) { 48 void addOptionsFile(String contents) {
47 addFile(optionsFilePath, contents); 49 addFile(optionsFilePath, contents);
48 } 50 }
49 51
50 void deleteFile(String filePath) { 52 void deleteFile(String filePath) {
51 resourceProvider.deleteFile(filePath); 53 resourceProvider.deleteFile(filePath);
52 } 54 }
53 55
54 @override 56 @override
55 void processNotification(Notification notification) { 57 void processNotification(Notification notification) {
(...skipping 20 matching lines...) Expand all
76 void setUp() { 78 void setUp() {
77 super.setUp(); 79 super.setUp();
78 server.handlers = [new AnalysisDomainHandler(server)]; 80 server.handlers = [new AnalysisDomainHandler(server)];
79 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel; 81 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel;
80 AnalysisEngine.instance.useTaskModel = true; 82 AnalysisEngine.instance.useTaskModel = true;
81 } 83 }
82 84
83 @override 85 @override
84 void tearDown() { 86 void tearDown() {
85 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled; 87 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled;
88 filesErrors[optionsFilePath] = [];
89 filesErrors[testFile] = [];
86 super.tearDown(); 90 super.tearDown();
87 } 91 }
88 92
93 test_error_filter() async {
94 addOptionsFile('''
95 analyzer:
96 errors:
97 unused_local_variable: ignore
98 ''');
99
100 addTestFile('''
101 main() {
102 String unused = "";
103 }
104 ''');
105
106 setAnalysisRoot();
107
108 await waitForTasksFinished();
109
110 // Verify options file.
111 expect(optionsFileErrors, hasLength(0));
112
113 // Verify test file.
114 expect(testFileErrors, hasLength(0));
115 }
116
117 test_error_filter_removed() async {
118 addOptionsFile('''
119 analyzer:
120 errors:
121 unused_local_variable: ignore
122 ''');
123
124 addTestFile('''
125 main() {
126 String unused = "";
127 }
128 ''');
129
130 setAnalysisRoot();
131
132 await waitForTasksFinished();
133
134 // Verify options file.
135 expect(optionsFileErrors, hasLength(0));
136
137 // Verify test file.
138 expect(testFileErrors, hasLength(0));
139
140 addOptionsFile('''
141 analyzer:
142 errors:
143 # unused_local_variable: ignore
144 ''');
145
146 await pumpEventQueue();
147 await waitForTasksFinished();
148
149 // Verify options file.
150 expect(optionsFileErrors, hasLength(0));
151
152 // Verify test file.
153 expect(testFileErrors, hasLength(1));
154 }
155
89 test_lint_options_changes() async { 156 test_lint_options_changes() async {
90 addOptionsFile(''' 157 addOptionsFile('''
91 linter: 158 linter:
92 rules: 159 rules:
93 - camel_case_types 160 - camel_case_types
94 - constant_identifier_names 161 - constant_identifier_names
95 '''); 162 ''');
96 163
97 addTestFile(testSource); 164 addTestFile(testSource);
98 setAnalysisRoot(); 165 setAnalysisRoot();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 filesErrors[testFile] = []; 245 filesErrors[testFile] = [];
179 246
180 deleteFile(optionsFilePath); 247 deleteFile(optionsFilePath);
181 248
182 await pumpEventQueue(); 249 await pumpEventQueue();
183 await waitForTasksFinished(); 250 await waitForTasksFinished();
184 251
185 verifyStrongMode(enabled: false); 252 verifyStrongMode(enabled: false);
186 } 253 }
187 254
188 test_strong_mode_changed() async { 255 test_strong_mode_changed_off() async {
189 setStrongMode(true); 256 setStrongMode(true);
190 257
191 addTestFile(testSource); 258 addTestFile(testSource);
192 setAnalysisRoot(); 259 setAnalysisRoot();
193 260
194 await waitForTasksFinished(); 261 await waitForTasksFinished();
195 262
196 verifyStrongMode(enabled: true); 263 verifyStrongMode(enabled: true);
197 264
198 // Clear errors. 265 // Clear errors.
199 filesErrors[testFile] = []; 266 filesErrors[testFile] = [];
200 267
201 setStrongMode(false); 268 setStrongMode(false);
202 269
203 await pumpEventQueue(); 270 await pumpEventQueue();
204 await waitForTasksFinished(); 271 await waitForTasksFinished();
205 272
206 verifyStrongMode(enabled: false); 273 verifyStrongMode(enabled: false);
207 } 274 }
208 275
276 test_strong_mode_changed_on() async {
277 setStrongMode(false);
278
279 addTestFile(testSource);
280 setAnalysisRoot();
281
282 await waitForTasksFinished();
283
284 verifyStrongMode(enabled: false);
285
286 setStrongMode(true);
287
288 await pumpEventQueue();
289 await waitForTasksFinished();
290
291 verifyStrongMode(enabled: true);
292 }
293
209 void verifyLintsEnabled(List<String> lints) { 294 void verifyLintsEnabled(List<String> lints) {
210 expect(testContext.analysisOptions.lint, true); 295 expect(testContext.analysisOptions.lint, true);
211 var rules = getLints(testContext).map((rule) => rule.name); 296 var rules = getLints(testContext).map((rule) => rule.name);
212 expect(rules, unorderedEquals(lints)); 297 expect(rules, unorderedEquals(lints));
213 } 298 }
214 299
215 verifyStrongMode({bool enabled}) { 300 verifyStrongMode({bool enabled}) {
216 // Verify strong-mode enabled. 301 // Verify strong-mode enabled.
217 expect(testContext.analysisOptions.strongMode, enabled); 302 expect(testContext.analysisOptions.strongMode, enabled);
218 303
219 if (enabled) { 304 if (enabled) {
220 // Should produce a warning and an error. 305 // Should produce a warning and an error.
221 expect( 306 expect(
222 errors.map((error) => error.type), 307 errors.map((error) => error.type),
223 unorderedEquals([ 308 unorderedEquals([
224 AnalysisErrorType.STATIC_TYPE_WARNING, 309 AnalysisErrorType.STATIC_TYPE_WARNING,
225 AnalysisErrorType.COMPILE_TIME_ERROR 310 AnalysisErrorType.COMPILE_TIME_ERROR
226 ])); 311 ]));
227 } else { 312 } else {
228 // Should only produce a hint. 313 // Should only produce a hint.
229 expect(errors.map((error) => error.type), 314 expect(errors.map((error) => error.type),
230 unorderedEquals([AnalysisErrorType.HINT])); 315 unorderedEquals([AnalysisErrorType.HINT]));
231 } 316 }
232 } 317 }
233 } 318 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/context_manager.dart ('k') | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698