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

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

Issue 1417963004: Lint option change propagation test. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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';
11 import 'package:analyzer/src/services/lint.dart';
11 import 'package:test_reflective_loader/test_reflective_loader.dart'; 12 import 'package:test_reflective_loader/test_reflective_loader.dart';
12 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
13 14
14 import '../analysis_abstract.dart'; 15 import '../analysis_abstract.dart';
15 import '../mocks.dart'; 16 import '../mocks.dart';
16 import '../utils.dart'; 17 import '../utils.dart';
17 18
18 main() { 19 main() {
19 initializeTestEnvironment(); 20 initializeTestEnvironment();
20 defineReflectiveTests(AnalysisOptionsFileNotificationTest); 21 defineReflectiveTests(AnalysisOptionsFileNotificationTest);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel; 79 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel;
79 AnalysisEngine.instance.useTaskModel = true; 80 AnalysisEngine.instance.useTaskModel = true;
80 } 81 }
81 82
82 @override 83 @override
83 void tearDown() { 84 void tearDown() {
84 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled; 85 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled;
85 super.tearDown(); 86 super.tearDown();
86 } 87 }
87 88
89 test_lint_options_changes() async {
90 addOptionsFile('''
91 linter:
92 rules:
93 - camel_case_types
94 - constant_identifier_names
95 ''');
96
97 addTestFile(testSource);
98 setAnalysisRoot();
99
100 await waitForTasksFinished();
101
102 verifyLintsEnabled(['camel_case_types', 'constant_identifier_names']);
103
104 addOptionsFile('''
105 linter:
106 rules:
107 - camel_case_types
108 ''');
109
110 await pumpEventQueue();
111 await waitForTasksFinished();
112
113 verifyLintsEnabled(['camel_case_types']);
114 }
115
88 test_options_file_added() async { 116 test_options_file_added() async {
89 addTestFile(testSource); 117 addTestFile(testSource);
90 setAnalysisRoot(); 118 setAnalysisRoot();
91 119
92 await waitForTasksFinished(); 120 await waitForTasksFinished();
93 121
94 // Verify strong-mode disabled. 122 // Verify strong-mode disabled.
95 verifyStrongMode(enabled: false); 123 verifyStrongMode(enabled: false);
96 124
97 // Clear errors. 125 // Clear errors.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 filesErrors[testFile] = []; 182 filesErrors[testFile] = [];
155 183
156 setStrongMode(false); 184 setStrongMode(false);
157 185
158 await pumpEventQueue(); 186 await pumpEventQueue();
159 await waitForTasksFinished(); 187 await waitForTasksFinished();
160 188
161 verifyStrongMode(enabled: false); 189 verifyStrongMode(enabled: false);
162 } 190 }
163 191
192 void verifyLintsEnabled(List<String> lints) {
193 expect(testContext.analysisOptions.lint, true);
194 var rules = getLints(testContext).map((rule) => rule.name);
195 expect(rules, unorderedEquals(lints));
196 }
197
164 verifyStrongMode({bool enabled}) { 198 verifyStrongMode({bool enabled}) {
165 // Verify strong-mode enabled. 199 // Verify strong-mode enabled.
166 expect(testContext.analysisOptions.strongMode, enabled); 200 expect(testContext.analysisOptions.strongMode, enabled);
167 201
168 if (enabled) { 202 if (enabled) {
169 // Should produce a warning and an error. 203 // Should produce a warning and an error.
170 expect( 204 expect(
171 errors.map((error) => error.type), 205 errors.map((error) => error.type),
172 unorderedEquals([ 206 unorderedEquals([
173 AnalysisErrorType.STATIC_TYPE_WARNING, 207 AnalysisErrorType.STATIC_TYPE_WARNING,
174 AnalysisErrorType.COMPILE_TIME_ERROR 208 AnalysisErrorType.COMPILE_TIME_ERROR
175 ])); 209 ]));
176 } else { 210 } else {
177 // Should only produce a hint. 211 // Should only produce a hint.
178 expect(errors.map((error) => error.type), 212 expect(errors.map((error) => error.type),
179 unorderedEquals([AnalysisErrorType.HINT])); 213 unorderedEquals([AnalysisErrorType.HINT]));
180 } 214 }
181 } 215 }
182 } 216 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698