diff --git a/vector/src/androidTest/java/im/vector/app/espresso/tools/WaitActivity.kt b/vector/src/androidTest/java/im/vector/app/espresso/tools/WaitActivity.kt index 7744d4b720..f296617d98 100644 --- a/vector/src/androidTest/java/im/vector/app/espresso/tools/WaitActivity.kt +++ b/vector/src/androidTest/java/im/vector/app/espresso/tools/WaitActivity.kt @@ -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())) } diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt index a3bc5b26fc..60a6f7c110 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt @@ -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() } diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt index fef5d4a1a2..8b87abadab 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt @@ -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) diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/RoomSettingsRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/RoomSettingsRobot.kt index 0bcf9af813..e02732a727 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/RoomSettingsRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/RoomSettingsRobot.kt @@ -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()