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

Unified Diff: pkg/analyzer/test/src/context/builder_test.dart

Issue 2660173002: implement default analysis options in bazel (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/src/context/builder_test.dart
diff --git a/pkg/analyzer/test/src/context/builder_test.dart b/pkg/analyzer/test/src/context/builder_test.dart
index 4569f8e0c1ac3c05cdef8047c8cf44b6273f4902..5736e5091a5977dd8e927c6f56076de9a8efe6fa 100644
--- a/pkg/analyzer/test/src/context/builder_test.dart
+++ b/pkg/analyzer/test/src/context/builder_test.dart
@@ -13,6 +13,9 @@ import 'package:analyzer/src/generated/bazel.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/lint/linter.dart';
+import 'package:analyzer/src/lint/registry.dart';
+import 'package:analyzer/src/services/lint.dart';
import 'package:args/args.dart';
import 'package:package_config/packages.dart';
import 'package:package_config/src/packages_impl.dart';
@@ -125,7 +128,7 @@ const Map<String, LibraryInfo> libraries = const {
String path = resourceProvider.convertPath('/some/directory/path');
String filePath =
- pathContext.join(path, AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
+ pathContext.join(path, AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
resourceProvider.newFile(
filePath,
'''
@@ -521,6 +524,38 @@ b:${pathContext.toUri(packageB)}
expect(htmlSource.exists(), isTrue);
}
+ void test_getAnalysisOptions_default_bazel() {
Brian Wilkerson 2017/01/30 14:56:05 Should we have a similar test for Gn?
danrubel 2017/01/30 19:00:44 Good point, but I don't know an appropriate defaul
+ MockLintRule mockLintRule = new MockLintRule('mock_lint_rule');
+ Registry.ruleRegistry.register(mockLintRule);
+ MockLintRule mockLintRule2 = new MockLintRule('mock_lint_rule2');
+ Registry.ruleRegistry.register(mockLintRule2);
+ AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
+ builderOptions.defaultOptions = defaultOptions;
+ AnalysisOptionsImpl expected = new AnalysisOptionsImpl();
+ expected.lint = true;
+ expected.lintRules = <Linter>[mockLintRule];
+ createFile(resourceProvider.convertPath('/root/WORKSPACE'), '');
+ createFile(
+ resourceProvider
+ .convertPath('/root/dart/analysis_options/lib/default.yaml'),
+ '''
+linter:
+ rules:
+ - mock_lint_rule
+''');
+ createFile(
+ resourceProvider
+ .convertPath('/root/dart/analysis_options/lib/flutter.yaml'),
+ '''
+linter:
+ rules:
+ - mock_lint_rule2
+''');
+ AnalysisOptions options = builder
+ .getAnalysisOptions(resourceProvider.convertPath('/root/some/path'));
+ _expectEqualOptions(options, expected);
+ }
+
void test_getAnalysisOptions_default_noOverrides() {
AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
defaultOptions.enableLazyAssignmentOperators = true;
@@ -544,6 +579,7 @@ linter:
void test_getAnalysisOptions_default_overrides() {
AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
+ defaultOptions.enableSuperMixins = false;
defaultOptions.enableLazyAssignmentOperators = true;
builderOptions.defaultOptions = defaultOptions;
AnalysisOptionsImpl expected = new AnalysisOptionsImpl();
@@ -720,6 +756,10 @@ analyzer:
expect(actual.incrementalApi, expected.incrementalApi);
expect(actual.incrementalValidation, expected.incrementalValidation);
expect(actual.lint, expected.lint);
+ expect(
+ actual.lintRules.map((l) => l.name),
+ unorderedEquals(expected.lintRules.map((l) => l.name)),
+ );
expect(actual.preserveComments, expected.preserveComments);
expect(actual.strongMode, expected.strongMode);
expect(actual.strongModeHints, expected.strongModeHints);
@@ -758,3 +798,14 @@ class EmbedderYamlLocatorTest extends EmbedderRelatedTest {
expect(locator.embedderYamls, hasLength(1));
}
}
+
+class MockLintRule implements LintRule {
+ final String _name;
+
+ MockLintRule(this._name);
+
+ @override
+ String get name => _name;
+
+ noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
« pkg/analyzer/lib/src/context/builder.dart ('K') | « pkg/analyzer/lib/src/generated/workspace.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698