Chromium Code Reviews| 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); |
| +} |