selecting the space with the empty room before attempt to interact with it

This commit is contained in:
Adam Brown 2022-07-08 12:56:17 +01:00
parent f501555ff9
commit f3e0ae0819
4 changed files with 38 additions and 26 deletions

View File

@ -99,30 +99,33 @@ class UiAllScreensSanityTest {
testThreadScreens()
val spaceName = UUID.randomUUID().toString()
elementRobot.space {
createSpace {
crawl()
createAndCrawl(spaceName)
}
val spaceName = UUID.randomUUID().toString()
val publicSpace = UUID.randomUUID().toString()
createSpace {
createPublicSpace(spaceName)
createPublicSpace(publicSpace)
}
spaceMenu(spaceName) {
spaceMenu(publicSpace) {
spaceMembers()
spaceSettings {
crawl()
}
exploreRooms()
invitePeople().also { openMenu(spaceName) }
addRoom().also { openMenu(spaceName) }
addSpace().also { openMenu(spaceName) }
invitePeople().also { openMenu(publicSpace) }
addRoom().also { openMenu(publicSpace) }
addSpace().also { openMenu(publicSpace) }
leaveSpace()
}
}
elementRobot.space { selectSpace(spaceName) }
elementRobot.withDeveloperMode {
settings {
advancedSettings { crawlDeveloperOptions() }

View File

@ -36,11 +36,11 @@ import java.util.UUID
class SpaceCreateRobot {
fun crawl() {
fun createAndCrawl(name: String) {
// public
clickOn(R.id.publicButton)
waitUntilViewVisible(withId(R.id.recyclerView))
onView(ViewMatchers.withHint(R.string.create_room_name_hint)).perform(ViewActions.replaceText(UUID.randomUUID().toString()))
onView(ViewMatchers.withHint(R.string.create_room_name_hint)).perform(ViewActions.replaceText(name))
clickOn(R.id.nextButton)
waitUntilViewVisible(withId(R.id.recyclerView))
pressBack()

View File

@ -16,13 +16,9 @@
package im.vector.app.ui.robot.space
import androidx.recyclerview.widget.RecyclerView
import androidx.test.espresso.Espresso
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.contrib.RecyclerViewActions
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
@ -33,22 +29,9 @@ import im.vector.app.features.roomprofile.RoomProfileActivity
import im.vector.app.features.spaces.SpaceExploreActivity
import im.vector.app.features.spaces.leave.SpaceLeaveAdvancedActivity
import im.vector.app.features.spaces.manage.SpaceManageActivity
import org.hamcrest.Matchers
class SpaceMenuRobot {
fun openMenu(spaceName: String) {
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
onView(ViewMatchers.withId(R.id.groupListView))
.perform(
RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>(
ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))),
ClickChildAction.clickChildWithId(R.id.groupTmpLeave)
).atPosition(0)
)
waitUntilDialogVisible(ViewMatchers.withId(R.id.spaceNameView))
}
fun invitePeople() = apply {
clickOnSheet(R.id.invitePeople)
waitUntilDialogVisible(ViewMatchers.withId(R.id.inviteByMxidButton))

View File

@ -16,9 +16,17 @@
package im.vector.app.ui.robot.space
import androidx.recyclerview.widget.RecyclerView
import androidx.test.espresso.Espresso
import androidx.test.espresso.contrib.RecyclerViewActions
import androidx.test.espresso.matcher.ViewMatchers
import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn
import com.adevinta.android.barista.interaction.BaristaDrawerInteractions.openDrawer
import com.adevinta.android.barista.internal.viewaction.ClickChildAction
import im.vector.app.R
import im.vector.app.espresso.tools.waitUntilDialogVisible
import im.vector.app.espresso.tools.waitUntilViewVisible
import org.hamcrest.Matchers
class SpaceRobot {
@ -35,4 +43,22 @@ class SpaceRobot {
block()
}
}
fun openMenu(spaceName: String) {
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
Espresso.onView(ViewMatchers.withId(R.id.groupListView))
.perform(
RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>(
ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))),
ClickChildAction.clickChildWithId(R.id.groupTmpLeave)
).atPosition(0)
)
waitUntilDialogVisible(ViewMatchers.withId(R.id.spaceNameView))
}
fun selectSpace(spaceName: String) {
openDrawer()
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
clickOn(spaceName)
}
}