add wait for dialogs

This commit is contained in:
Adam Brown 2021-11-10 18:08:58 +00:00
parent 38f0640d2c
commit 1b5868644a
4 changed files with 17 additions and 7 deletions

View file

@ -18,7 +18,9 @@ package im.vector.app.espresso.tools
import android.app.Activity
import android.view.View
import androidx.test.espresso.Espresso
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions
import androidx.test.espresso.matcher.RootMatchers.isDialog
import androidx.test.espresso.matcher.ViewMatchers
import im.vector.app.activityIdlingResource
import im.vector.app.waitForView
@ -30,5 +32,9 @@ inline fun <reified T : Activity> waitUntilActivityVisible(noinline block: (() -
}
fun waitUntilViewVisible(viewMatcher: Matcher<View>) {
Espresso.onView(ViewMatchers.isRoot()).perform(waitForView(viewMatcher))
onView(ViewMatchers.isRoot()).perform(waitForView(viewMatcher))
}
fun waitUntilDialogVisible(viewMatcher: Matcher<View>) {
onView(viewMatcher).inRoot(isDialog()).check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
}

View file

@ -29,6 +29,7 @@ import im.vector.app.EspressoHelper
import im.vector.app.R
import im.vector.app.espresso.tools.waitUntilActivityVisible
import im.vector.app.espresso.tools.waitUntilViewVisible
import im.vector.app.espresso.tools.waitUntilDialogVisible
import im.vector.app.features.createdirect.CreateDirectRoomActivity
import im.vector.app.features.home.HomeActivity
import im.vector.app.features.login.LoginActivity
@ -111,10 +112,10 @@ class ElementRobot {
// We have sent a message in a e2e room, accept to loose it
clickOn(R.id.exitAnywayButton)
// Dark pattern
waitUntilViewVisible(withId(android.R.id.button2))
waitUntilDialogVisible(withId(android.R.id.button2))
clickDialogNegativeButton()
} else {
waitUntilViewVisible(withId(android.R.id.button1))
waitUntilDialogVisible(withId(android.R.id.button1))
clickDialogPositiveButton()
}

View file

@ -26,6 +26,7 @@ import com.adevinta.android.barista.assertion.BaristaVisibilityAssertions.assert
import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn
import com.adevinta.android.barista.interaction.BaristaEditTextInteractions.writeTo
import im.vector.app.R
import im.vector.app.espresso.tools.waitUntilViewVisible
import im.vector.app.waitForView
class OnboardingRobot {
@ -42,6 +43,7 @@ class OnboardingRobot {
userId: String,
password: String,
homeServerUrl: String) {
waitUntilViewVisible(withId(R.id.loginSplashSubmit))
assertDisplayed(R.id.loginSplashSubmit, R.string.login_splash_submit)
clickOn(R.id.loginSplashSubmit)
assertDisplayed(R.id.loginServerTitle, R.string.login_server_title)

View file

@ -27,6 +27,7 @@ import com.adevinta.android.barista.interaction.BaristaListInteractions.clickLis
import im.vector.app.R
import im.vector.app.espresso.tools.waitUntilActivityVisible
import im.vector.app.espresso.tools.waitUntilViewVisible
import im.vector.app.espresso.tools.waitUntilDialogVisible
import im.vector.app.features.roommemberprofile.RoomMemberProfileActivity
class RoomSettingsRobot {
@ -80,7 +81,7 @@ class RoomSettingsRobot {
clickListItem(R.id.matrixProfileRecyclerView, 17)
waitUntilViewVisible(withText(R.string.room_permissions_change_room_avatar))
clickOn(R.string.room_permissions_change_room_avatar)
waitUntilViewVisible(withId(android.R.id.button2))
waitUntilDialogVisible(withId(android.R.id.button2))
clickDialogNegativeButton()
waitUntilViewVisible(withText(R.string.room_permissions_title))
// Toggle
@ -95,7 +96,7 @@ class RoomSettingsRobot {
private fun leaveRoom(block: DialogRobot.() -> Unit) {
clickListItem(R.id.matrixProfileRecyclerView, 13)
waitUntilViewVisible(withId(android.R.id.button2))
waitUntilDialogVisible(withId(android.R.id.button2))
val dialogRobot = DialogRobot()
block(dialogRobot)
if (dialogRobot.returnedToPreviousScreen) {
@ -135,7 +136,7 @@ class RoomSettingsRobot {
// Role
clickListItem(R.id.matrixProfileRecyclerView, 3)
waitUntilViewVisible(withId(android.R.id.button2))
waitUntilDialogVisible(withId(android.R.id.button2))
clickDialogNegativeButton()
waitUntilViewVisible(withId(R.id.matrixProfileRecyclerView))
pressBack()