| OLD | NEW |
| 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 analyzer.test.source.analysis_options_provider_test; | 5 library analyzer.test.source.analysis_options_provider_test; |
| 6 | 6 |
| 7 import 'package:analyzer/file_system/file_system.dart'; |
| 7 import 'package:analyzer/file_system/memory_file_system.dart'; | 8 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 8 import 'package:analyzer/source/analysis_options_provider.dart'; | 9 import 'package:analyzer/source/analysis_options_provider.dart'; |
| 9 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
| 10 import 'package:yaml/yaml.dart'; | 11 import 'package:yaml/yaml.dart'; |
| 11 | 12 |
| 12 import '../utils.dart'; | 13 import '../resource_utils.dart'; |
| 13 | 14 |
| 14 main() { | 15 main() { |
| 15 initializeTestEnvironment(); | |
| 16 | |
| 17 group('AnalysisOptionsProvider', () { | 16 group('AnalysisOptionsProvider', () { |
| 18 void expectMergesTo(String defaults, String overrides, String expected) { | 17 void expectMergesTo(String defaults, String overrides, String expected) { |
| 19 var optionsProvider = new AnalysisOptionsProvider(); | 18 var optionsProvider = new AnalysisOptionsProvider(); |
| 20 var defaultOptions = optionsProvider.getOptionsFromString(defaults); | 19 var defaultOptions = optionsProvider.getOptionsFromString(defaults); |
| 21 var overrideOptions = optionsProvider.getOptionsFromString(overrides); | 20 var overrideOptions = optionsProvider.getOptionsFromString(overrides); |
| 22 var merged = optionsProvider.merge(defaultOptions, overrideOptions); | 21 var merged = optionsProvider.merge(defaultOptions, overrideOptions); |
| 23 expect(merged, optionsProvider.getOptionsFromString(expected)); | 22 expect(merged, optionsProvider.getOptionsFromString(expected)); |
| 24 } | 23 } |
| 25 | 24 |
| 26 group('merging', () { | 25 group('merging', () { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 group('AnalysisOptionsProvider', () { | 69 group('AnalysisOptionsProvider', () { |
| 71 setUp(() { | 70 setUp(() { |
| 72 buildResourceProvider(); | 71 buildResourceProvider(); |
| 73 }); | 72 }); |
| 74 tearDown(() { | 73 tearDown(() { |
| 75 clearResourceProvider(); | 74 clearResourceProvider(); |
| 76 }); | 75 }); |
| 77 test('test_simple', () { | 76 test('test_simple', () { |
| 78 var optionsProvider = new AnalysisOptionsProvider(); | 77 var optionsProvider = new AnalysisOptionsProvider(); |
| 79 Map<String, YamlNode> options = | 78 Map<String, YamlNode> options = |
| 80 optionsProvider.getOptions(resourceProvider.getFolder('/')); | 79 optionsProvider.getOptions(pathTranslator.getResource('/')); |
| 81 expect(options, hasLength(1)); | 80 expect(options, hasLength(1)); |
| 82 expect(options['analyzer'], isNotNull); | 81 expect(options['analyzer'], isNotNull); |
| 83 YamlMap analyzer = options['analyzer']; | 82 YamlMap analyzer = options['analyzer']; |
| 84 expect(analyzer, hasLength(1)); | 83 expect(analyzer, hasLength(1)); |
| 85 expect(analyzer['ignore'], isNotNull); | 84 expect(analyzer['ignore'], isNotNull); |
| 86 YamlList ignore = analyzer['ignore']; | 85 YamlList ignore = analyzer['ignore']; |
| 87 expect(ignore, hasLength(2)); | 86 expect(ignore, hasLength(2)); |
| 88 expect(ignore[0], 'ignoreme.dart'); | 87 expect(ignore[0], 'ignoreme.dart'); |
| 89 expect(ignore[1], 'sdk_ext/**'); | 88 expect(ignore[1], 'sdk_ext/**'); |
| 90 }); | 89 }); |
| 91 test('test_doesnotexist', () { | 90 test('test_doesnotexist', () { |
| 92 var optionsProvider = new AnalysisOptionsProvider(); | 91 var optionsProvider = new AnalysisOptionsProvider(); |
| 93 Map<String, YamlNode> options = | 92 Map<String, YamlNode> options = |
| 94 optionsProvider.getOptions(resourceProvider.getFolder('/empty')); | 93 optionsProvider.getOptions(pathTranslator.getResource('/empty')); |
| 95 expect(options, isEmpty); | 94 expect(options, isEmpty); |
| 96 }); | 95 }); |
| 97 }); | 96 }); |
| 98 group('AnalysisOptionsProvider', () { | 97 group('AnalysisOptionsProvider', () { |
| 99 setUp(() { | 98 setUp(() { |
| 100 buildResourceProvider(emptyAnalysisOptions: true); | 99 buildResourceProvider(emptyAnalysisOptions: true); |
| 101 }); | 100 }); |
| 102 tearDown(() { | 101 tearDown(() { |
| 103 clearResourceProvider(); | 102 clearResourceProvider(); |
| 104 }); | 103 }); |
| 105 test('test_empty', () { | 104 test('test_empty', () { |
| 106 var optionsProvider = new AnalysisOptionsProvider(); | 105 var optionsProvider = new AnalysisOptionsProvider(); |
| 107 Map<String, YamlNode> options = | 106 Map<String, YamlNode> options = |
| 108 optionsProvider.getOptions(resourceProvider.getFolder('/')); | 107 optionsProvider.getOptions(pathTranslator.getResource('/')); |
| 109 expect(options, isNotNull); | 108 expect(options, isNotNull); |
| 110 }); | 109 }); |
| 111 }); | 110 }); |
| 112 group('AnalysisOptionsProvider', () { | 111 group('AnalysisOptionsProvider', () { |
| 113 setUp(() { | 112 setUp(() { |
| 114 buildResourceProvider(badAnalysisOptions: true); | 113 buildResourceProvider(badAnalysisOptions: true); |
| 115 }); | 114 }); |
| 116 tearDown(() { | 115 tearDown(() { |
| 117 clearResourceProvider(); | 116 clearResourceProvider(); |
| 118 }); | 117 }); |
| 119 test('test_invalid', () { | 118 test('test_invalid', () { |
| 120 var optionsProvider = new AnalysisOptionsProvider(); | 119 var optionsProvider = new AnalysisOptionsProvider(); |
| 121 bool exceptionCaught = false; | 120 bool exceptionCaught = false; |
| 122 try { | 121 try { |
| 123 Map<String, YamlNode> options = | 122 Map<String, YamlNode> options = |
| 124 optionsProvider.getOptions(resourceProvider.getFolder('/')); | 123 optionsProvider.getOptions(pathTranslator.getResource('/')); |
| 125 expect(options, isNotNull); | 124 expect(options, isNotNull); |
| 126 } catch (e) { | 125 } catch (e) { |
| 127 exceptionCaught = true; | 126 exceptionCaught = true; |
| 128 } | 127 } |
| 129 expect(exceptionCaught, isTrue); | 128 expect(exceptionCaught, isTrue); |
| 130 }); | 129 }); |
| 131 }); | 130 }); |
| 132 group('AnalysisOptionsProvider', () { | 131 group('AnalysisOptionsProvider', () { |
| 133 test('test_bad_yaml (1)', () { | 132 test('test_bad_yaml (1)', () { |
| 134 var src = ''' | 133 var src = ''' |
| (...skipping 14 matching lines...) Expand all Loading... |
| 149 | 148 |
| 150 var optionsProvider = new AnalysisOptionsProvider(); | 149 var optionsProvider = new AnalysisOptionsProvider(); |
| 151 // Should not throw an exception. | 150 // Should not throw an exception. |
| 152 var options = optionsProvider.getOptionsFromString(src); | 151 var options = optionsProvider.getOptionsFromString(src); |
| 153 // Should return a non-null options list. | 152 // Should return a non-null options list. |
| 154 expect(options, isNotNull); | 153 expect(options, isNotNull); |
| 155 }); | 154 }); |
| 156 }); | 155 }); |
| 157 } | 156 } |
| 158 | 157 |
| 159 MemoryResourceProvider resourceProvider; | 158 ResourceProvider resourceProvider; |
| 159 TestPathTranslator pathTranslator; |
| 160 | 160 |
| 161 buildResourceProvider( | 161 buildResourceProvider( |
| 162 {bool emptyAnalysisOptions: false, bool badAnalysisOptions: false}) { | 162 {bool emptyAnalysisOptions: false, bool badAnalysisOptions: false}) { |
| 163 resourceProvider = new MemoryResourceProvider(); | 163 var rawProvider = new MemoryResourceProvider(isWindows: isWindows); |
| 164 resourceProvider.newFolder('/empty'); | 164 resourceProvider = new TestResourceProvider(rawProvider); |
| 165 resourceProvider.newFolder('/tmp'); | 165 pathTranslator = new TestPathTranslator(rawProvider) |
| 166 ..newFolder('/empty') |
| 167 ..newFolder('/tmp'); |
| 166 if (badAnalysisOptions) { | 168 if (badAnalysisOptions) { |
| 167 resourceProvider.newFile('/.analysis_options', r''':'''); | 169 pathTranslator.newFile('/.analysis_options', r''':'''); |
| 168 } else if (emptyAnalysisOptions) { | 170 } else if (emptyAnalysisOptions) { |
| 169 resourceProvider.newFile('/.analysis_options', r'''#empty'''); | 171 pathTranslator.newFile('/.analysis_options', r'''#empty'''); |
| 170 } else { | 172 } else { |
| 171 resourceProvider.newFile( | 173 pathTranslator.newFile( |
| 172 '/.analysis_options', | 174 '/.analysis_options', |
| 173 r''' | 175 r''' |
| 174 analyzer: | 176 analyzer: |
| 175 ignore: | 177 ignore: |
| 176 - ignoreme.dart | 178 - ignoreme.dart |
| 177 - 'sdk_ext/**' | 179 - 'sdk_ext/**' |
| 178 '''); | 180 '''); |
| 179 } | 181 } |
| 180 } | 182 } |
| 181 | 183 |
| 182 clearResourceProvider() { | 184 clearResourceProvider() { |
| 183 resourceProvider = null; | 185 resourceProvider = null; |
| 184 } | 186 } |
| 185 | |
| 186 emptyResourceProvider() { | |
| 187 resourceProvider = new MemoryResourceProvider(); | |
| 188 } | |
| OLD | NEW |