Loading tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +35 −94 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading @@ -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( 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 apnData = mutableStateOf(apnInit) private val uri = mock<Uri> {} @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)) composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed() } fun apnType_displayed() { composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } @Test fun apn_roaming_displayed() { composeTestRule.setContent { ApnPage(apnInit, remember { apnData }, uri) } composeTestRule.onRoot().onChild().onChildAt(0) .performScrollToNode(hasText(apnRoaming, true)) composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed() composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnType, true)) composeTestRule.onNodeWithText(apnType, 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() } fun apnRoaming_displayed() { composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } @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() composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnRoaming, true)) composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed() } @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() } } Loading
tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +35 −94 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading @@ -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( 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 apnData = mutableStateOf(apnInit) private val uri = mock<Uri> {} @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)) composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed() } fun apnType_displayed() { composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } @Test fun apn_roaming_displayed() { composeTestRule.setContent { ApnPage(apnInit, remember { apnData }, uri) } composeTestRule.onRoot().onChild().onChildAt(0) .performScrollToNode(hasText(apnRoaming, true)) composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed() composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnType, true)) composeTestRule.onNodeWithText(apnType, 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() } fun apnRoaming_displayed() { composeTestRule.setContent { ApnPage(apnInit, apnData, uri) } @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() composeTestRule.onNode(hasScrollAction()).performScrollToNode(hasText(apnRoaming, true)) composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed() } @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() } }