From 9a80ff76738f526a8123477d1ceb3a873445688f Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Wed, 23 Feb 2022 12:01:47 +0000 Subject: [PATCH] fixing space menu items not being clicked on during sanity test - adds a separate clickOn helper for interacting with dialog bottom sheets, it seems the space menu sheet lives in a separte root to the rest of the suite (could be the fast switching of highlighting existing issues) --- .../androidTest/java/im/vector/app/EspressoExt.kt | 7 +++++++ .../vector/app/ui/robot/space/SpaceMenuRobot.kt | 15 ++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/vector/src/androidTest/java/im/vector/app/EspressoExt.kt b/vector/src/androidTest/java/im/vector/app/EspressoExt.kt index ef76a9d1f3..28564f7115 100644 --- a/vector/src/androidTest/java/im/vector/app/EspressoExt.kt +++ b/vector/src/androidTest/java/im/vector/app/EspressoExt.kt @@ -27,6 +27,9 @@ import androidx.test.espresso.IdlingResource import androidx.test.espresso.PerformException import androidx.test.espresso.UiController import androidx.test.espresso.ViewAction +import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.matcher.RootMatchers +import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.util.HumanReadables import androidx.test.espresso.util.TreeIterables @@ -257,6 +260,10 @@ fun clickOnAndGoBack(@StringRes name: Int, block: () -> Unit) { Espresso.pressBack() } +fun clickOnSheet(id: Int) { + Espresso.onView(ViewMatchers.withId(id)).inRoot(RootMatchers.isDialog()).perform(ViewActions.click()) +} + inline fun > interactWithSheet( contentMatcher: Matcher, @BottomSheetBehavior.State openState: Int = BottomSheetBehavior.STATE_EXPANDED, diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceMenuRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceMenuRobot.kt index 431df396d0..4d35e3c550 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceMenuRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceMenuRobot.kt @@ -24,6 +24,7 @@ import androidx.test.espresso.matcher.ViewMatchers import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn import com.adevinta.android.barista.internal.viewaction.ClickChildAction import im.vector.app.R +import im.vector.app.clickOnSheet import im.vector.app.espresso.tools.waitUntilActivityVisible import im.vector.app.espresso.tools.waitUntilDialogVisible import im.vector.app.espresso.tools.waitUntilViewVisible @@ -49,7 +50,7 @@ class SpaceMenuRobot { } fun invitePeople() = apply { - clickOn(R.id.invitePeople) + clickOnSheet(R.id.invitePeople) waitUntilDialogVisible(ViewMatchers.withId(R.id.inviteByMxidButton)) clickOn(R.id.inviteByMxidButton) waitUntilActivityVisible { @@ -62,7 +63,7 @@ class SpaceMenuRobot { } fun spaceMembers() { - clickOn(R.id.showMemberList) + clickOnSheet(R.id.showMemberList) waitUntilActivityVisible { waitUntilViewVisible(ViewMatchers.withId(R.id.roomSettingsRecyclerView)) } @@ -70,7 +71,7 @@ class SpaceMenuRobot { } fun spaceSettings(block: SpaceSettingsRobot.() -> Unit) { - clickOn(R.id.spaceSettings) + clickOnSheet(R.id.spaceSettings) waitUntilActivityVisible { waitUntilViewVisible(ViewMatchers.withId(R.id.roomSettingsRecyclerView)) } @@ -78,7 +79,7 @@ class SpaceMenuRobot { } fun exploreRooms() { - clickOn(R.id.exploreRooms) + clickOnSheet(R.id.exploreRooms) waitUntilActivityVisible { waitUntilViewVisible(ViewMatchers.withId(R.id.spaceDirectoryList)) } @@ -86,7 +87,7 @@ class SpaceMenuRobot { } fun addRoom() = apply { - clickOn(R.id.addRooms) + clickOnSheet(R.id.addRooms) waitUntilActivityVisible { waitUntilViewVisible(ViewMatchers.withId(R.id.roomList)) } @@ -94,7 +95,7 @@ class SpaceMenuRobot { } fun addSpace() = apply { - clickOn(R.id.addSpaces) + clickOnSheet(R.id.addSpaces) waitUntilActivityVisible { waitUntilViewVisible(ViewMatchers.withId(R.id.roomList)) } @@ -102,7 +103,7 @@ class SpaceMenuRobot { } fun leaveSpace() { - clickOn(R.id.leaveSpace) + clickOnSheet(R.id.leaveSpace) waitUntilDialogVisible(ViewMatchers.withId(R.id.leaveButton)) clickOn(R.id.leave_selected) waitUntilActivityVisible {