Use hasScrollAction in ApnEditPageProviderTest
Instead of assuming a fixed tree structure in testing. Fix: 369416630 Flag: EXEMPT gradle only Test: atest ApnEditPageProviderTest Change-Id: I0a50e7665d9049e089b5a0877f17d1f736ee3332
This commit is contained in:
@@ -19,19 +19,16 @@ package com.android.settings.network.apn
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.ui.test.assertIsDisplayed
|
import androidx.compose.ui.test.assertIsDisplayed
|
||||||
|
import androidx.compose.ui.test.hasScrollAction
|
||||||
import androidx.compose.ui.test.hasText
|
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.onChild
|
|
||||||
import androidx.compose.ui.test.onChildAt
|
|
||||||
import androidx.compose.ui.test.onNodeWithText
|
import androidx.compose.ui.test.onNodeWithText
|
||||||
import androidx.compose.ui.test.onRoot
|
|
||||||
import androidx.compose.ui.test.performScrollToNode
|
import androidx.compose.ui.test.performScrollToNode
|
||||||
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.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
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
|
||||||
@@ -39,8 +36,7 @@ import org.mockito.kotlin.mock
|
|||||||
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
class ApnEditPageProviderTest {
|
class ApnEditPageProviderTest {
|
||||||
@get:Rule
|
@get:Rule val composeTestRule = createComposeRule()
|
||||||
val composeTestRule = createComposeRule()
|
|
||||||
|
|
||||||
private val context: Context = ApplicationProvider.getApplicationContext()
|
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||||
private val apnName = "apn_name"
|
private val apnName = "apn_name"
|
||||||
@@ -51,86 +47,73 @@ class ApnEditPageProviderTest {
|
|||||||
private val apnProtocolOptions =
|
private val apnProtocolOptions =
|
||||||
context.resources.getStringArray(R.array.apn_protocol_entries).toList()
|
context.resources.getStringArray(R.array.apn_protocol_entries).toList()
|
||||||
private val passwordTitle = context.resources.getString(R.string.apn_password)
|
private val passwordTitle = context.resources.getString(R.string.apn_password)
|
||||||
private val apnInit = ApnData(
|
private val apnInit =
|
||||||
name = apnName,
|
ApnData(
|
||||||
proxy = proxy,
|
name = apnName,
|
||||||
port = port,
|
proxy = proxy,
|
||||||
apnType = apnType,
|
port = port,
|
||||||
apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
|
apnType = apnType,
|
||||||
)
|
apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
|
||||||
private val apnData = mutableStateOf(
|
)
|
||||||
apnInit
|
private val apnData = mutableStateOf(apnInit)
|
||||||
)
|
|
||||||
private val uri = mock<Uri> {}
|
private val uri = mock<Uri> {}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun apnEditPageProvider_name() {
|
fun apnEditPageProvider_name() {
|
||||||
Truth.assertThat(ApnEditPageProvider.name).isEqualTo("ApnEdit")
|
assertThat(ApnEditPageProvider.name).isEqualTo("ApnEdit")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun title_displayed() {
|
fun title_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
|
||||||
composeTestRule.onNodeWithText(context.getString(R.string.apn_edit)).assertIsDisplayed()
|
composeTestRule.onNodeWithText(context.getString(R.string.apn_edit)).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun name_displayed() {
|
fun name_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
|
||||||
composeTestRule.onNodeWithText(apnName, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(apnName, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun proxy_displayed() {
|
fun proxy_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(proxy, true))
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
|
||||||
.performScrollToNode(hasText(proxy, true))
|
|
||||||
composeTestRule.onNodeWithText(proxy, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(proxy, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun port_displayed() {
|
fun port_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(port, true))
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
|
||||||
.performScrollToNode(hasText(port, true))
|
|
||||||
composeTestRule.onNodeWithText(port, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(port, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun apn_type_displayed() {
|
fun apnType_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnType, true))
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
|
||||||
.performScrollToNode(hasText(apnType, true))
|
|
||||||
composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun apn_roaming_displayed() {
|
fun apnRoaming_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnRoaming, true))
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
|
||||||
.performScrollToNode(hasText(apnRoaming, true))
|
|
||||||
composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun password_displayed() {
|
fun password_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent { ApnPage(apnInit, apnData, uri) }
|
||||||
ApnPage(apnInit, remember { apnData }, uri)
|
|
||||||
}
|
composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(passwordTitle, true))
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
|
||||||
.performScrollToNode(hasText(passwordTitle, true))
|
|
||||||
composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user