Brian Donovan
02/13/2022, 4:11 PM@RunWith(AndroidJUnit4::class)
class LoginTest {
@get:Rule
val composeTestRule = createAndroidComposeRule<MainActivity>()
@Test
fun logInButtonEnabledTest() {
composeTestRule.setContent {
WHApplicationTheme {
LoginScreen({}, {}, {})
}
}
val email = "sampl"
val password = "Sa"
val isValidEmail: Boolean = EmailValidator.isValid(email)
val isValidPassword: Boolean = PasswordValidator.isValid(password)
if (isValidEmail && isValidPassword) {
composeTestRule
.onNodeWithTag(EMAIL_TEXT_FIELD)
.performTextInput(email)
composeTestRule
.onNodeWithTag(PASSWORD_TEXT_FIELD)
.performTextInput(password)
}
composeTestRule
.onNodeWithTag(LOG_IN_BUTTON)
.performClick()
}
}
interface FormValidator {
fun isValid(value: String): Boolean
}
object PasswordValidator : FormValidator {
override fun isValid(value: String): Boolean {
return value.length > 5 && !value.contains(" ")
}
}
object EmailValidator : FormValidator {
override fun isValid(value: String): Boolean {
val emailCheck = "^[A-Za-z](.*)([@])(.+)(\\.)(.+)"
return emailCheck.toRegex().matches(value)
}
}
Panu
02/13/2022, 4:30 PMBrian Donovan
02/13/2022, 4:31 PMPanu
02/13/2022, 4:32 PMBrian Donovan
02/13/2022, 4:32 PMPanu
02/13/2022, 4:35 PMBrian Donovan
02/13/2022, 4:36 PMPanu
02/13/2022, 4:36 PMBrian Donovan
02/13/2022, 4:37 PMPanu
02/13/2022, 4:40 PMBrian Donovan
02/13/2022, 4:40 PM