Loading tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt +39 −10 Original line number Diff line number Diff line Loading @@ -18,19 +18,29 @@ package com.android.settings.spa.network import android.content.Context import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.lifecycle.testing.TestLifecycleOwner import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.R import com.android.settings.network.SimOnboardingService import com.android.settingslib.spa.testutils.waitUntilExists import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.any import org.mockito.kotlin.doAnswer 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 Loading @@ -39,7 +49,20 @@ class SimOnboardingLabelSimTest { @get:Rule val composeTestRule = createComposeRule() private val context: Context = ApplicationProvider.getApplicationContext() private val mockSubscriptionManager = mock<SubscriptionManager> { on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer { val listener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener listener.onSubscriptionsChanged() } on { getPhoneNumber(SUB_ID_1) } doReturn NUMBER_1 on { getPhoneNumber(SUB_ID_2) } doReturn NUMBER_2 on { getPhoneNumber(SUB_ID_3) } doReturn NUMBER_3 } private val context: Context = spy(ApplicationProvider.getApplicationContext()) { on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager } private var mockSimOnboardingService = mock<SimOnboardingService> { on { targetSubId }.doReturn(-1) on { targetSubInfo }.doReturn(null) Loading Loading @@ -85,7 +108,7 @@ class SimOnboardingLabelSimTest { composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next)) .performClick() verify(nextAction) verify(nextAction)() } @Test Loading @@ -97,7 +120,7 @@ class SimOnboardingLabelSimTest { composeTestRule.onNodeWithText(context.getString(R.string.cancel)) .performClick() verify(cancelAction) verify(cancelAction)() } @Test Loading @@ -120,15 +143,20 @@ class SimOnboardingLabelSimTest { } composeTestRule.setContent { CompositionLocalProvider( LocalContext provides context, LocalLifecycleOwner provides TestLifecycleOwner(), ) { SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService) } } composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_1)) composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_2)) composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_3)) } @Test Loading Loading @@ -173,24 +201,25 @@ class SimOnboardingLabelSimTest { const val NUMBER_1 = "000000001" const val NUMBER_2 = "000000002" const val NUMBER_3 = "000000003" const val MCC = "310" const val PRIMARY_SIM_ASK_EVERY_TIME = -1 val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_1) setDisplayName(DISPLAY_NAME_1) setNumber(NUMBER_1) setMcc(MCC) }.build() val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_2) setDisplayName(DISPLAY_NAME_2) setNumber(NUMBER_2) setMcc(MCC) }.build() val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_3) setDisplayName(DISPLAY_NAME_3) setNumber(NUMBER_3) setMcc(MCC) }.build() } } Loading
tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt +39 −10 Original line number Diff line number Diff line Loading @@ -18,19 +18,29 @@ package com.android.settings.spa.network import android.content.Context import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.lifecycle.testing.TestLifecycleOwner import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.R import com.android.settings.network.SimOnboardingService import com.android.settingslib.spa.testutils.waitUntilExists import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.any import org.mockito.kotlin.doAnswer 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 Loading @@ -39,7 +49,20 @@ class SimOnboardingLabelSimTest { @get:Rule val composeTestRule = createComposeRule() private val context: Context = ApplicationProvider.getApplicationContext() private val mockSubscriptionManager = mock<SubscriptionManager> { on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer { val listener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener listener.onSubscriptionsChanged() } on { getPhoneNumber(SUB_ID_1) } doReturn NUMBER_1 on { getPhoneNumber(SUB_ID_2) } doReturn NUMBER_2 on { getPhoneNumber(SUB_ID_3) } doReturn NUMBER_3 } private val context: Context = spy(ApplicationProvider.getApplicationContext()) { on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager } private var mockSimOnboardingService = mock<SimOnboardingService> { on { targetSubId }.doReturn(-1) on { targetSubInfo }.doReturn(null) Loading Loading @@ -85,7 +108,7 @@ class SimOnboardingLabelSimTest { composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next)) .performClick() verify(nextAction) verify(nextAction)() } @Test Loading @@ -97,7 +120,7 @@ class SimOnboardingLabelSimTest { composeTestRule.onNodeWithText(context.getString(R.string.cancel)) .performClick() verify(cancelAction) verify(cancelAction)() } @Test Loading @@ -120,15 +143,20 @@ class SimOnboardingLabelSimTest { } composeTestRule.setContent { CompositionLocalProvider( LocalContext provides context, LocalLifecycleOwner provides TestLifecycleOwner(), ) { SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService) } } composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_1)) composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_2)) composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed() composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed() composeTestRule.waitUntilExists(hasText(NUMBER_3)) } @Test Loading Loading @@ -173,24 +201,25 @@ class SimOnboardingLabelSimTest { const val NUMBER_1 = "000000001" const val NUMBER_2 = "000000002" const val NUMBER_3 = "000000003" const val MCC = "310" const val PRIMARY_SIM_ASK_EVERY_TIME = -1 val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_1) setDisplayName(DISPLAY_NAME_1) setNumber(NUMBER_1) setMcc(MCC) }.build() val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_2) setDisplayName(DISPLAY_NAME_2) setNumber(NUMBER_2) setMcc(MCC) }.build() val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply { setId(SUB_ID_3) setDisplayName(DISPLAY_NAME_3) setNumber(NUMBER_3) setMcc(MCC) }.build() } }