| Index: pkg/analysis_server/test/services/linter/linter_test.dart
|
| diff --git a/pkg/analysis_server/test/services/linter/linter_test.dart b/pkg/analysis_server/test/services/linter/linter_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a1f57ebc414efabef7812b976233367e0b50719f
|
| --- /dev/null
|
| +++ b/pkg/analysis_server/test/services/linter/linter_test.dart
|
| @@ -0,0 +1,77 @@
|
| +// 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.
|
| +
|
| +library test.services.linter;
|
| +
|
| +import 'package:analysis_server/src/services/linter/linter.dart';
|
| +import 'package:analyzer/analyzer.dart';
|
| +import 'package:analyzer/source/analysis_options_provider.dart';
|
| +import 'package:analyzer/src/generated/engine.dart';
|
| +import 'package:analyzer/src/generated/source.dart';
|
| +import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +import '../../utils.dart';
|
| +
|
| +main() {
|
| + initializeTestEnvironment();
|
| + defineReflectiveTests(LinterRuleOptionsValidatorTest);
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class LinterRuleOptionsValidatorTest {
|
| + final LinterRuleOptionsValidator validator= new LinterRuleOptionsValidator();
|
| + final AnalysisOptionsProvider optionsProvider = new AnalysisOptionsProvider();
|
| +
|
| + RecordingErrorListener recorder;
|
| + ErrorReporter reporter;
|
| +
|
| + List<AnalysisError> get errors => recorder.errors;
|
| +
|
| + setUp() {
|
| + recorder = new RecordingErrorListener();
|
| + reporter = new ErrorReporter(recorder, new _TestSource());
|
| + }
|
| +
|
| + test_linter_defined_rules() {
|
| + validate(
|
| + '''
|
| +linter:
|
| + rules:
|
| + - camel_case_types
|
| + ''',
|
| + []);
|
| + }
|
| +
|
| + test_linter_no_rules() {
|
| + validate(
|
| + '''
|
| +linter:
|
| + rules:
|
| + ''',
|
| + []);
|
| + }
|
| +
|
| + test_linter_undefined_rule() {
|
| + validate(
|
| + '''
|
| +linter:
|
| + rules:
|
| + - undefined
|
| + ''',
|
| + [UNDEFINED_LINT_WARNING]);
|
| + }
|
| +
|
| + validate(String source, List<AnalysisOptionsErrorCode> expected) {
|
| + var options = optionsProvider.getOptionsFromString(source);
|
| + validator.validate(reporter, options);
|
| + expect(errors.map((AnalysisError e) => e.errorCode),
|
| + unorderedEquals(expected));
|
| + }
|
| +}
|
| +
|
| +class _TestSource implements Source {
|
| + @override
|
| + noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
| +}
|
|
|