diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt index 3621948c9fb..2f7417d212f 100644 --- a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt @@ -19,26 +19,16 @@ package com.android.settings.network.apn import android.content.Context import android.net.Uri import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.assertIsOff -import androidx.compose.ui.test.assertIsOn +import androidx.compose.ui.test.hasScrollAction import androidx.compose.ui.test.hasText -import androidx.compose.ui.test.isFocused import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onAllNodesWithText -import androidx.compose.ui.test.onChild -import androidx.compose.ui.test.onChildAt -import androidx.compose.ui.test.onLast import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.onRoot -import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollToNode import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.R -import com.google.common.truth.Truth -import org.junit.Ignore +import com.google.common.truth.Truth.assertThat import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -46,8 +36,7 @@ import org.mockito.kotlin.mock @RunWith(AndroidJUnit4::class) class ApnEditPageProviderTest { - @get:Rule - val composeTestRule = createComposeRule() + @get:Rule val composeTestRule = createComposeRule() private val context: Context = ApplicationProvider.getApplicationContext() private val apnName = "apn_name" @@ -55,124 +44,76 @@ class ApnEditPageProviderTest { private val port = "port" private val apnType = context.resources.getString(R.string.apn_type) private val apnRoaming = "IPv4" - private val apnEnable = context.resources.getString(R.string.carrier_enabled) private val apnProtocolOptions = context.resources.getStringArray(R.array.apn_protocol_entries).toList() private val passwordTitle = context.resources.getString(R.string.apn_password) - private val apnInit = ApnData( - name = apnName, - proxy = proxy, - port = port, - apnType = apnType, - apnRoaming = apnProtocolOptions.indexOf(apnRoaming), - apnEnable = true - ) - private val apnData = mutableStateOf( - apnInit - ) + private val apnInit = + ApnData( + name = apnName, + proxy = proxy, + port = port, + apnType = apnType, + apnRoaming = apnProtocolOptions.indexOf(apnRoaming), + ) + private val apnData = mutableStateOf(apnInit) private val uri = mock {} @Test fun apnEditPageProvider_name() { - Truth.assertThat(ApnEditPageProvider.name).isEqualTo("ApnEdit") + assertThat(ApnEditPageProvider.name).isEqualTo("ApnEdit") } @Test fun title_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + composeTestRule.onNodeWithText(context.getString(R.string.apn_edit)).assertIsDisplayed() } @Test fun name_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + composeTestRule.onNodeWithText(apnName, true).assertIsDisplayed() } @Test fun proxy_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(proxy, true)) + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + + composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(proxy, true)) composeTestRule.onNodeWithText(proxy, true).assertIsDisplayed() } @Test fun port_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(port, true)) + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + + composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(port, true)) composeTestRule.onNodeWithText(port, true).assertIsDisplayed() } @Test - fun apn_type_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(apnType, true)) + fun apnType_displayed() { + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + + composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnType, true)) composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed() } @Test - fun apn_roaming_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(apnRoaming, true)) + fun apnRoaming_displayed() { + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + + composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnRoaming, true)) composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed() } - @Ignore("b/342374681") - @Test - fun carrier_enabled_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(apnEnable, true)) - composeTestRule.onNodeWithText(apnEnable, true).assertIsDisplayed() - } - - @Test - fun carrier_enabled_isChecked() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(apnEnable, true)) - composeTestRule.onNodeWithText(apnEnable, true).assertIsOn() - } - - @Ignore("b/342374681") - @Test - fun carrier_enabled_checkChanged() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(apnEnable, true)) - composeTestRule.onNodeWithText(apnEnable, true).performClick() - composeTestRule.onNodeWithText(apnEnable, true).assertIsOff() - } - @Test fun password_displayed() { - composeTestRule.setContent { - ApnPage(apnInit, remember { apnData }, uri) - } - composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(passwordTitle, true)) + composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } + + composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(passwordTitle, true)) composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed() } -} \ No newline at end of file +}