diff options
author | 2025-05-14 15:52:05 -0700 | |
---|---|---|
committer | 2025-09-18 12:25:08 +0200 | |
commit | 384272ba3e3e60f04e06c2f32254ded361d065be (patch) | |
tree | 727d5f42a7011d4606d62ac193ecd476bb7a236c /tests | |
parent | 074ffbce68e68930418c938c3c62a0d2984efa5e (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.kt | 62 |
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() + } + } + } +} |