Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: pkg/analyzer/test/src/plugin/plugin_config_test.dart

Issue 2559523005: Remove the AnalysisOptionsProcessor (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library analyzer.test.src.plugin.plugin_config_test;
6
7 import 'package:analyzer/source/analysis_options_provider.dart';
8 import 'package:analyzer/src/plugin/plugin_configuration.dart';
9 import 'package:test/test.dart';
10 import 'package:yaml/yaml.dart';
11
12 main() {
13 group('plugin config tests', () {
14 group('parsing', () {
15 test('plugin map', () {
16 const optionsSrc = '''
17 analyzer:
18 plugins:
19 my_plugin1: ^0.1.0 #shorthand
20 my_plugin2:
21 version: ^0.2.0
22 my_plugin3:
23 class_name: MyPlugin
24 library_uri: myplugin/myplugin.dart
25 path: '/u/disk/src/'
26 ''';
27 var config = parseConfig(optionsSrc);
28 var plugins = pluginsSortedByName(config.plugins);
29 expect(plugins, hasLength(3));
30 expect(plugins[0].name, equals('my_plugin1'));
31 expect(plugins[0].version, equals('^0.1.0'));
32 expect(plugins[1].name, equals('my_plugin2'));
33 expect(plugins[1].version, equals('^0.2.0'));
34 expect(plugins[2].name, equals('my_plugin3'));
35 expect(plugins[2].version, isNull);
36 expect(plugins[2].path, equals('/u/disk/src/'));
37 expect(plugins[2].libraryUri, equals('myplugin/myplugin.dart'));
38 expect(plugins[2].className, equals('MyPlugin'));
39 });
40
41 test('plugin map (empty)', () {
42 const optionsSrc = '''
43 analyzer:
44 plugins:
45 # my_plugin1: ^0.1.0 #shorthand
46 ''';
47 var config = parseConfig(optionsSrc);
48 // Commented out plugins shouldn't cause a parse failure.
49 expect(config.plugins, hasLength(0));
50 });
51
52 test('plugin manifest', () {
53 const manifestSrc = '''
54 class_name: AnalyzerPlugin
55 library_uri: myplugin/analyzer_plugin.dart
56 contributes_to: analyzer
57 ''';
58 var manifest = parsePluginManifestString(manifestSrc);
59 var plugin = manifest.plugin;
60 expect(plugin.libraryUri, equals('myplugin/analyzer_plugin.dart'));
61 expect(plugin.className, equals('AnalyzerPlugin'));
62 expect(manifest.contributesTo, unorderedEquals(['analyzer']));
63 });
64
65 test('plugin manifest (contributes_to list)', () {
66 const manifestSrc = '''
67 class_name: AnalyzerPlugin
68 library_uri: myplugin/analyzer_plugin.dart
69 contributes_to:
70 - analyzer
71 - analysis_server
72 ''';
73 var manifest = parsePluginManifestString(manifestSrc);
74 var plugin = manifest.plugin;
75 expect(plugin.libraryUri, equals('myplugin/analyzer_plugin.dart'));
76 expect(plugin.className, equals('AnalyzerPlugin'));
77 expect(manifest.contributesTo,
78 unorderedEquals(['analyzer', 'analysis_server']));
79 });
80
81 group('errors', () {
82 test('bad config format', () {
83 const optionsSrc = '''
84 analyzer:
85 plugins:
86 - my_plugin1
87 - my_plugin2
88 ''';
89 try {
90 parseConfig(optionsSrc);
91 fail('expected PluginConfigFormatException');
92 } on PluginConfigFormatException catch (e) {
93 expect(
94 e.message,
95 equals(
96 'Unrecognized plugin config format, expected `YamlMap`, got `YamlList`'));
97 expect(e.yamlNode, new isInstanceOf<YamlList>());
98 }
99 });
100 test('bad manifest format', () {
101 const manifestSource = '''
102 library_uri:
103 - should be a scalar uri
104 ''';
105 try {
106 parsePluginManifestString(manifestSource);
107 fail('expected PluginConfigFormatException');
108 } on PluginConfigFormatException catch (e) {
109 expect(
110 e.message,
111 equals(
112 'Unable to parse pugin manifest, expected `String`, got `Yam lList`'));
113 expect(e.yamlNode, new isInstanceOf<YamlList>());
114 }
115 });
116 });
117 });
118 });
119 }
120
121 PluginConfig parseConfig(String optionsSrc) {
122 var options = new AnalysisOptionsProvider().getOptionsFromString(optionsSrc);
123 return new PluginConfig.fromOptions(options);
124 }
125
126 List<PluginInfo> pluginsSortedByName(Iterable<PluginInfo> plugins) =>
127 plugins.toList()..sort((p1, p2) => p1.name.compareTo(p2.name));
OLDNEW
« no previous file with comments | « pkg/analyzer/test/src/context/builder_test.dart ('k') | pkg/analyzer/test/src/task/options_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698