| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:analyzer/src/util/file_paths.dart' as file_paths; |
| import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
| import 'package:test/test.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| import '../support/integration_tests.dart'; |
| |
| void main() { |
| defineReflectiveSuite(() { |
| defineReflectiveTests(OptionsIntegrationTest); |
| }); |
| } |
| |
| @reflectiveTest |
| class OptionsIntegrationTest extends AbstractAnalysisServerIntegrationTest { |
| Future<void> optionsAnalysisSetup() async { |
| // Add an empty Dart file; required to trigger analysis (#35383). |
| writeFile(sourcePath('test.dart'), ''); |
| await standardAnalysisSetup(); |
| } |
| |
| Future<void> test_option_warning_optionFile() async { |
| var options = sourcePath(file_paths.analysisOptionsYaml); |
| writeFile(options, ''' |
| linter: |
| rules: |
| - camel_case_typo # :) |
| '''); |
| |
| await optionsAnalysisSetup(); |
| |
| await analysisFinished; |
| |
| expect(currentAnalysisErrors[options], isList); |
| var errors = existingErrorsForFile(options); |
| expect(errors, hasLength(1)); |
| var error = errors[0]; |
| expect(error.location.file, options); |
| expect(error.severity, AnalysisErrorSeverity.WARNING); |
| expect(error.type, AnalysisErrorType.STATIC_WARNING); |
| expect(error.location.offset, 23); |
| expect(error.location.length, 'camel_case_typo'.length); |
| expect(error.location.startLine, 3); |
| expect(error.location.startColumn, 7); |
| } |
| } |