summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/main
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-07-11 16:07:50 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-07-14 11:11:19 +0200
commitb82f65d4b19f4e534cdd69e8ead7f79aa176c6b2 (patch)
tree4d3b43e32de8277d3f2eb3ae43e2cf8a4be4a041 /android/app/src/main
parentc3f986e4ca32c345ae02715302a5f3c7279509b0 (diff)
downloadmullvadvpn-b82f65d4b19f4e534cdd69e8ead7f79aa176c6b2.tar.xz
mullvadvpn-b82f65d4b19f4e534cdd69e8ead7f79aa176c6b2.zip
Add ConnectScreen instrumental tests
Diffstat (limited to 'android/app/src/main')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt23
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt20
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/test/ComposeTestTagConstants.kt8
3 files changed, 40 insertions, 11 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt
index 7722ef0533..ca92eb290c 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt
@@ -15,6 +15,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
@@ -31,6 +32,7 @@ import net.mullvad.talpid.tunnel.ActionAfterDisconnect
@Composable
fun ConnectionButton(
modifier: Modifier = Modifier,
+ reconnectButtonTestTag: String = "",
state: TunnelState,
disconnectClick: () -> Unit,
reconnectClick: () -> Unit,
@@ -48,14 +50,16 @@ fun ConnectionButton(
modifier = modifier,
text = stringResource(id = R.string.disconnect),
mainClick = connectClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
ActionAfterDisconnect.Reconnect ->
DisconnectButton(
modifier = modifier,
text = stringResource(id = R.string.disconnect),
mainClick = connectClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
}
}
@@ -64,14 +68,16 @@ fun ConnectionButton(
modifier = modifier,
text = stringResource(id = R.string.cancel),
mainClick = cancelClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
is TunnelState.Connected ->
DisconnectButton(
modifier = modifier,
text = stringResource(id = R.string.disconnect),
mainClick = disconnectClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
is TunnelState.Error -> {
if (state.errorState.isBlocking) {
@@ -79,14 +85,16 @@ fun ConnectionButton(
modifier = modifier,
text = stringResource(id = R.string.disconnect),
mainClick = disconnectClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
} else {
DisconnectButton(
modifier = modifier,
text = stringResource(id = R.string.dismiss),
mainClick = cancelClick,
- reconnectClick = reconnectClick
+ reconnectClick = reconnectClick,
+ reconnectButtonTestTag = reconnectButtonTestTag
)
}
}
@@ -124,6 +132,7 @@ private fun DisconnectButton(
text: String,
modifier: Modifier = Modifier,
height: Dp = Dimens.connectButtonHeight,
+ reconnectButtonTestTag: String = "",
mainClick: () -> Unit,
reconnectClick: () -> Unit
) {
@@ -163,7 +172,7 @@ private fun DisconnectButton(
contentColor = MaterialTheme.colorScheme.onError
),
onClick = reconnectClick,
- modifier = Modifier.height(height).aspectRatio(1f, true)
+ modifier = Modifier.height(height).aspectRatio(1f, true).testTag(reconnectButtonTestTag)
) {
Icon(painter = painterResource(id = R.drawable.icon_reload), contentDescription = null)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt
index cfc7dab08f..b6b31b7f3b 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt
@@ -18,6 +18,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import net.mullvad.mullvadvpn.R
@@ -26,6 +27,11 @@ import net.mullvad.mullvadvpn.compose.button.SwitchLocationButton
import net.mullvad.mullvadvpn.compose.component.ConnectionStatusText
import net.mullvad.mullvadvpn.compose.component.LocationInfo
import net.mullvad.mullvadvpn.compose.state.ConnectUiState
+import net.mullvad.mullvadvpn.compose.test.CIRCULAR_PROGRESS_INDICATOR
+import net.mullvad.mullvadvpn.compose.test.CONNECT_BUTTON_TEST_TAG
+import net.mullvad.mullvadvpn.compose.test.LOCATION_INFO_TEST_TAG
+import net.mullvad.mullvadvpn.compose.test.RECONNECT_BUTTON_TEST_TAG
+import net.mullvad.mullvadvpn.compose.test.SELECT_LOCATION_BUTTON_TEST_TAG
import net.mullvad.mullvadvpn.compose.theme.AppTheme
import net.mullvad.mullvadvpn.compose.theme.Dimens
import net.mullvad.mullvadvpn.model.TunnelState
@@ -72,6 +78,7 @@ fun ConnectScreen(
height = Dimens.progressIndicatorSize
)
.align(Alignment.CenterHorizontally)
+ .testTag(CIRCULAR_PROGRESS_INDICATOR)
)
}
Spacer(modifier = Modifier.height(Dimens.smallPadding))
@@ -93,11 +100,14 @@ fun ConnectScreen(
location = uiState.location,
inAddress = uiState.inAddress,
outAddress = uiState.outAddress,
- modifier = Modifier.fillMaxWidth()
+ modifier = Modifier.fillMaxWidth().testTag(LOCATION_INFO_TEST_TAG)
)
Spacer(modifier = Modifier.height(Dimens.buttonSeparation))
SwitchLocationButton(
- modifier = Modifier.fillMaxWidth().height(Dimens.selectLocationButtonHeight),
+ modifier =
+ Modifier.fillMaxWidth()
+ .height(Dimens.selectLocationButtonHeight)
+ .testTag(SELECT_LOCATION_BUTTON_TEST_TAG),
onClick = onSwitchLocationClick,
showChevron = uiState.showLocation,
text =
@@ -110,11 +120,15 @@ fun ConnectScreen(
Spacer(modifier = Modifier.height(Dimens.buttonSeparation))
ConnectionButton(
state = uiState.tunnelUiState,
- modifier = Modifier.fillMaxWidth().height(Dimens.connectButtonHeight),
+ modifier =
+ Modifier.fillMaxWidth()
+ .height(Dimens.connectButtonHeight)
+ .testTag(CONNECT_BUTTON_TEST_TAG),
disconnectClick = onDisconnectClick,
reconnectClick = onReconnectClick,
cancelClick = onCancelClick,
connectClick = onConnectClick,
+ reconnectButtonTestTag = RECONNECT_BUTTON_TEST_TAG
)
}
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/test/ComposeTestTagConstants.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/test/ComposeTestTagConstants.kt
index 536a343594..f896183bcb 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/test/ComposeTestTagConstants.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/test/ComposeTestTagConstants.kt
@@ -11,5 +11,11 @@ const val LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG =
const val LAZY_LIST_WIREGUARD_CUSTOM_PORT_NUMBER_TEST_TAG =
"lazy_list_wireguard_custom_port_number_test_tag"
-// SelectLocationScreen
+// SelectLocationScreen, ConnectScreen
const val CIRCULAR_PROGRESS_INDICATOR = "circular_progress_indicator"
+
+// ConnectScreen
+const val SELECT_LOCATION_BUTTON_TEST_TAG = "select_location_button_test_tag"
+const val CONNECT_BUTTON_TEST_TAG = "connect_button_test_tag"
+const val RECONNECT_BUTTON_TEST_TAG = "reconnect_button_test_tag"
+const val LOCATION_INFO_TEST_TAG = "location_info_test_tag"