mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
Let the tool warn about all old API plugins (#48282)
This commit is contained in:
parent
e1812c8219
commit
9eb9ea0ffa
|
@ -497,7 +497,6 @@ Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin>
|
|||
'following https://flutter.dev/go/android-plugin-migration.'
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
templateContent = _androidPluginRegistryTemplateNewEmbedding;
|
||||
|
|
|
@ -129,7 +129,7 @@ flutter:
|
|||
);
|
||||
}
|
||||
|
||||
void createOldJavaPlugin3() {
|
||||
void createOldJavaPlugin(String pluginName) {
|
||||
final Directory pluginUsingOldEmbeddingDir =
|
||||
fs.systemTempDirectory.createTempSync('flutter_plugin_using_old_embedding_dir.');
|
||||
pluginUsingOldEmbeddingDir
|
||||
|
@ -137,7 +137,7 @@ flutter:
|
|||
.writeAsStringSync('''
|
||||
flutter:
|
||||
plugin:
|
||||
androidPackage: plugin3
|
||||
androidPackage: $pluginName
|
||||
pluginClass: UseOldEmbedding
|
||||
''');
|
||||
pluginUsingOldEmbeddingDir
|
||||
|
@ -145,14 +145,14 @@ flutter:
|
|||
.childDirectory('src')
|
||||
.childDirectory('main')
|
||||
.childDirectory('java')
|
||||
.childDirectory('plugin3')
|
||||
.childDirectory(pluginName)
|
||||
.childFile('UseOldEmbedding.java')
|
||||
..createSync(recursive: true);
|
||||
|
||||
flutterProject.directory
|
||||
.childFile('.packages')
|
||||
.writeAsStringSync(
|
||||
'plugin3:${pluginUsingOldEmbeddingDir.childDirectory('lib').uri.toString()}\n',
|
||||
'$pluginName:${pluginUsingOldEmbeddingDir.childDirectory('lib').uri.toString()}\n',
|
||||
mode: FileMode.append,
|
||||
);
|
||||
}
|
||||
|
@ -379,7 +379,7 @@ dependencies:
|
|||
|
||||
createNewJavaPlugin1();
|
||||
createNewKotlinPlugin2();
|
||||
createOldJavaPlugin3();
|
||||
createOldJavaPlugin('plugin3');
|
||||
|
||||
await injectPlugins(flutterProject);
|
||||
|
||||
|
@ -497,7 +497,7 @@ dependencies:
|
|||
when(flutterProject.isModule).thenReturn(true);
|
||||
when(androidProject.getEmbeddingVersion()).thenReturn(AndroidEmbeddingVersion.v2);
|
||||
|
||||
createOldJavaPlugin3();
|
||||
createOldJavaPlugin('plugin3');
|
||||
|
||||
await injectPlugins(flutterProject);
|
||||
|
||||
|
@ -558,6 +558,31 @@ dependencies:
|
|||
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
||||
});
|
||||
|
||||
testUsingContext('Module using multiple old plugins all show warnings', () async {
|
||||
when(flutterProject.isModule).thenReturn(true);
|
||||
when(androidProject.getEmbeddingVersion()).thenReturn(AndroidEmbeddingVersion.v2);
|
||||
|
||||
createOldJavaPlugin('plugin3');
|
||||
createOldJavaPlugin('plugin4');
|
||||
|
||||
await injectPlugins(flutterProject);
|
||||
|
||||
final File registrant = flutterProject.directory
|
||||
.childDirectory(fs.path.join('android', 'app', 'src', 'main', 'java', 'io', 'flutter', 'plugins'))
|
||||
.childFile('GeneratedPluginRegistrant.java');
|
||||
expect(registrant.readAsStringSync(),
|
||||
contains('plugin3.UseOldEmbedding.registerWith(shimPluginRegistry.registrarFor("plugin3.UseOldEmbedding"));'));
|
||||
expect(registrant.readAsStringSync(),
|
||||
contains('plugin4.UseOldEmbedding.registerWith(shimPluginRegistry.registrarFor("plugin4.UseOldEmbedding"));'));
|
||||
expect(testLogger.statusText, contains('The plugin `plugin3` is built using an older version of the Android plugin API'));
|
||||
expect(testLogger.statusText, contains('The plugin `plugin4` is built using an older version of the Android plugin API'));
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => fs,
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
FeatureFlags: () => featureFlags,
|
||||
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
||||
});
|
||||
|
||||
testUsingContext('Does not throw when AndroidManifest.xml is not found', () async {
|
||||
when(flutterProject.isModule).thenReturn(false);
|
||||
|
||||
|
|
Loading…
Reference in a new issue