OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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.src.context.context_builder_test; | 5 library analyzer.test.src.context.context_builder_test; |
6 | 6 |
7 import 'package:analyzer/context/context_root.dart'; | 7 import 'package:analyzer/context/context_root.dart'; |
8 import 'package:analyzer/file_system/file_system.dart'; | 8 import 'package:analyzer/file_system/file_system.dart'; |
9 import 'package:analyzer/file_system/memory_file_system.dart'; | 9 import 'package:analyzer/file_system/memory_file_system.dart'; |
10 import 'package:analyzer/source/package_map_resolver.dart'; | 10 import 'package:analyzer/source/package_map_resolver.dart'; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 /** | 71 /** |
72 * The path to the default SDK, or `null` if the test has not explicitly | 72 * The path to the default SDK, or `null` if the test has not explicitly |
73 * invoked [createDefaultSdk]. | 73 * invoked [createDefaultSdk]. |
74 */ | 74 */ |
75 String defaultSdkPath = null; | 75 String defaultSdkPath = null; |
76 | 76 |
77 _MockLintRule _mockLintRule; | 77 _MockLintRule _mockLintRule; |
78 _MockLintRule _mockLintRule2; | 78 _MockLintRule _mockLintRule2; |
79 _MockLintRule _mockLintRule3; | 79 _MockLintRule _mockLintRule3; |
| 80 _MockLintRule _mockPublicMemberApiDocs; |
80 | 81 |
81 Uri convertedDirectoryUri(String directoryPath) { | 82 Uri convertedDirectoryUri(String directoryPath) { |
82 return new Uri.directory(resourceProvider.convertPath(directoryPath), | 83 return new Uri.directory(resourceProvider.convertPath(directoryPath), |
83 windows: pathContext.style == path.windows.style); | 84 windows: pathContext.style == path.windows.style); |
84 } | 85 } |
85 | 86 |
86 void createDefaultSdk(Folder sdkDir) { | 87 void createDefaultSdk(Folder sdkDir) { |
87 defaultSdkPath = pathContext.join(sdkDir.path, 'default', 'sdk'); | 88 defaultSdkPath = pathContext.join(sdkDir.path, 'default', 'sdk'); |
88 String librariesFilePath = pathContext.join(defaultSdkPath, 'lib', | 89 String librariesFilePath = pathContext.join(defaultSdkPath, 'lib', |
89 '_internal', 'sdk_library_metadata', 'lib', 'libraries.dart'); | 90 '_internal', 'sdk_library_metadata', 'lib', 'libraries.dart'); |
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 ''' | 765 ''' |
765 linter: | 766 linter: |
766 rules: | 767 rules: |
767 - mock_lint_rule | 768 - mock_lint_rule |
768 '''); | 769 '''); |
769 String projPath = resourceProvider.convertPath('/some/directory/path'); | 770 String projPath = resourceProvider.convertPath('/some/directory/path'); |
770 AnalysisOptions options = builder.getAnalysisOptions(projPath); | 771 AnalysisOptions options = builder.getAnalysisOptions(projPath); |
771 _expectEqualOptions(options, expected); | 772 _expectEqualOptions(options, expected); |
772 } | 773 } |
773 | 774 |
| 775 void test_getAnalysisOptions_default_flutter_repo() { |
| 776 _defineMockLintRules(); |
| 777 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl(); |
| 778 builderOptions.defaultOptions = defaultOptions; |
| 779 AnalysisOptionsImpl expected = new AnalysisOptionsImpl(); |
| 780 expected.lint = true; |
| 781 expected.lintRules = <Linter>[_mockLintRule, _mockPublicMemberApiDocs]; |
| 782 String packagesFilePath = |
| 783 resourceProvider.convertPath('/some/directory/path/.packages'); |
| 784 createFile(packagesFilePath, 'flutter:/pkg/flutter/lib/'); |
| 785 String optionsFilePath = resourceProvider |
| 786 .convertPath('/pkg/flutter/lib/analysis_options_user.yaml'); |
| 787 createFile( |
| 788 optionsFilePath, |
| 789 ''' |
| 790 linter: |
| 791 rules: |
| 792 - mock_lint_rule |
| 793 '''); |
| 794 String projPath = resourceProvider.convertPath('/some/directory/path'); |
| 795 AnalysisOptions options; |
| 796 try { |
| 797 ContextBuilderOptions.flutterRepo = true; |
| 798 options = builder.getAnalysisOptions(projPath); |
| 799 } finally { |
| 800 ContextBuilderOptions.flutterRepo = false; |
| 801 } |
| 802 _expectEqualOptions(options, expected); |
| 803 } |
| 804 |
774 void test_getAnalysisOptions_default_noOverrides() { | 805 void test_getAnalysisOptions_default_noOverrides() { |
775 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl(); | 806 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl(); |
776 defaultOptions.enableLazyAssignmentOperators = true; | 807 defaultOptions.enableLazyAssignmentOperators = true; |
777 builderOptions.defaultOptions = defaultOptions; | 808 builderOptions.defaultOptions = defaultOptions; |
778 AnalysisOptionsImpl expected = new AnalysisOptionsImpl(); | 809 AnalysisOptionsImpl expected = new AnalysisOptionsImpl(); |
779 expected.enableLazyAssignmentOperators = true; | 810 expected.enableLazyAssignmentOperators = true; |
780 String path = resourceProvider.convertPath('/some/directory/path'); | 811 String path = resourceProvider.convertPath('/some/directory/path'); |
781 String filePath = | 812 String filePath = |
782 pathContext.join(path, AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE); | 813 pathContext.join(path, AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE); |
783 resourceProvider.newFile( | 814 resourceProvider.newFile( |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 expect(result.path, filePath); | 1036 expect(result.path, filePath); |
1006 } | 1037 } |
1007 | 1038 |
1008 _defineMockLintRules() { | 1039 _defineMockLintRules() { |
1009 _mockLintRule = new _MockLintRule('mock_lint_rule'); | 1040 _mockLintRule = new _MockLintRule('mock_lint_rule'); |
1010 Registry.ruleRegistry.registerDefault(_mockLintRule); | 1041 Registry.ruleRegistry.registerDefault(_mockLintRule); |
1011 _mockLintRule2 = new _MockLintRule('mock_lint_rule2'); | 1042 _mockLintRule2 = new _MockLintRule('mock_lint_rule2'); |
1012 Registry.ruleRegistry.registerDefault(_mockLintRule2); | 1043 Registry.ruleRegistry.registerDefault(_mockLintRule2); |
1013 _mockLintRule3 = new _MockLintRule('mock_lint_rule3'); | 1044 _mockLintRule3 = new _MockLintRule('mock_lint_rule3'); |
1014 Registry.ruleRegistry.register(_mockLintRule3); | 1045 Registry.ruleRegistry.register(_mockLintRule3); |
| 1046 _mockPublicMemberApiDocs = new _MockLintRule('public_member_api_docs'); |
| 1047 Registry.ruleRegistry.register(_mockPublicMemberApiDocs); |
1015 } | 1048 } |
1016 | 1049 |
1017 void _expectEqualOptions( | 1050 void _expectEqualOptions( |
1018 AnalysisOptionsImpl actual, AnalysisOptionsImpl expected) { | 1051 AnalysisOptionsImpl actual, AnalysisOptionsImpl expected) { |
1019 // TODO(brianwilkerson) Consider moving this to AnalysisOptionsImpl.==. | 1052 // TODO(brianwilkerson) Consider moving this to AnalysisOptionsImpl.==. |
1020 expect(actual.analyzeFunctionBodiesPredicate, | 1053 expect(actual.analyzeFunctionBodiesPredicate, |
1021 same(expected.analyzeFunctionBodiesPredicate)); | 1054 same(expected.analyzeFunctionBodiesPredicate)); |
1022 expect(actual.dart2jsHint, expected.dart2jsHint); | 1055 expect(actual.dart2jsHint, expected.dart2jsHint); |
1023 expect(actual.enableLazyAssignmentOperators, | 1056 expect(actual.enableLazyAssignmentOperators, |
1024 expected.enableLazyAssignmentOperators); | 1057 expected.enableLazyAssignmentOperators); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1074 class _MockLintRule implements LintRule { | 1107 class _MockLintRule implements LintRule { |
1075 final String _name; | 1108 final String _name; |
1076 | 1109 |
1077 _MockLintRule(this._name); | 1110 _MockLintRule(this._name); |
1078 | 1111 |
1079 @override | 1112 @override |
1080 String get name => _name; | 1113 String get name => _name; |
1081 | 1114 |
1082 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); | 1115 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
1083 } | 1116 } |
OLD | NEW |