Fix simOnboardingLabelSimImpl_showItem_show3Items
Bug: 318310357 Test: unit test Change-Id: I189f71d49a866660a1055576b39841db09fa1520
This commit is contained in:
@@ -18,19 +18,29 @@ package com.android.settings.spa.network
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.telephony.SubscriptionInfo
|
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.assertIsDisplayed
|
||||||
|
import androidx.compose.ui.test.hasText
|
||||||
import androidx.compose.ui.test.junit4.createComposeRule
|
import androidx.compose.ui.test.junit4.createComposeRule
|
||||||
import androidx.compose.ui.test.onNodeWithText
|
import androidx.compose.ui.test.onNodeWithText
|
||||||
import androidx.compose.ui.test.performClick
|
import androidx.compose.ui.test.performClick
|
||||||
|
import androidx.lifecycle.testing.TestLifecycleOwner
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.network.SimOnboardingService
|
import com.android.settings.network.SimOnboardingService
|
||||||
|
import com.android.settingslib.spa.testutils.waitUntilExists
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.kotlin.any
|
||||||
|
import org.mockito.kotlin.doAnswer
|
||||||
import org.mockito.kotlin.doReturn
|
import org.mockito.kotlin.doReturn
|
||||||
import org.mockito.kotlin.mock
|
import org.mockito.kotlin.mock
|
||||||
|
import org.mockito.kotlin.spy
|
||||||
import org.mockito.kotlin.stub
|
import org.mockito.kotlin.stub
|
||||||
import org.mockito.kotlin.verify
|
import org.mockito.kotlin.verify
|
||||||
|
|
||||||
@@ -39,7 +49,20 @@ class SimOnboardingLabelSimTest {
|
|||||||
@get:Rule
|
@get:Rule
|
||||||
val composeTestRule = createComposeRule()
|
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> {
|
private var mockSimOnboardingService = mock<SimOnboardingService> {
|
||||||
on { targetSubId }.doReturn(-1)
|
on { targetSubId }.doReturn(-1)
|
||||||
on { targetSubInfo }.doReturn(null)
|
on { targetSubInfo }.doReturn(null)
|
||||||
@@ -85,7 +108,7 @@ class SimOnboardingLabelSimTest {
|
|||||||
composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
|
composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
|
||||||
.performClick()
|
.performClick()
|
||||||
|
|
||||||
verify(nextAction)
|
verify(nextAction)()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -97,7 +120,7 @@ class SimOnboardingLabelSimTest {
|
|||||||
composeTestRule.onNodeWithText(context.getString(R.string.cancel))
|
composeTestRule.onNodeWithText(context.getString(R.string.cancel))
|
||||||
.performClick()
|
.performClick()
|
||||||
|
|
||||||
verify(cancelAction)
|
verify(cancelAction)()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -120,15 +143,20 @@ class SimOnboardingLabelSimTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent {
|
||||||
SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
|
CompositionLocalProvider(
|
||||||
|
LocalContext provides context,
|
||||||
|
LocalLifecycleOwner provides TestLifecycleOwner(),
|
||||||
|
) {
|
||||||
|
SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed()
|
composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed()
|
||||||
composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed()
|
composeTestRule.waitUntilExists(hasText(NUMBER_1))
|
||||||
composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed()
|
composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed()
|
||||||
composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed()
|
composeTestRule.waitUntilExists(hasText(NUMBER_2))
|
||||||
composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed()
|
composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed()
|
||||||
composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed()
|
composeTestRule.waitUntilExists(hasText(NUMBER_3))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -173,24 +201,25 @@ class SimOnboardingLabelSimTest {
|
|||||||
const val NUMBER_1 = "000000001"
|
const val NUMBER_1 = "000000001"
|
||||||
const val NUMBER_2 = "000000002"
|
const val NUMBER_2 = "000000002"
|
||||||
const val NUMBER_3 = "000000003"
|
const val NUMBER_3 = "000000003"
|
||||||
|
const val MCC = "310"
|
||||||
const val PRIMARY_SIM_ASK_EVERY_TIME = -1
|
const val PRIMARY_SIM_ASK_EVERY_TIME = -1
|
||||||
|
|
||||||
val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||||
setId(SUB_ID_1)
|
setId(SUB_ID_1)
|
||||||
setDisplayName(DISPLAY_NAME_1)
|
setDisplayName(DISPLAY_NAME_1)
|
||||||
setNumber(NUMBER_1)
|
setMcc(MCC)
|
||||||
}.build()
|
}.build()
|
||||||
|
|
||||||
val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||||
setId(SUB_ID_2)
|
setId(SUB_ID_2)
|
||||||
setDisplayName(DISPLAY_NAME_2)
|
setDisplayName(DISPLAY_NAME_2)
|
||||||
setNumber(NUMBER_2)
|
setMcc(MCC)
|
||||||
}.build()
|
}.build()
|
||||||
|
|
||||||
val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||||
setId(SUB_ID_3)
|
setId(SUB_ID_3)
|
||||||
setDisplayName(DISPLAY_NAME_3)
|
setDisplayName(DISPLAY_NAME_3)
|
||||||
setNumber(NUMBER_3)
|
setMcc(MCC)
|
||||||
}.build()
|
}.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user