diff options
3 files changed, 47 insertions, 6 deletions
diff --git a/tests/cts/permission/src/android/permission/cts/AccessibilityPrivacySourceTest.kt b/tests/cts/permission/src/android/permission/cts/AccessibilityPrivacySourceTest.kt index 227fbfb9a..41c0afa07 100644 --- a/tests/cts/permission/src/android/permission/cts/AccessibilityPrivacySourceTest.kt +++ b/tests/cts/permission/src/android/permission/cts/AccessibilityPrivacySourceTest.kt @@ -44,12 +44,14 @@ import androidx.test.filters.SdkSuppress import androidx.test.platform.app.InstrumentationRegistry import androidx.test.runner.AndroidJUnit4 import com.android.compatibility.common.util.DeviceConfigStateChangerRule +import com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity import com.android.compatibility.common.util.SystemUtil.runShellCommand import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity import com.android.modules.utils.build.SdkLevel import org.junit.After import org.junit.Assert import org.junit.Assume +import org.junit.Assume.assumeFalse import org.junit.Before import org.junit.ClassRule import org.junit.Rule @@ -215,6 +217,13 @@ class AccessibilityPrivacySourceTest { @Test fun testJobWithSafetyCenterDisabledDoesNotSendNotification() { setDeviceConfigPrivacyProperty(SAFETY_CENTER_ENABLED, false.toString()) + // Safety Center cannot be disabled at runtime on UDC+. + assumeFalse( + "Safety Center cannot be disabled", + callWithShellPermissionIdentity { + safetyCenterManager?.isSafetyCenterEnabled() ?: false + } + ) mAccessibilityServiceRule.enableService() runJobAndWaitUntilCompleted() assertEmptyNotification(permissionControllerPackage, ACCESSIBILITY_NOTIFICATION_ID) @@ -223,6 +232,13 @@ class AccessibilityPrivacySourceTest { @Test fun testJobWithSafetyCenterDisabledDoesNotSendIssueToSafetyCenter() { setDeviceConfigPrivacyProperty(SAFETY_CENTER_ENABLED, false.toString()) + // Safety Center cannot be disabled at runtime on UDC+. + assumeFalse( + "Safety Center cannot be disabled", + callWithShellPermissionIdentity { + safetyCenterManager?.isSafetyCenterEnabled() ?: false + } + ) mAccessibilityServiceRule.enableService() runJobAndWaitUntilCompleted() assertSafetyCenterIssueDoesNotExist( diff --git a/tests/cts/permission/src/android/permission/cts/SafetyCenterUtils.kt b/tests/cts/permission/src/android/permission/cts/SafetyCenterUtils.kt index 7ca9b138d..c5bdf606d 100644 --- a/tests/cts/permission/src/android/permission/cts/SafetyCenterUtils.kt +++ b/tests/cts/permission/src/android/permission/cts/SafetyCenterUtils.kt @@ -29,12 +29,14 @@ import android.safetycenter.SafetyCenterManager import androidx.annotation.RequiresApi import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.By +import com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity import com.android.compatibility.common.util.UiAutomatorUtils2.waitFindObject import com.android.safetycenter.internaldata.SafetyCenterIds import com.android.safetycenter.internaldata.SafetyCenterIssueId import com.android.safetycenter.internaldata.SafetyCenterIssueKey import org.junit.Assert +import org.junit.Assume.assumeTrue object SafetyCenterUtils { /** Name of the flag that determines whether SafetyCenter is enabled. */ @@ -54,6 +56,14 @@ object SafetyCenterUtils { @JvmStatic fun setSafetyCenterEnabled(enabled: Boolean) { setDeviceConfigPrivacyProperty(PROPERTY_SAFETY_CENTER_ENABLED, enabled.toString()) + val safetyCenterManager = + instrumentation.targetContext.getSystemService(SafetyCenterManager::class.java) + assumeTrue( + "Cannot toggle Safety Center", + callWithShellPermissionIdentity { + safetyCenterManager?.isSafetyCenterEnabled ?: false + } == enabled + ) } @RequiresApi(Build.VERSION_CODES.TIRAMISU) diff --git a/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt index af08e565b..29e6f231b 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt @@ -267,6 +267,7 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase { val manager = context.getSystemService(CameraManager::class.java)!! assumeTrue(manager.cameraIdList.isNotEmpty()) changeSafetyCenterFlag(false.toString()) + assumeSafetyCenterDisabled() testCameraAndMicIndicator(useMic = false, useCamera = true) } @@ -274,20 +275,26 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase { @CddTest(requirement = "9.8.2/H-4-1,T-4-1,A-1-1") fun testMicIndicator() { changeSafetyCenterFlag(false.toString()) + assumeSafetyCenterDisabled() testCameraAndMicIndicator(useMic = true, useCamera = false) } @Test @AsbSecurityTest(cveBugId = [258672042]) fun testMicIndicatorWithManualFinishOpStillShows() { - changeSafetyCenterFlag(false.toString()) - testCameraAndMicIndicator(useMic = true, useCamera = false, finishEarly = true) + testCameraAndMicIndicator( + useMic = true, + useCamera = false, + finishEarly = true, + safetyCenterEnabled = getSafetyCenterEnabled() + ) } @Test @CddTest(requirement = "9.8.2/H-4-1,T-4-1,A-1-1") fun testHotwordIndicatorBehavior() { changeSafetyCenterFlag(false.toString()) + assumeSafetyCenterDisabled() testCameraAndMicIndicator(useMic = false, useCamera = false, useHotword = true) } @@ -302,6 +309,7 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase { // If camera is not available skip the test assumeTrue(packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) changeSafetyCenterFlag(false.toString()) + assumeSafetyCenterDisabled() testCameraAndMicIndicator(useMic = false, useCamera = true, chainUsage = true) } @@ -684,10 +692,17 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase { @RequiresApi(Build.VERSION_CODES.TIRAMISU) private fun assumeSafetyCenterEnabled() { - val safetyCenterManager = context.getSystemService(SafetyCenterManager::class.java)!! - val isSafetyCenterEnabled: Boolean = - runWithShellPermissionIdentity<Boolean> { safetyCenterManager.isSafetyCenterEnabled } - assumeTrue(isSafetyCenterEnabled) + assumeTrue(getSafetyCenterEnabled()) + } + + private fun assumeSafetyCenterDisabled() { + assumeFalse(getSafetyCenterEnabled()) + } + + private fun getSafetyCenterEnabled(): Boolean { + val safetyCenterManager = + context.getSystemService(SafetyCenterManager::class.java) ?: return false + return runWithShellPermissionIdentity<Boolean> { safetyCenterManager.isSafetyCenterEnabled } } protected fun waitFindObject(selector: BySelector): UiObject2? { |