Add tests for ApplicationInfo.publicSourceDir of APEX packages
Test: atest PackageManagerTest
Test: atest CtsStagedInstallHostTestCases
Bug: 154635217
Change-Id: Id68b908f0631d473df331b9eeabf5f055b7ab016
diff --git a/hostsidetests/stagedinstall/app/src/com/android/tests/stagedinstall/StagedInstallTest.java b/hostsidetests/stagedinstall/app/src/com/android/tests/stagedinstall/StagedInstallTest.java
index 89169a9..4cd8733 100644
--- a/hostsidetests/stagedinstall/app/src/com/android/tests/stagedinstall/StagedInstallTest.java
+++ b/hostsidetests/stagedinstall/app/src/com/android/tests/stagedinstall/StagedInstallTest.java
@@ -979,6 +979,9 @@
assertThat(shim.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM).isEqualTo(0);
assertThat(shim.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED).isEqualTo(
ApplicationInfo.FLAG_INSTALLED);
+ assertThat(shim.applicationInfo.sourceDir)
+ .isEqualTo("/data/apex/active/com.android.apex.cts.shim@1.apex");
+ assertThat(shim.applicationInfo.publicSourceDir).isEqualTo(shim.applicationInfo.sourceDir);
}
@Test
diff --git a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
index 0463ced..54a513f 100644
--- a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
+++ b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
@@ -35,6 +35,7 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
import android.content.ComponentName;
import android.content.Intent;
@@ -979,6 +980,19 @@
assertWithMessage("Shim apex wasn't supposed to be found").that(shimApex).isEmpty();
}
+ @Test
+ public void testGetApplicationInfo_ApexSupported_MatchesApex() throws Exception {
+ assumeTrue("Device doesn't support updating APEX", isUpdatingApexSupported());
+
+ ApplicationInfo ai = mPackageManager.getApplicationInfo(
+ SHIM_APEX_PACKAGE_NAME, PackageManager.MATCH_APEX);
+ assertThat(ai.sourceDir).isEqualTo("/system/apex/com.android.apex.cts.shim.apex");
+ assertThat(ai.publicSourceDir).isEqualTo(ai.sourceDir);
+ assertThat(ai.flags & ApplicationInfo.FLAG_SYSTEM).isEqualTo(ApplicationInfo.FLAG_SYSTEM);
+ assertThat(ai.flags & ApplicationInfo.FLAG_INSTALLED)
+ .isEqualTo(ApplicationInfo.FLAG_INSTALLED);
+ }
+
private boolean isUpdatingApexSupported() {
return SystemProperties.getBoolean("ro.apex.updatable", false);
}
@@ -989,6 +1003,8 @@
assertThat(packageInfo.isApex).isTrue();
assertThat(packageInfo.applicationInfo.sourceDir).isEqualTo(
"/system/apex/com.android.apex.cts.shim.apex");
+ assertThat(packageInfo.applicationInfo.publicSourceDir)
+ .isEqualTo(packageInfo.applicationInfo.sourceDir);
// Verify that legacy mechanism for handling signatures is supported.
Signature[] pastSigningCertificates =
packageInfo.signingInfo.getSigningCertificateHistory();