Loading src/com/android/settings/system/DeveloperOptionsController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.settings.development.DevelopmentSettingsDashboardFragment import com.android.settings.spa.preference.ComposePreferenceController import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.ui.SettingsIcon import com.android.settingslib.spaprivileged.framework.common.userManager import com.android.settingslib.spaprivileged.model.enterprise.Restrictions import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference Loading @@ -41,7 +42,9 @@ import com.android.settingslib.spaprivileged.template.preference.RestrictedPrefe class DeveloperOptionsController(context: Context, preferenceKey: String) : ComposePreferenceController(context, preferenceKey) { override fun getAvailabilityStatus() = AVAILABLE override fun getAvailabilityStatus() = if (mContext.userManager.isAdminUser) AVAILABLE else DISABLED_FOR_USER private val isDevelopmentSettingsEnabledFlow = context.settingsGlobalBooleanFlow( name = Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, Loading tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt +31 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.system import android.content.Context import android.content.Intent import android.os.UserManager import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText Loading @@ -25,7 +26,9 @@ import androidx.compose.ui.test.performClick import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.SettingsActivity import com.android.settings.core.BasePreferenceController import com.android.settings.development.DevelopmentSettingsDashboardFragment import com.android.settingslib.spaprivileged.framework.common.userManager import com.google.common.truth.Truth.assertThat import org.junit.Rule import org.junit.Test Loading @@ -33,7 +36,10 @@ import org.junit.runner.RunWith import org.mockito.kotlin.any import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.doNothing import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import org.mockito.kotlin.spy import org.mockito.kotlin.stub import org.mockito.kotlin.verify import org.mockito.kotlin.whenever Loading @@ -42,12 +48,37 @@ class DeveloperOptionsControllerTest { @get:Rule val composeTestRule = createComposeRule() private val mockUserManager = mock<UserManager>() private val context: Context = spy(ApplicationProvider.getApplicationContext()) { on { userManager } doReturn mockUserManager doNothing().whenever(mock).startActivity(any()) } private val controller = DeveloperOptionsController(context, TEST_KEY) @Test fun getAvailabilityStatus_isAdminUser_returnAvailable() { mockUserManager.stub { on { isAdminUser } doReturn true } val availabilityStatus = controller.getAvailabilityStatus() assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE) } @Test fun getAvailabilityStatus_notAdminUser_returnDisabledForUser() { mockUserManager.stub { on { isAdminUser } doReturn false } val availabilityStatus = controller.getAvailabilityStatus() assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER) } @Test fun title_isDisplayed() { composeTestRule.setContent { Loading Loading
src/com/android/settings/system/DeveloperOptionsController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.settings.development.DevelopmentSettingsDashboardFragment import com.android.settings.spa.preference.ComposePreferenceController import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.ui.SettingsIcon import com.android.settingslib.spaprivileged.framework.common.userManager import com.android.settingslib.spaprivileged.model.enterprise.Restrictions import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference Loading @@ -41,7 +42,9 @@ import com.android.settingslib.spaprivileged.template.preference.RestrictedPrefe class DeveloperOptionsController(context: Context, preferenceKey: String) : ComposePreferenceController(context, preferenceKey) { override fun getAvailabilityStatus() = AVAILABLE override fun getAvailabilityStatus() = if (mContext.userManager.isAdminUser) AVAILABLE else DISABLED_FOR_USER private val isDevelopmentSettingsEnabledFlow = context.settingsGlobalBooleanFlow( name = Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, Loading
tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt +31 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.system import android.content.Context import android.content.Intent import android.os.UserManager import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText Loading @@ -25,7 +26,9 @@ import androidx.compose.ui.test.performClick import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.SettingsActivity import com.android.settings.core.BasePreferenceController import com.android.settings.development.DevelopmentSettingsDashboardFragment import com.android.settingslib.spaprivileged.framework.common.userManager import com.google.common.truth.Truth.assertThat import org.junit.Rule import org.junit.Test Loading @@ -33,7 +36,10 @@ import org.junit.runner.RunWith import org.mockito.kotlin.any import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.doNothing import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import org.mockito.kotlin.spy import org.mockito.kotlin.stub import org.mockito.kotlin.verify import org.mockito.kotlin.whenever Loading @@ -42,12 +48,37 @@ class DeveloperOptionsControllerTest { @get:Rule val composeTestRule = createComposeRule() private val mockUserManager = mock<UserManager>() private val context: Context = spy(ApplicationProvider.getApplicationContext()) { on { userManager } doReturn mockUserManager doNothing().whenever(mock).startActivity(any()) } private val controller = DeveloperOptionsController(context, TEST_KEY) @Test fun getAvailabilityStatus_isAdminUser_returnAvailable() { mockUserManager.stub { on { isAdminUser } doReturn true } val availabilityStatus = controller.getAvailabilityStatus() assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE) } @Test fun getAvailabilityStatus_notAdminUser_returnDisabledForUser() { mockUserManager.stub { on { isAdminUser } doReturn false } val availabilityStatus = controller.getAvailabilityStatus() assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER) } @Test fun title_isDisplayed() { composeTestRule.setContent { Loading