diff options
17 files changed, 118 insertions, 91 deletions
diff --git a/PermissionController/WEAR_OWNERS b/PermissionController/WEAR_OWNERS index da9486f1c..c8fabba56 100644 --- a/PermissionController/WEAR_OWNERS +++ b/PermissionController/WEAR_OWNERS @@ -1,3 +1,4 @@ adsule@google.com sadrul@google.com youngjoonyang@google.com +vigneshrsastra@google.com diff --git a/SafetyCenter/Resources/Android.bp b/SafetyCenter/Resources/Android.bp index a10ea7f1a..f485172f4 100644 --- a/SafetyCenter/Resources/Android.bp +++ b/SafetyCenter/Resources/Android.bp @@ -49,6 +49,7 @@ android_app { static_libs: [ "SafetyCenterResourcesShared", ], + updatable: true, } android_app_certificate { diff --git a/tests/cts/permission/AndroidManifest.xml b/tests/cts/permission/AndroidManifest.xml index 43fd97bb2..bb027b5f2 100644 --- a/tests/cts/permission/AndroidManifest.xml +++ b/tests/cts/permission/AndroidManifest.xml @@ -51,6 +51,9 @@ android:label="@string/perm_group_c" android:name="android.permission.cts.groupC"/> + <!-- for android.permission.cts.DevicePermissionsTest --> + <uses-permission android:name="android.permission.CREATE_VIRTUAL_DEVICE"/> + <uses-permission android:name="android.permission.INJECT_EVENTS"/> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> <application> diff --git a/tests/cts/permission/src/android/permission/cts/DevicePermissionsTest.kt b/tests/cts/permission/src/android/permission/cts/DevicePermissionsTest.kt index dbda1f5e1..ff333c6a0 100644 --- a/tests/cts/permission/src/android/permission/cts/DevicePermissionsTest.kt +++ b/tests/cts/permission/src/android/permission/cts/DevicePermissionsTest.kt @@ -20,10 +20,8 @@ import android.Manifest import android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND import android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND_SERVICE import android.app.Instrumentation -import android.companion.virtual.VirtualDeviceManager import android.companion.virtual.VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT import android.companion.virtual.VirtualDeviceManager.VirtualDevice -import android.companion.virtual.VirtualDeviceParams import android.content.Context import android.content.Intent import android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME @@ -40,17 +38,15 @@ import android.platform.test.annotations.AppModeFull import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.DeviceFlagsValueProvider -import android.virtualdevice.cts.common.FakeAssociationRule +import android.virtualdevice.cts.common.VirtualDeviceRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SdkSuppress import androidx.test.platform.app.InstrumentationRegistry -import com.android.compatibility.common.util.AdoptShellPermissionsRule import com.android.compatibility.common.util.SystemUtil.eventually import com.android.compatibility.common.util.SystemUtil.runShellCommandOrThrow import com.android.compatibility.common.util.SystemUtil.waitForBroadcasts import com.google.common.truth.Truth.assertThat import org.junit.After -import org.junit.Assume.assumeNotNull import org.junit.Before import org.junit.Rule import org.junit.Test @@ -69,13 +65,8 @@ class DevicePermissionsTest { private lateinit var permissionManager: PermissionManager - @get:Rule var mFakeAssociationRule = FakeAssociationRule() - @get:Rule - val mAdoptShellPermissionsRule = - AdoptShellPermissionsRule( - instrumentation.uiAutomation, - Manifest.permission.CREATE_VIRTUAL_DEVICE, + var mVirtualDeviceRule = VirtualDeviceRule.withAdditionalPermissions( Manifest.permission.GRANT_RUNTIME_PERMISSIONS, Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS, Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, @@ -86,14 +77,7 @@ class DevicePermissionsTest { @Before fun setup() { - val virtualDeviceManager = - defaultDeviceContext.getSystemService(VirtualDeviceManager::class.java) - assumeNotNull(virtualDeviceManager) - virtualDevice = - virtualDeviceManager!!.createVirtualDevice( - mFakeAssociationRule.getAssociationInfo().getId(), - VirtualDeviceParams.Builder().build() - ) + virtualDevice = mVirtualDeviceRule.createManagedVirtualDevice() virtualDeviceContext = defaultDeviceContext.createDeviceContext(virtualDevice.deviceId) permissionManager = virtualDeviceContext.getSystemService(PermissionManager::class.java)!! persistentDeviceId = virtualDevice.persistentDeviceId!! @@ -103,9 +87,6 @@ class DevicePermissionsTest { @After fun cleanup() { runShellCommandOrThrow("pm uninstall $TEST_PACKAGE_NAME") - if (this::virtualDevice.isInitialized) { - virtualDevice.close() - } } @RequiresFlagsEnabled( @@ -226,7 +207,7 @@ class DevicePermissionsTest { permissionManager.checkPermission( deviceAwarePermission, TEST_PACKAGE_NAME, - VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT + PERSISTENT_DEVICE_ID_DEFAULT ) ) .isEqualTo(PERMISSION_DENIED) diff --git a/tests/cts/permission/src/android/permission/cts/NoWifiStatePermissionTest.java b/tests/cts/permission/src/android/permission/cts/NoWifiStatePermissionTest.java index 9fff22747..a0637827c 100644 --- a/tests/cts/permission/src/android/permission/cts/NoWifiStatePermissionTest.java +++ b/tests/cts/permission/src/android/permission/cts/NoWifiStatePermissionTest.java @@ -30,6 +30,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import androidx.test.platform.app.InstrumentationRegistry; +import com.android.compatibility.common.util.UserHelper; + +import org.junit.Assume; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -214,6 +217,11 @@ public class NoWifiStatePermissionTest { */ @Test(expected = SecurityException.class) public void testSetWifiEnabled() { + // Skip the test for passenger on Multi-user-multi-display devices for Automotive + UserHelper userHelper = new UserHelper(sContext); + Assume.assumeFalse( + "Skipped for visible background User as wifi is disabled for visible background " + + "user.", userHelper.isVisibleBackgroundUser()); mWifiManager.setWifiEnabled(true); } } diff --git a/tests/cts/permission/src/android/permission/cts/PermissionUpdateListenerTest.java b/tests/cts/permission/src/android/permission/cts/PermissionUpdateListenerTest.java index e9e71af20..4325ace79 100644 --- a/tests/cts/permission/src/android/permission/cts/PermissionUpdateListenerTest.java +++ b/tests/cts/permission/src/android/permission/cts/PermissionUpdateListenerTest.java @@ -22,10 +22,8 @@ import static com.android.compatibility.common.util.SystemUtil.runWithShellPermi import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assume.assumeNotNull; - import android.companion.virtual.VirtualDeviceManager; -import android.companion.virtual.VirtualDeviceParams; +import android.companion.virtual.VirtualDeviceManager.VirtualDevice; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.PackageManager.OnPermissionsChangedListener; @@ -34,12 +32,11 @@ import android.platform.test.annotations.AppModeFull; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; -import android.virtualdevice.cts.common.FakeAssociationRule; +import android.virtualdevice.cts.common.VirtualDeviceRule; import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner; import androidx.test.platform.app.InstrumentationRegistry; -import com.android.compatibility.common.util.AdoptShellPermissionsRule; import com.android.compatibility.common.util.SystemUtil; import org.junit.After; @@ -71,15 +68,8 @@ public class PermissionUpdateListenerTest { private int mTestAppUid; - private VirtualDeviceManager mVirtualDeviceManager; - - @Rule - public FakeAssociationRule mFakeAssociationRule = new FakeAssociationRule(); - @Rule - public AdoptShellPermissionsRule mAdoptShellPermissionsRule = new AdoptShellPermissionsRule( - InstrumentationRegistry.getInstrumentation().getUiAutomation(), - android.Manifest.permission.CREATE_VIRTUAL_DEVICE); + public VirtualDeviceRule mVirtualDeviceRule = VirtualDeviceRule.createDefault(); @Rule public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); @@ -92,7 +82,6 @@ public class PermissionUpdateListenerTest { SystemUtil.waitForBroadcasts(); Thread.sleep(1000); mTestAppUid = mPackageManager.getPackageUid(PACKAGE_NAME, 0); - mVirtualDeviceManager = mDefaultContext.getSystemService(VirtualDeviceManager.class); } @After @@ -127,11 +116,7 @@ public class PermissionUpdateListenerTest { @RequiresFlagsEnabled({Flags.FLAG_DEVICE_AWARE_PERMISSION_APIS_ENABLED, Flags.FLAG_DEVICE_AWARE_PERMISSIONS_ENABLED}) public void testVirtualDeviceGrantPermissionNotifyListener() throws InterruptedException { - assumeNotNull(mVirtualDeviceManager); - VirtualDeviceManager.VirtualDevice virtualDevice = - mVirtualDeviceManager.createVirtualDevice( - mFakeAssociationRule.getAssociationInfo().getId(), - new VirtualDeviceParams.Builder().build()); + VirtualDevice virtualDevice = mVirtualDeviceRule.createManagedVirtualDevice(); Context deviceContext = mDefaultContext.createDeviceContext(virtualDevice.getDeviceId()); testGrantPermissionNotifyListener(deviceContext, virtualDevice.getPersistentDeviceId()); } @@ -172,11 +157,7 @@ public class PermissionUpdateListenerTest { @RequiresFlagsEnabled({Flags.FLAG_DEVICE_AWARE_PERMISSION_APIS_ENABLED, Flags.FLAG_DEVICE_AWARE_PERMISSIONS_ENABLED}) public void testVirtualDeviceRevokePermissionNotifyListener() throws InterruptedException { - assumeNotNull(mVirtualDeviceManager); - VirtualDeviceManager.VirtualDevice virtualDevice = - mVirtualDeviceManager.createVirtualDevice( - mFakeAssociationRule.getAssociationInfo().getId(), - new VirtualDeviceParams.Builder().build()); + VirtualDevice virtualDevice = mVirtualDeviceRule.createManagedVirtualDevice(); Context deviceContext = mDefaultContext.createDeviceContext(virtualDevice.getDeviceId()); testRevokePermissionNotifyListener( deviceContext, virtualDevice.getPersistentDeviceId()); @@ -213,11 +194,7 @@ public class PermissionUpdateListenerTest { @RequiresFlagsEnabled({Flags.FLAG_DEVICE_AWARE_PERMISSION_APIS_ENABLED, Flags.FLAG_DEVICE_AWARE_PERMISSIONS_ENABLED}) public void testVirtualDeviceUpdatePermissionFlagsNotifyListener() throws InterruptedException { - assumeNotNull(mVirtualDeviceManager); - VirtualDeviceManager.VirtualDevice virtualDevice = - mVirtualDeviceManager.createVirtualDevice( - mFakeAssociationRule.getAssociationInfo().getId(), - new VirtualDeviceParams.Builder().build()); + VirtualDevice virtualDevice = mVirtualDeviceRule.createManagedVirtualDevice(); Context deviceContext = mDefaultContext.createDeviceContext(virtualDevice.getDeviceId()); testUpdatePermissionFlagsNotifyListener( deviceContext, virtualDevice.getPersistentDeviceId()); diff --git a/tests/cts/permissionmultidevice/AndroidManifest.xml b/tests/cts/permissionmultidevice/AndroidManifest.xml index 9bad85813..7d04d140e 100644 --- a/tests/cts/permissionmultidevice/AndroidManifest.xml +++ b/tests/cts/permissionmultidevice/AndroidManifest.xml @@ -24,6 +24,8 @@ <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> + <uses-permission android:name="android.permission.CREATE_VIRTUAL_DEVICE" /> + <uses-permission android:name="android.permission.ADD_TRUSTED_DISPLAY" /> <application> <uses-library android:name="android.test.runner" /> diff --git a/tests/cts/permissionmultidevice/src/android/permissionmultidevice/cts/AppPermissionsTest.kt b/tests/cts/permissionmultidevice/src/android/permissionmultidevice/cts/AppPermissionsTest.kt index 7ecc51ded..c42d44da5 100644 --- a/tests/cts/permissionmultidevice/src/android/permissionmultidevice/cts/AppPermissionsTest.kt +++ b/tests/cts/permissionmultidevice/src/android/permissionmultidevice/cts/AppPermissionsTest.kt @@ -62,7 +62,6 @@ class AppPermissionsTest { Manifest.permission.GRANT_RUNTIME_PERMISSIONS, Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS, Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, - Manifest.permission.CREATE_VIRTUAL_DEVICE ) private lateinit var persistentDeviceId: String diff --git a/tests/cts/permissionui/src/android/permissionui/cts/PermissionReviewTapjackingTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/PermissionReviewTapjackingTest.kt index cdfe0423a..341857e39 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/PermissionReviewTapjackingTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/PermissionReviewTapjackingTest.kt @@ -44,7 +44,7 @@ class PermissionReviewTapjackingTest : BaseUsePermissionTest() { installPackage(APP_APK_PATH_22) installPackage(HELPER_APP_OVERLAY) - Thread.sleep(1000) + SystemUtil.waitForBroadcasts() SystemUtil.runShellCommandOrThrow( "appops set $HELPER_PACKAGE_NAME android:system_alert_window allow" diff --git a/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt index 03151c9fe..e434e9c70 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt @@ -23,6 +23,7 @@ import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.platform.test.annotations.AppModeFull +import android.provider.Settings import androidx.test.filters.FlakyTest import androidx.test.platform.app.InstrumentationRegistry import androidx.test.runner.AndroidJUnit4 @@ -36,9 +37,11 @@ import com.android.compatibility.common.util.SystemUtil import com.android.compatibility.common.util.UiAutomatorUtils2.waitFindObjectOrNull import java.util.regex.Pattern import org.junit.After +import org.junit.AfterClass import org.junit.Assert.assertEquals import org.junit.Assume import org.junit.Before +import org.junit.BeforeClass import org.junit.Ignore import org.junit.Rule import org.junit.Test @@ -49,15 +52,41 @@ import org.junit.runner.RunWith @FlakyTest class ReviewAccessibilityServicesTest { - private val context: Context = InstrumentationRegistry.getInstrumentation().context private val uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) private val testService1String = context.getString(R.string.test_accessibility_service) private val testService2String = context.getString(R.string.test_accessibility_service_2) private val packageName = context.packageManager.permissionControllerPackageName companion object { + private val context: Context = InstrumentationRegistry.getInstrumentation().context + private var enabledA11yServices: String? = null private const val EXPECTED_TIMEOUT_MS = 500L private const val NEW_WINDOW_TIMEOUT_MILLIS: Long = 20_000 + + @BeforeClass + @JvmStatic + fun disableServices() { + enabledA11yServices = + Settings.Secure.getString( + context.contentResolver, + Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, + ) + if (enabledA11yServices != null) { + InstrumentedAccessibilityService.disableAllServices() + } + } + + @AfterClass + @JvmStatic + fun reenableServices() { + if (enabledA11yServices != null) { + SystemUtil.runShellCommand( + "settings put secure ${Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES} " + + enabledA11yServices + ) + enabledA11yServices = null + } + } } @get:Rule diff --git a/tests/cts/role/Android.bp b/tests/cts/role/Android.bp index e392109db..f0095b7dd 100644 --- a/tests/cts/role/Android.bp +++ b/tests/cts/role/Android.bp @@ -48,6 +48,6 @@ android_test { ":CtsRoleTestApp", ":CtsRoleTestApp28", ":CtsRoleTestApp33WithoutInCallService", - ":CtsRoleTestAppForProfile", + ":CtsRoleTestAppClone", ], } diff --git a/tests/cts/role/AndroidTest.xml b/tests/cts/role/AndroidTest.xml index a53fa62d0..bfdcf2829 100644 --- a/tests/cts/role/AndroidTest.xml +++ b/tests/cts/role/AndroidTest.xml @@ -42,7 +42,7 @@ <option name="push" value="CtsRoleTestApp.apk->/data/local/tmp/cts-role/CtsRoleTestApp.apk" /> <option name="push" value="CtsRoleTestApp28.apk->/data/local/tmp/cts-role/CtsRoleTestApp28.apk" /> <option name="push" value="CtsRoleTestApp33WithoutInCallService.apk->/data/local/tmp/cts-role/CtsRoleTestApp33WithoutInCallService.apk" /> - <option name="push" value="CtsRoleTestAppForProfile.apk->/data/local/tmp/cts-role/CtsRoleTestAppForProfile.apk" /> + <option name="push" value="CtsRoleTestAppClone.apk->/data/local/tmp/cts-role/CtsRoleTestAppClone.apk" /> </target_preparer> <test class="com.android.tradefed.testtype.AndroidJUnitTest" > diff --git a/tests/cts/role/CtsRoleTestAppForProfile/Android.bp b/tests/cts/role/CtsRoleTestAppClone/Android.bp index 1d9a1e6e8..0ac48da8b 100644 --- a/tests/cts/role/CtsRoleTestAppForProfile/Android.bp +++ b/tests/cts/role/CtsRoleTestAppClone/Android.bp @@ -17,7 +17,7 @@ package { } android_test_helper_app { - name: "CtsRoleTestAppForProfile", + name: "CtsRoleTestAppClone", defaults: ["mts-target-sdk-version-current"], min_sdk_version: "30", } diff --git a/tests/cts/role/CtsRoleTestAppForProfile/AndroidManifest.xml b/tests/cts/role/CtsRoleTestAppClone/AndroidManifest.xml index 05413e55f..f45ab359b 100644 --- a/tests/cts/role/CtsRoleTestAppForProfile/AndroidManifest.xml +++ b/tests/cts/role/CtsRoleTestAppClone/AndroidManifest.xml @@ -18,9 +18,9 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="android.app.role.cts.appForProfile"> + package="android.app.role.cts.appClone"> - <application android:label="CtsRoleTestAppForProfile"> + <application android:label="CtsRoleTestAppClone"> <!-- Browser --> <activity android:name=".BrowserActivity" diff --git a/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java b/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java index b64de5665..e31659dbc 100644 --- a/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java +++ b/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java @@ -108,10 +108,10 @@ public class RoleManagerTest { private static final String APP_APK_PATH = "/data/local/tmp/cts-role/CtsRoleTestApp.apk"; private static final String APP_PACKAGE_NAME = "android.app.role.cts.app"; private static final String APP_LABEL = "CtsRoleTestApp"; - private static final String APP_FOR_PROFILE_APK_PATH = - "/data/local/tmp/cts-role/CtsRoleTestAppForProfile.apk"; - private static final String APP_FOR_PROFILE_PACKAGE_NAME = "android.app.role.cts.appForProfile"; - private static final String APP_FOR_PROFILE = "CtsRoleTestAppForProfile"; + private static final String APP_CLONE_APK_PATH = + "/data/local/tmp/cts-role/CtsRoleTestAppClone.apk"; + private static final String APP_CLONE_PACKAGE_NAME = "android.app.role.cts.appClone"; + private static final String APP_CLONE = "CtsRoleTestAppClone"; private static final String APP_IS_ROLE_HELD_ACTIVITY_NAME = APP_PACKAGE_NAME + ".IsRoleHeldActivity"; private static final String APP_IS_ROLE_HELD_EXTRA_IS_ROLE_HELD = APP_PACKAGE_NAME @@ -183,7 +183,20 @@ public class RoleManagerTest { private String mRoleHolder; @Before - public void saveRoleHolder() throws Exception { + public void setUp() throws Exception { + saveRoleHolder(); + installApp(); + wakeUpScreen(); + closeNotificationShade(); + } + + @After + public void tearDown() throws Exception { + uninstallApp(); + restoreRoleHolder(); + } + + private void saveRoleHolder() throws Exception { List<String> roleHolders = getRoleHolders(ROLE_NAME); mRoleHolder = !roleHolders.isEmpty() ? roleHolders.get(0) : null; @@ -193,8 +206,7 @@ public class RoleManagerTest { } } - @After - public void restoreRoleHolder() throws Exception { + private void restoreRoleHolder() throws Exception { removeRoleHolder(ROLE_NAME, APP_PACKAGE_NAME); if (mRoleHolder != null) { @@ -204,27 +216,27 @@ public class RoleManagerTest { assertIsRoleHolder(ROLE_NAME, APP_PACKAGE_NAME, false); } - @Before - public void installApp() throws Exception { + private void installApp() throws Exception { installPackage(APP_APK_PATH); installPackage(APP_28_APK_PATH); installPackage(APP_33_WITHOUT_INCALLSERVICE_APK_PATH); + // Install CtsRoleTestAppClone as default role holder for browser role + // in case no browser is installed on system + installPackage(APP_CLONE_APK_PATH); } - @After - public void uninstallApp() throws Exception { + private void uninstallApp() throws Exception { uninstallPackage(APP_PACKAGE_NAME); uninstallPackage(APP_28_PACKAGE_NAME); uninstallPackage(APP_33_WITHOUT_INCALLSERVICE_PACKAGE_NAME); + uninstallPackage(APP_CLONE_PACKAGE_NAME); } - @Before - public void wakeUpScreen() throws IOException { + private void wakeUpScreen() throws IOException { runShellCommand(sInstrumentation, "input keyevent KEYCODE_WAKEUP"); } - @Before - public void closeNotificationShade() { + private void closeNotificationShade() { sContext.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } @@ -855,15 +867,15 @@ public class RoleManagerTest { UserHandle privateProfile = sDeviceState.privateProfile().userHandle(); assertThat(privateProfile).isNotNull(); installPackage(APP_APK_PATH, privateProfile); - installPackage(APP_FOR_PROFILE_APK_PATH, privateProfile); - addRoleHolderAsUser(ROLE_NAME, APP_FOR_PROFILE_PACKAGE_NAME, privateProfile); + installPackage(APP_CLONE_APK_PATH, privateProfile); + addRoleHolderAsUser(ROLE_NAME, APP_CLONE_PACKAGE_NAME, privateProfile); sContext.startActivity(new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS) .addCategory(Intent.CATEGORY_DEFAULT) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)); waitForIdle(); - waitFindObject(By.hasDescendant(By.text(APP_FOR_PROFILE))).click(); + waitFindObject(By.hasDescendant(By.text(APP_CLONE))).click(); waitForIdle(); waitFindObject(By.clickable(true).hasDescendant(By.checkable(true).checked(false)) @@ -877,7 +889,7 @@ public class RoleManagerTest { pressBack(); uninstallPackage(APP_PACKAGE_NAME, privateProfile); - uninstallPackage(APP_FOR_PROFILE_APK_PATH, privateProfile); + uninstallPackage(APP_CLONE_PACKAGE_NAME, privateProfile); } @Test diff --git a/tests/cts/role/src/android/app/role/cts/RoleShellCommandTest.kt b/tests/cts/role/src/android/app/role/cts/RoleShellCommandTest.kt index 7e58e1848..83d4f78ad 100644 --- a/tests/cts/role/src/android/app/role/cts/RoleShellCommandTest.kt +++ b/tests/cts/role/src/android/app/role/cts/RoleShellCommandTest.kt @@ -44,7 +44,20 @@ class RoleShellCommandTest { private var wasBypassingRoleQualification: Boolean = false @Before - fun saveRoleHolder() { + public fun setUp() { + saveRoleHolder() + saveBypassingRoleQualification() + installApp() + } + + @After + public fun tearDown() { + uninstallApp() + restoreBypassingRoleQualification() + restoreRoleHolder() + } + + private fun saveRoleHolder() { roleHolder = getRoleHolders().firstOrNull() if (roleHolder == APP_PACKAGE_NAME) { removeRoleHolder() @@ -52,31 +65,30 @@ class RoleShellCommandTest { } } - @Before - fun saveBypassingRoleQualification() { + private fun saveBypassingRoleQualification() { wasBypassingRoleQualification = isBypassingRoleQualification() } - @After - fun restoreRoleHolder() { + private fun restoreRoleHolder() { removeRoleHolder() roleHolder?.let { addRoleHolder(it) } assertIsRoleHolder(false) } - @After - fun restoreBypassingRoleQualification() { + private fun restoreBypassingRoleQualification() { setBypassingRoleQualification(wasBypassingRoleQualification) } - @Before - fun installApp() { + private fun installApp() { installPackage(APP_APK_PATH) + // Install CtsRoleTestAppClone as default role holder for browser role + // in case no browser is installed on system + installPackage(APP_CLONE_APK_PATH) } - @After - fun uninstallApp() { + private fun uninstallApp() { uninstallPackage(APP_PACKAGE_NAME) + uninstallPackage(APP_CLONE_PACKAGE_NAME) } @Test @@ -196,5 +208,7 @@ class RoleShellCommandTest { private const val ROLE_NAME = RoleManager.ROLE_BROWSER private const val APP_APK_PATH = "/data/local/tmp/cts-role/CtsRoleTestApp.apk" private const val APP_PACKAGE_NAME = "android.app.role.cts.app" + private const val APP_CLONE_APK_PATH = "/data/local/tmp/cts-role/CtsRoleTestAppClone.apk" + private const val APP_CLONE_PACKAGE_NAME = "android.app.role.cts.appClone" } } diff --git a/tests/hostside/safetycenter/Android.bp b/tests/hostside/safetycenter/Android.bp index 10258f95b..931dfb719 100644 --- a/tests/hostside/safetycenter/Android.bp +++ b/tests/hostside/safetycenter/Android.bp @@ -33,7 +33,7 @@ java_test_host { static_libs: [ "cts-statsd-atom-host-test-utils", ], - data: [":SafetyCenterHostSideTestsHelper"], + device_common_data: [":SafetyCenterHostSideTestsHelper"], test_suites: [ "general-tests", "mts-permission", |