Fall-back to platform tools in Android SDK detection logic. (#28863)
diff --git a/packages/flutter_tools/test/application_package_test.dart b/packages/flutter_tools/test/application_package_test.dart
index 099e8a2..ff660ad 100644
--- a/packages/flutter_tools/test/application_package_test.dart
+++ b/packages/flutter_tools/test/application_package_test.dart
@@ -65,6 +65,34 @@
).path)..createSync(recursive: true);
});
+ testUsingContext('Licenses not available, platform and buildtools available, apk exists', () async {
+ const String aaptPath = 'aaptPath';
+ final File apkFile = fs.file('app.apk');
+ final AndroidSdkVersion sdkVersion = MockitoAndroidSdkVersion();
+ when(sdkVersion.aaptPath).thenReturn(aaptPath);
+ when(sdk.latestVersion).thenReturn(sdkVersion);
+ when(sdk.platformToolsAvailable).thenReturn(true);
+ when(sdk.licensesAvailable).thenReturn(false);
+ when(mockProcessManager.runSync(
+ argThat(equals(<String>[
+ aaptPath,
+ 'dump',
+ 'xmltree',
+ apkFile.path,
+ 'AndroidManifest.xml',
+ ])),
+ workingDirectory: anyNamed('workingDirectory'),
+ environment: anyNamed('environment'),
+ ),
+ ).thenReturn(ProcessResult(0, 0, _aaptDataWithDefaultEnabledAndMainLauncherActivity, null));
+
+ final ApplicationPackage applicationPackage = await ApplicationPackageFactory.instance.getPackageForPlatform(
+ TargetPlatform.android_arm,
+ applicationBinary: apkFile,
+ );
+ expect(applicationPackage.name, 'app.apk');
+ }, overrides: overrides);
+
testUsingContext('Licenses available, build tools not, apk exists', () async {
when(sdk.latestVersion).thenReturn(null);
final FlutterProject project = await FlutterProject.current();