Index: pkg/analyzer/test/source/analysis_options_provider_test.dart |
diff --git a/pkg/analyzer/test/source/analysis_options_provider_test.dart b/pkg/analyzer/test/source/analysis_options_provider_test.dart |
index 5d743e4238bea57c3e5c671cdee3a7dbf32f3429..36b30bca07d437ca69bd2bbf9979abf326fa65be 100644 |
--- a/pkg/analyzer/test/source/analysis_options_provider_test.dart |
+++ b/pkg/analyzer/test/source/analysis_options_provider_test.dart |
@@ -13,6 +13,60 @@ import '../utils.dart'; |
main() { |
initializeTestEnvironment(); |
+ |
+ group('AnalysisOptionsProvider', () { |
+ void expectMergesTo(String defaults, String overrides, String expected) { |
+ var optionsProvider = new AnalysisOptionsProvider(); |
+ var defaultOptions = optionsProvider.getOptionsFromString(defaults); |
+ var overrideOptions = optionsProvider.getOptionsFromString(overrides); |
+ var merged = optionsProvider.merge(defaultOptions, overrideOptions); |
+ expect(merged, optionsProvider.getOptionsFromString(expected)); |
+ } |
+ |
+ group('merging', () { |
+ test('integration', () { |
+ expectMergesTo( |
+ ''' |
+analyzer: |
+ plugins: |
+ - p1 |
+ - p2 |
+ errors: |
+ unused_local_variable : error |
+linter: |
+ rules: |
+ - camel_case_types |
+ - one_member_abstracts |
+''', |
+ ''' |
+analyzer: |
+ plugins: |
+ - p3 |
+ errors: |
+ unused_local_variable : ignore # overrides error |
+linter: |
+ rules: |
+ one_member_abstracts: false # promotes and disables |
+ always_specify_return_types: true |
+''', |
+ ''' |
+analyzer: |
+ plugins: |
+ - p1 |
+ - p2 |
+ - p3 |
+ errors: |
+ unused_local_variable : ignore |
+linter: |
+ rules: |
+ camel_case_types: true |
+ one_member_abstracts: false |
+ always_specify_return_types: true |
+'''); |
+ }); |
+ }); |
+ }); |
+ |
group('AnalysisOptionsProvider', () { |
setUp(() { |
buildResourceProvider(); |