summaryrefslogtreecommitdiff
path: root/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt')
-rw-r--r--tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt95
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt
new file mode 100644
index 000000000..7c5b41944
--- /dev/null
+++ b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/SafetyCenterShellCommandsTest.kt
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.safetycenter.functional
+
+import android.Manifest.permission.INTERACT_ACROSS_USERS
+import android.app.ActivityManager
+import android.content.Context
+import android.safetycenter.SafetyCenterManager
+import androidx.test.core.app.ApplicationProvider.getApplicationContext
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.compatibility.common.util.SystemUtil
+import com.android.safetycenter.testing.SafetyCenterApisWithShellPermissions.isSafetyCenterEnabledWithPermission
+import com.android.safetycenter.testing.ShellPermissions.callWithShellPermissionIdentity
+import com.android.safetycenter.testing.deviceSupportsSafetyCenter
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/** Tests for Safety Center's shell commands. */
+@RunWith(AndroidJUnit4::class)
+class SafetyCenterShellCommandsTest {
+ private val context: Context = getApplicationContext()
+
+ @Test
+ fun enabled_printsEnabledValue() {
+ val enabled = executeShellCommand("cmd safety_center enabled").toBoolean()
+
+ val safetyCenterManager = context.getSystemService(SafetyCenterManager::class.java)!!
+ assertThat(enabled).isEqualTo(safetyCenterManager.isSafetyCenterEnabledWithPermission())
+ }
+
+ @Test
+ fun supported_printsSupportedValue() {
+ val supported = executeShellCommand("cmd safety_center supported").toBoolean()
+
+ assertThat(supported).isEqualTo(context.deviceSupportsSafetyCenter())
+ }
+
+ @Test
+ fun packageName_printsPackageName() {
+ val packageName = executeShellCommand("cmd safety_center package-name")
+
+ assertThat(packageName).isEqualTo(context.packageManager.permissionControllerPackageName)
+ }
+
+ @Test
+ fun clearData_executesSuccessfully() {
+ executeShellCommand("cmd safety_center clear-data")
+ }
+
+ @Test
+ fun refresh_executesSuccessfully() {
+ val currentUser =
+ callWithShellPermissionIdentity(INTERACT_ACROSS_USERS) {
+ ActivityManager.getCurrentUser()
+ }
+ executeShellCommand("cmd safety_center refresh --reason OTHER --user $currentUser")
+ }
+
+ @Test
+ fun help_containsAllCommands() {
+ val help = executeShellCommand("cmd safety_center help")
+
+ assertThat(help).contains("help")
+ assertThat(help).contains("enabled")
+ assertThat(help).contains("supported")
+ assertThat(help).contains("package-name")
+ assertThat(help).contains("clear-data")
+ assertThat(help).contains("refresh")
+ }
+
+ @Test
+ fun dump_containsSafetyCenterService() {
+ val dump = executeShellCommand("dumpsys safety_center")
+
+ assertThat(dump).contains("SafetyCenterService")
+ }
+
+ private fun executeShellCommand(command: String): String =
+ SystemUtil.runShellCommandOrThrow(command).trim()
+}