Add integration test case for Settings.Secure.FAST_PAIR_SCAN_ENABLED.
This test ensure FAST_PAIR_SCAN_ENABLED available as System API and
can enable/disable by privileged app. For untrusted app, check that
FAST_PAIR_SCAN_ENABLED is in read only mode.
Test: atest NearbyIntegrationPrivilegedTests NearbyIntegrationUntrustedTests
BUG: 215862502
Change-Id: I8d72fc750acf05c59063d937c86a7b815d31dd45
diff --git a/nearby/tests/integration/untrusted/Android.bp b/nearby/tests/integration/untrusted/Android.bp
index 5736dde..53dbfb7 100644
--- a/nearby/tests/integration/untrusted/Android.bp
+++ b/nearby/tests/integration/untrusted/Android.bp
@@ -26,6 +26,7 @@
"androidx.test.ext.junit",
"androidx.test.rules",
"junit",
+ "kotlin-test",
"truth-prebuilt",
],
test_suites: ["device-tests"],
diff --git a/nearby/tests/integration/untrusted/src/android/nearby/integration/untrusted/FastPairSettingsProviderTest.kt b/nearby/tests/integration/untrusted/src/android/nearby/integration/untrusted/FastPairSettingsProviderTest.kt
new file mode 100644
index 0000000..b73e737
--- /dev/null
+++ b/nearby/tests/integration/untrusted/src/android/nearby/integration/untrusted/FastPairSettingsProviderTest.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2022 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.nearby.integration.untrusted
+
+import android.content.Context
+import android.content.ContentResolver
+import android.provider.Settings
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import kotlin.test.assertFailsWith
+
+
+@RunWith(AndroidJUnit4::class)
+class FastPairSettingsProviderTest {
+ private lateinit var contentResolver: ContentResolver
+
+ @Before
+ fun setUp() {
+ contentResolver = ApplicationProvider.getApplicationContext<Context>().contentResolver
+ }
+
+ /** Verify untrusted app can read Fast Pair scan enabled setting. */
+ @Test
+ fun testSettingsFastPairScan_fromUnTrustedApp_readsSucceed() {
+ Settings.Secure.getInt(contentResolver,
+ Settings.Secure.FAST_PAIR_SCAN_ENABLED, /* default value */ -1)
+ }
+
+ /** Verify untrusted app can't write Fast Pair scan enabled setting. */
+ @Test
+ fun testSettingsFastPairScan_fromUnTrustedApp_writesFailed() {
+ assertFailsWith<SecurityException> {
+ Settings.Secure.putInt(contentResolver, Settings.Secure.FAST_PAIR_SCAN_ENABLED, 1)
+ }
+ }
+}