summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2025-05-14 15:52:05 -0700
committer Kampalus <kampalus@protonmail.ch> 2025-09-18 12:25:08 +0200
commit384272ba3e3e60f04e06c2f32254ded361d065be (patch)
tree727d5f42a7011d4606d62ac193ecd476bb7a236c /tests
parent074ffbce68e68930418c938c3c62a0d2984efa5e (diff)
[SP 2025-09-01] Sanitize cross-profile intents.
Remove package or component information from payload intents (and their selectors) for cross-profile sharing. Bug: 407764858 Test: manual testing Test: atest IntentResolver-test-unit Test: ag/32976049 (checked out and ran locally) Flag: EXEMPT bugfix Change-Id: I1ebfd96b2aabba6665267722603c72cbe4aefe0f (cherry picked from commit d605b5448615815cb6a7630637b9c55349ffe36e)
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/src/com/android/intentresolver/util/IntentUtilsTest.kt62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/unit/src/com/android/intentresolver/util/IntentUtilsTest.kt b/tests/unit/src/com/android/intentresolver/util/IntentUtilsTest.kt
new file mode 100644
index 00000000..8042b82e
--- /dev/null
+++ b/tests/unit/src/com/android/intentresolver/util/IntentUtilsTest.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2025 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
+ *
+ * https://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 com.android.intentresolver.util
+
+import android.content.ComponentName
+import android.content.Intent
+import android.content.Intent.ACTION_SEND
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+
+class IntentUtilsTest {
+ @Test
+ fun test_sanitizePayloadIntents() {
+ val intents =
+ listOf(
+ Intent(ACTION_SEND).apply { setPackage("org.test.example") },
+ Intent(ACTION_SEND).apply {
+ setComponent(
+ ComponentName.unflattenFromString("org.test.example/.TestActivity")
+ )
+ },
+ Intent(ACTION_SEND).apply {
+ setSelector(Intent(ACTION_SEND).apply { setPackage("org.test.example") })
+ },
+ Intent(ACTION_SEND).apply {
+ setSelector(
+ Intent(ACTION_SEND).apply {
+ setComponent(
+ ComponentName.unflattenFromString("org.test.example/.TestActivity")
+ )
+ }
+ )
+ },
+ )
+
+ val sanitized = sanitizePayloadIntents(intents)
+
+ assertThat(sanitized).hasSize(intents.size)
+ for (i in sanitized) {
+ assertThat(i.getPackage()).isNull()
+ assertThat(i.getComponent()).isNull()
+ i.getSelector()?.let {
+ assertThat(it.getPackage()).isNull()
+ assertThat(it.getComponent()).isNull()
+ }
+ }
+ }
+}