From 4bd637efb9ce903e7f7382f2d863f679df555fd4 Mon Sep 17 00:00:00 2001 From: David Perez Date: Tue, 27 Feb 2024 15:43:57 -0600 Subject: [PATCH] BIT-1602: Add element IDs to AccountSecurityScreen (#1077) --- .../accountsecurity/AccountSecurityScreen.kt | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt index 3f53f13e72..7680219da1 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt @@ -29,6 +29,8 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag import androidx.compose.ui.unit.dp import androidx.core.net.toUri import androidx.hilt.navigation.compose.hiltViewModel @@ -169,6 +171,7 @@ fun AccountSecurityScreen( { viewModel.trySendAction(AccountSecurityAction.PushNotificationConfirm) } }, modifier = Modifier + .semantics { testTag = "ApproveLoginRequestsSwitch" } .fillMaxWidth() .padding(horizontal = 16.dp), ) @@ -178,7 +181,9 @@ fun AccountSecurityScreen( onClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.PendingLoginRequestsClick) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "PendingLogInRequestsLabel" } + .fillMaxWidth(), ) } @@ -196,6 +201,7 @@ fun AccountSecurityScreen( }, biometricsManager = biometricsManager, modifier = Modifier + .semantics { testTag = "UnlockWithBiometricsSwitch" } .fillMaxWidth() .padding(horizontal = 16.dp), ) @@ -205,6 +211,7 @@ fun AccountSecurityScreen( { viewModel.trySendAction(it) } }, modifier = Modifier + .semantics { testTag = "UnlockWithPinSwitch" } .fillMaxWidth() .padding(horizontal = 16.dp), ) @@ -228,7 +235,9 @@ fun AccountSecurityScreen( onVaultTimeoutTypeSelect = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.VaultTimeoutTypeSelect(it)) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "VaultTimeoutActionChooser" } + .fillMaxWidth(), ) (state.vaultTimeout as? VaultTimeout.Custom)?.let { customTimeout -> SessionCustomTimeoutRow( @@ -250,7 +259,9 @@ fun AccountSecurityScreen( onVaultTimeoutActionSelect = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.VaultTimeoutActionSelect(it)) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "VaultTimeoutActionChooser" } + .fillMaxWidth(), ) Spacer(Modifier.height(16.dp)) @@ -265,7 +276,9 @@ fun AccountSecurityScreen( onClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.AccountFingerprintPhraseClick) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "AccountFingerprintPhraseLabel" } + .fillMaxWidth(), ) BitwardenExternalLinkRow( text = stringResource(id = R.string.two_step_login), @@ -275,7 +288,9 @@ fun AccountSecurityScreen( withDivider = false, dialogTitle = stringResource(id = R.string.continue_to_web_app), dialogMessage = stringResource(id = R.string.two_step_login_description_long), - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "TwoStepLoginLinkItemView" } + .fillMaxWidth(), ) BitwardenExternalLinkRow( text = stringResource(id = R.string.change_master_password), @@ -294,21 +309,27 @@ fun AccountSecurityScreen( onClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.LockNowClick) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "LockNowLabel" } + .fillMaxWidth(), ) BitwardenTextRow( text = stringResource(id = R.string.log_out), onClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.LogoutClick) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "LogOutLabel" } + .fillMaxWidth(), ) BitwardenTextRow( text = stringResource(id = R.string.delete_account), onClick = remember(viewModel) { { viewModel.trySendAction(AccountSecurityAction.DeleteAccountClick) } }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .semantics { testTag = "DeleteAccountLabel" } + .fillMaxWidth(), ) } } @@ -536,6 +557,7 @@ private fun SessionTimeoutRow( text = selectedVaultTimeoutType.displayLabel(), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.semantics { testTag = "SessionTimeoutStatusLabel" }, ) } @@ -682,6 +704,7 @@ private fun SessionTimeoutActionRow( text = selectedVaultTimeoutAction.displayLabel(), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.semantics { testTag = "SessionTimeoutActionStatusLabel" }, ) } when {