diff --git a/AUTHORS b/AUTHORS index 83d76c75e4..e0972f1e85 100644 --- a/AUTHORS +++ b/AUTHORS @@ -48,3 +48,4 @@ Rody Davis Jr Robin Jespersen Jefferson Quesado Mark Diener +Alek Åström diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index 162b1c4c88..f4289a7652 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart @@ -74,7 +74,7 @@ class Plugin { ) { final List errors = validatePluginYaml(pluginYaml); if (errors.isNotEmpty) { - throwToolExit('Invalid plugin specification.\n${errors.join('\n')}'); + throwToolExit('Invalid plugin specification $name.\n${errors.join('\n')}'); } if (pluginYaml != null && pluginYaml['platforms'] != null) { return Plugin._fromMultiPlatformYaml(name, path, pluginYaml, dependencies); @@ -89,11 +89,11 @@ class Plugin { List dependencies, ) { assert (pluginYaml != null && pluginYaml['platforms'] != null, - 'Invalid multi-platform plugin specification.'); + 'Invalid multi-platform plugin specification $name.'); final YamlMap platformsYaml = pluginYaml['platforms'] as YamlMap; assert (_validateMultiPlatformYaml(platformsYaml).isEmpty, - 'Invalid multi-platform plugin specification.'); + 'Invalid multi-platform plugin specification $name.'); final Map platforms = {}; diff --git a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart index 49942e68d0..540d0295e3 100644 --- a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart +++ b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart @@ -122,6 +122,19 @@ void main() { expect(windowsPlugin.pluginClass, 'WinSamplePlugin'); }); + test('Legacy Format and Multi-Platform Format together is not allowed and error message contains plugin name', () { + const String pluginYamlRaw = 'androidPackage: com.flutter.dev\n' + 'platforms:\n' + ' android:\n' + ' package: com.flutter.dev\n'; + + final YamlMap pluginYaml = loadYaml(pluginYamlRaw) as YamlMap; + expect( + () => Plugin.fromYaml(_kTestPluginName, _kTestPluginPath, pluginYaml, const []), + throwsToolExit(message: _kTestPluginName), + ); + }); + test('A default_package field is allowed', () { const String pluginYamlRaw = 'platforms:\n'