summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt145
-rw-r--r--PermissionController/tests/permissionui/Android.bp2
-rw-r--r--service/java/com/android/ecm/EnhancedConfirmationCallTrackerService.java2
-rw-r--r--service/java/com/android/ecm/EnhancedConfirmationManagerLocalImpl.java2
-rw-r--r--service/java/com/android/ecm/EnhancedConfirmationService.java4
-rw-r--r--tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml36
-rw-r--r--tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationInCallTest.kt2
7 files changed, 121 insertions, 72 deletions
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
index 6a45ac7c4..a0199979d 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
@@ -40,10 +40,10 @@ import com.android.permissioncontroller.privacysources.SafetyCenterReceiver.Refr
import com.android.permissioncontroller.privacysources.SafetyCenterReceiver.RefreshEvent.EVENT_REFRESH_REQUESTED
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.test.TestCoroutineDispatcher
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.advanceUntilIdle
import kotlinx.coroutines.test.resetMain
-import kotlinx.coroutines.test.runBlockingTest
+import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
import org.junit.After
import org.junit.Before
@@ -74,7 +74,7 @@ class SafetyCenterReceiverTest {
val application = Mockito.mock(PermissionControllerApplication::class.java)
}
- private val testCoroutineDispatcher = TestCoroutineDispatcher()
+ private val unconfinedCoroutineDispatcher = UnconfinedTestDispatcher()
@Mock lateinit var mockSafetyCenterManager: SafetyCenterManager
@Mock lateinit var mockPackageManager: PackageManager
@@ -88,7 +88,7 @@ class SafetyCenterReceiverTest {
private fun privacySourceMap(context: Context) =
mapOf(
TEST_PRIVACY_SOURCE_ID to mockPrivacySource,
- TEST_PRIVACY_SOURCE_ID_2 to mockPrivacySource2
+ TEST_PRIVACY_SOURCE_ID_2 to mockPrivacySource2,
)
@Before
@@ -110,28 +110,28 @@ class SafetyCenterReceiverTest {
whenever(
Utils.getSystemServiceSafe(
any(ContextWrapper::class.java),
- eq(UserManager::class.java)
+ eq(UserManager::class.java),
)
)
.thenReturn(mockUserManager)
whenever(
Utils.getSystemServiceSafe(
any(ContextWrapper::class.java),
- eq(SafetyCenterManager::class.java)
+ eq(SafetyCenterManager::class.java),
)
)
.thenReturn(mockSafetyCenterManager)
whenever(mockUserManager.isProfile).thenReturn(false)
- safetyCenterReceiver = SafetyCenterReceiver(::privacySourceMap, testCoroutineDispatcher)
+ safetyCenterReceiver =
+ SafetyCenterReceiver(::privacySourceMap, unconfinedCoroutineDispatcher)
- Dispatchers.setMain(testCoroutineDispatcher)
+ Dispatchers.setMain(unconfinedCoroutineDispatcher)
}
@After
fun cleanup() {
Dispatchers.resetMain()
- testCoroutineDispatcher.cleanupTestCoroutines()
mockitoSession.finishMocking()
}
@@ -141,91 +141,104 @@ class SafetyCenterReceiverTest {
DeviceConfig.getInt(
eq(DeviceConfig.NAMESPACE_PRIVACY),
eq(SafetyCenterQsTileService.QS_TILE_COMPONENT_SETTING_FLAGS),
- ArgumentMatchers.anyInt()
+ ArgumentMatchers.anyInt(),
)
)
.thenReturn(PackageManager.DONT_KILL_APP)
}
@Test
- fun onReceive_actionSafetyCenterEnabledChanged() = runBlockingTest {
- mockQSTileSettingsFlag()
- safetyCenterReceiver.onReceive(application, Intent(ACTION_SAFETY_CENTER_ENABLED_CHANGED))
+ fun onReceive_actionSafetyCenterEnabledChanged() =
+ runTest(UnconfinedTestDispatcher()) {
+ mockQSTileSettingsFlag()
+ safetyCenterReceiver.onReceive(
+ application,
+ Intent(ACTION_SAFETY_CENTER_ENABLED_CHANGED),
+ )
- verify(mockPrivacySource).safetyCenterEnabledChanged(application, true)
- verify(mockPrivacySource2).safetyCenterEnabledChanged(application, true)
- }
+ verify(mockPrivacySource).safetyCenterEnabledChanged(application, true)
+ verify(mockPrivacySource2).safetyCenterEnabledChanged(application, true)
+ }
@Test
- fun onReceive_actionSafetyCenterEnabledChanged_safetyCenterDisabled() = runBlockingTest {
- mockQSTileSettingsFlag()
- whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
-
- safetyCenterReceiver.onReceive(application, Intent(ACTION_SAFETY_CENTER_ENABLED_CHANGED))
- advanceUntilIdle()
+ fun onReceive_actionSafetyCenterEnabledChanged_safetyCenterDisabled() =
+ runTest(UnconfinedTestDispatcher()) {
+ mockQSTileSettingsFlag()
+ whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
+
+ safetyCenterReceiver.onReceive(
+ application,
+ Intent(ACTION_SAFETY_CENTER_ENABLED_CHANGED),
+ )
+ advanceUntilIdle()
- verify(mockPrivacySource).safetyCenterEnabledChanged(application, false)
- verify(mockPrivacySource2).safetyCenterEnabledChanged(application, false)
- }
+ verify(mockPrivacySource).safetyCenterEnabledChanged(application, false)
+ verify(mockPrivacySource2).safetyCenterEnabledChanged(application, false)
+ }
@Test
- fun onReceive_actionBootCompleted() = runBlockingTest {
- val intent = Intent(ACTION_BOOT_COMPLETED)
+ fun onReceive_actionBootCompleted() =
+ runTest(UnconfinedTestDispatcher()) {
+ val intent = Intent(ACTION_BOOT_COMPLETED)
- safetyCenterReceiver.onReceive(application, intent)
- advanceUntilIdle()
+ safetyCenterReceiver.onReceive(application, intent)
+ advanceUntilIdle()
- verify(mockPrivacySource)
- .rescanAndPushSafetyCenterData(application, intent, EVENT_DEVICE_REBOOTED)
- verify(mockPrivacySource2)
- .rescanAndPushSafetyCenterData(application, intent, EVENT_DEVICE_REBOOTED)
- }
+ verify(mockPrivacySource)
+ .rescanAndPushSafetyCenterData(application, intent, EVENT_DEVICE_REBOOTED)
+ verify(mockPrivacySource2)
+ .rescanAndPushSafetyCenterData(application, intent, EVENT_DEVICE_REBOOTED)
+ }
@Test
- fun onReceive_actionBootCompleted_safetyCenterDisabled() = runBlockingTest {
- whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
- val intent = Intent(ACTION_BOOT_COMPLETED)
+ fun onReceive_actionBootCompleted_safetyCenterDisabled() =
+ runTest(UnconfinedTestDispatcher()) {
+ whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
+ val intent = Intent(ACTION_BOOT_COMPLETED)
- safetyCenterReceiver.onReceive(application, intent)
- advanceUntilIdle()
+ safetyCenterReceiver.onReceive(application, intent)
+ advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
- }
+ verifyZeroInteractions(mockPrivacySource)
+ verifyZeroInteractions(mockPrivacySource2)
+ }
@Test
- fun onReceive_actionRefreshSafetySources() = runBlockingTest {
- val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
- intent.putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, arrayOf(TEST_PRIVACY_SOURCE_ID))
+ fun onReceive_actionRefreshSafetySources() =
+ runTest(UnconfinedTestDispatcher()) {
+ val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
+ intent.putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, arrayOf(TEST_PRIVACY_SOURCE_ID))
- safetyCenterReceiver.onReceive(application, intent)
- advanceUntilIdle()
+ safetyCenterReceiver.onReceive(application, intent)
+ advanceUntilIdle()
- verify(mockPrivacySource)
- .rescanAndPushSafetyCenterData(application, intent, EVENT_REFRESH_REQUESTED)
- verifyZeroInteractions(mockPrivacySource2)
- }
+ verify(mockPrivacySource)
+ .rescanAndPushSafetyCenterData(application, intent, EVENT_REFRESH_REQUESTED)
+ verifyZeroInteractions(mockPrivacySource2)
+ }
@Test
- fun onReceive_actionRefreshSafetySources_noSourcesSpecified() = runBlockingTest {
- val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
+ fun onReceive_actionRefreshSafetySources_noSourcesSpecified() =
+ runTest(UnconfinedTestDispatcher()) {
+ val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
- safetyCenterReceiver.onReceive(application, intent)
- advanceUntilIdle()
+ safetyCenterReceiver.onReceive(application, intent)
+ advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
- }
+ verifyZeroInteractions(mockPrivacySource)
+ verifyZeroInteractions(mockPrivacySource2)
+ }
@Test
- fun onReceive_actionRefreshSafetySources_safetyCenterDisabled() = runBlockingTest {
- whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
- val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
+ fun onReceive_actionRefreshSafetySources_safetyCenterDisabled() =
+ runTest(UnconfinedTestDispatcher()) {
+ whenever(mockSafetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
+ val intent = Intent(ACTION_REFRESH_SAFETY_SOURCES)
- safetyCenterReceiver.onReceive(application, intent)
- advanceUntilIdle()
+ safetyCenterReceiver.onReceive(application, intent)
+ advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
- }
+ verifyZeroInteractions(mockPrivacySource)
+ verifyZeroInteractions(mockPrivacySource2)
+ }
}
diff --git a/PermissionController/tests/permissionui/Android.bp b/PermissionController/tests/permissionui/Android.bp
index 6e1839d1d..5f177f40c 100644
--- a/PermissionController/tests/permissionui/Android.bp
+++ b/PermissionController/tests/permissionui/Android.bp
@@ -47,7 +47,7 @@ android_test {
"androidx.test.ext.truth",
"androidx.test.rules",
"androidx.test.uiautomator_uiautomator",
- "com.android.permission.flags-aconfig-java",
+ "com.android.permission.flags-aconfig-java-export",
"compatibility-device-util-axt",
"flag-junit",
"permission-test-util-lib",
diff --git a/service/java/com/android/ecm/EnhancedConfirmationCallTrackerService.java b/service/java/com/android/ecm/EnhancedConfirmationCallTrackerService.java
index 407d56f70..9117d6558 100644
--- a/service/java/com/android/ecm/EnhancedConfirmationCallTrackerService.java
+++ b/service/java/com/android/ecm/EnhancedConfirmationCallTrackerService.java
@@ -44,7 +44,7 @@ public class EnhancedConfirmationCallTrackerService extends InCallService {
@Override
public void onCreate() {
super.onCreate();
- if (Flags.enhancedConfirmationInCallApisEnabled()) {
+ if (Flags.unknownCallPackageInstallBlockingEnabled()) {
mEnhancedConfirmationManagerLocal =
LocalManagerRegistry.getManager(EnhancedConfirmationManagerLocal.class);
}
diff --git a/service/java/com/android/ecm/EnhancedConfirmationManagerLocalImpl.java b/service/java/com/android/ecm/EnhancedConfirmationManagerLocalImpl.java
index a5c6d3c36..b34eac9f4 100644
--- a/service/java/com/android/ecm/EnhancedConfirmationManagerLocalImpl.java
+++ b/service/java/com/android/ecm/EnhancedConfirmationManagerLocalImpl.java
@@ -29,7 +29,7 @@ class EnhancedConfirmationManagerLocalImpl implements EnhancedConfirmationManage
private final EnhancedConfirmationService mService;
EnhancedConfirmationManagerLocalImpl(EnhancedConfirmationService service) {
- if (Flags.enhancedConfirmationInCallApisEnabled()) {
+ if (Flags.unknownCallPackageInstallBlockingEnabled()) {
mService = service;
} else {
mService = null;
diff --git a/service/java/com/android/ecm/EnhancedConfirmationService.java b/service/java/com/android/ecm/EnhancedConfirmationService.java
index af2e81133..65fde6daf 100644
--- a/service/java/com/android/ecm/EnhancedConfirmationService.java
+++ b/service/java/com/android/ecm/EnhancedConfirmationService.java
@@ -133,7 +133,7 @@ public class EnhancedConfirmationService extends SystemService {
}
void addOngoingCall(Call call) {
- if (!Flags.enhancedConfirmationInCallApisEnabled()) {
+ if (!Flags.unknownCallPackageInstallBlockingEnabled()) {
return;
}
if (call.getDetails() == null) {
@@ -143,7 +143,7 @@ public class EnhancedConfirmationService extends SystemService {
}
void removeOngoingCall(String callId) {
- if (!Flags.enhancedConfirmationInCallApisEnabled()) {
+ if (!Flags.unknownCallPackageInstallBlockingEnabled()) {
return;
}
Integer returned = mOngoingCalls.remove(callId);
diff --git a/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml b/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml
index 9114a1ecd..2b40d3ed7 100644
--- a/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml
+++ b/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml
@@ -80,6 +80,12 @@
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_control_car_seats"
android:description="@string/car_permission_desc_control_car_seats"/>
+ <permission android:name="android.car.permission.READ_CAR_SEATS"
+ android:permissionGroup="android.car.permission-group.CAR_MONITORING"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_read_car_seats"
+ android:description="@string/car_permission_desc_read_car_seats"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.CONTROL_CAR_AIRBAGS"
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_control_car_airbags"
@@ -121,10 +127,22 @@
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_car_tires"
android:description="@string/car_permission_desc_car_tires"/>
+ <permission android:name="android.car.permission.CAR_TIRES_3P"
+ android:permissionGroup="android.car.permission-group.CAR_MONITORING"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_car_tires_3p"
+ android:description="@string/car_permission_desc_car_tires_3p"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.READ_CAR_STEERING"
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_car_steering"
android:description="@string/car_permission_desc_car_steering"/>
+ <permission android:name="android.car.permission.READ_CAR_STEERING_3P"
+ android:permissionGroup="android.permission-group.LOCATION"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_read_car_steering_3p"
+ android:description="@string/car_permission_desc_read_car_steering_3p"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.READ_CAR_DISPLAY_UNITS"
android:protectionLevel="normal"
android:label="@string/car_permission_label_read_car_display_units"
@@ -150,6 +168,12 @@
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_car_engine_detailed"
android:description="@string/car_permission_desc_car_engine_detailed"/>
+ <permission android:name="android.car.permission.CAR_ENGINE_DETAILED_3P"
+ android:permissionGroup="android.car.permission-group.CAR_MONITORING"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_car_engine_detailed_3p"
+ android:description="@string/car_permission_desc_car_engine_detailed_3p"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.CAR_DYNAMICS_STATE"
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_vehicle_dynamics_state"
@@ -305,6 +329,12 @@
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_driving_state"
android:description="@string/car_permission_desc_driving_state"/>
+ <permission android:name="android.car.permission.CAR_DRIVING_STATE_3P"
+ android:permissionGroup="android.car.permission-group.CAR_MONITORING"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_driving_state_3p"
+ android:description="@string/car_permission_desc_driving_state_3p"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.USE_CAR_TELEMETRY_SERVICE"
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_use_telemetry_service"
@@ -637,6 +667,12 @@
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_read_windshield_wipers"
android:description="@string/car_permission_desc_read_windshield_wipers"/>
+ <permission android:name="android.car.permission.READ_WINDSHIELD_WIPERS_3P"
+ android:permissionGroup="android.car.permission-group.CAR_MONITORING"
+ android:protectionLevel="dangerous"
+ android:label="@string/car_permission_label_read_windshield_wipers_3p"
+ android:description="@string/car_permission_desc_read_windshield_wipers_3p"
+ android:featureFlag="android.car.feature.vehicle_property_25q2_3p_permissions"/>
<permission android:name="android.car.permission.CONTROL_WINDSHIELD_WIPERS"
android:protectionLevel="signature|privileged"
android:label="@string/car_permission_label_control_windshield_wipers"
diff --git a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationInCallTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationInCallTest.kt
index c410f9c9c..16a27c9a8 100644
--- a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationInCallTest.kt
+++ b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationInCallTest.kt
@@ -52,7 +52,7 @@ import org.junit.Test
*/
@AppModeFull(reason = "Instant apps cannot install packages")
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.BAKLAVA, codeName = "Baklava")
-@RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_IN_CALL_APIS_ENABLED)
+@RequiresFlagsEnabled(Flags.FLAG_UNKNOWN_CALL_PACKAGE_INSTALL_BLOCKING_ENABLED)
// @CddTest(requirement = "TBD")
class EnhancedConfirmationInCallTest {
private val ecm = context.getSystemService(EnhancedConfirmationManager::class.java)!!