/* * Copyright (C) 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 * * 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 com.android.privatespace import android.content.ComponentName import android.content.Context import android.content.pm.PackageManager import android.os.UserManager import androidx.test.ext.junit.runners.AndroidJUnit4 import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.verify import org.mockito.kotlin.whenever @RunWith(AndroidJUnit4::class) class PrivateSpaceActivityDisablerTest { private lateinit var mockContext: Context private lateinit var mockUserManager: UserManager private lateinit var mockPackageManager: PackageManager @Before fun setUp() { mockContext = mock() mockUserManager = mock() mockPackageManager = mock() whenever(mockContext.getSystemService(UserManager::class.java)).thenReturn(mockUserManager) whenever(mockContext.packageManager).thenReturn(mockPackageManager) } @Test fun disableActivityIfNotPrivateProfile_whenPrivateProfile_doesNothing() { whenever(mockUserManager.isPrivateProfile).thenReturn(true) whenever(mockContext.packageName).thenReturn("com.android.privatespace") val componentName = ComponentName(mockContext, PrivateSpaceActivity::class.java) PrivateSpaceActivityDisabler.disableActivityIfNotPrivateProfile(mockContext) verify(mockPackageManager, never()) .setComponentEnabledSetting( componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, ) } @Test fun disableActivityIfNotPrivateProfile_whenNotPrivateProfile_disablesActivity() { whenever(mockUserManager.isPrivateProfile).thenReturn(false) whenever(mockContext.packageName).thenReturn("com.android.privatespace") val componentName = ComponentName(mockContext, PrivateSpaceActivity::class.java) PrivateSpaceActivityDisabler.disableActivityIfNotPrivateProfile(mockContext) verify(mockPackageManager) .setComponentEnabledSetting( componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, ) } }