Skip to content

Commit ac7aa9f

Browse files
authored
Merge pull request #6512 from vector-im/feature/adm/ui-test-stabilization
UI test stabilization
2 parents 50f8d0a + 2c84398 commit ac7aa9f

File tree

8 files changed

+61
-32
lines changed

8 files changed

+61
-32
lines changed

vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,30 +99,33 @@ class UiAllScreensSanityTest {
9999

100100
testThreadScreens()
101101

102+
val spaceName = UUID.randomUUID().toString()
102103
elementRobot.space {
103104
createSpace {
104-
crawl()
105+
createAndCrawl(spaceName)
105106
}
106-
val spaceName = UUID.randomUUID().toString()
107+
val publicSpaceName = UUID.randomUUID().toString()
107108
createSpace {
108-
createPublicSpace(spaceName)
109+
createPublicSpace(publicSpaceName)
109110
}
110111

111-
spaceMenu(spaceName) {
112+
spaceMenu(publicSpaceName) {
112113
spaceMembers()
113114
spaceSettings {
114115
crawl()
115116
}
116117
exploreRooms()
117118

118-
invitePeople().also { openMenu(spaceName) }
119-
addRoom().also { openMenu(spaceName) }
120-
addSpace().also { openMenu(spaceName) }
119+
invitePeople().also { openMenu(publicSpaceName) }
120+
addRoom().also { openMenu(publicSpaceName) }
121+
addSpace().also { openMenu(publicSpaceName) }
121122

122123
leaveSpace()
123124
}
124125
}
125126

127+
elementRobot.space { selectSpace(spaceName) }
128+
126129
elementRobot.withDeveloperMode {
127130
settings {
128131
advancedSettings { crawlDeveloperOptions() }
@@ -159,7 +162,7 @@ class UiAllScreensSanityTest {
159162
elementRobot.newRoom {
160163
createNewRoom {
161164
crawl()
162-
createRoom {
165+
createRoom(roomName = "thread room") {
163166
val message = "Hello This message will be a thread!"
164167
postMessage(message)
165168
replyToThread(message)

vector/src/androidTest/java/im/vector/app/ui/robot/CreateNewRoomRobot.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616

1717
package im.vector.app.ui.robot
1818

19+
import androidx.test.espresso.Espresso.closeSoftKeyboard
20+
import androidx.test.espresso.Espresso.onView
1921
import androidx.test.espresso.Espresso.pressBack
22+
import androidx.test.espresso.action.ViewActions.replaceText
23+
import androidx.test.espresso.matcher.ViewMatchers.withHint
2024
import androidx.test.espresso.matcher.ViewMatchers.withId
2125
import com.adevinta.android.barista.assertion.BaristaListAssertions
2226
import com.adevinta.android.barista.interaction.BaristaClickInteractions
@@ -25,14 +29,20 @@ import im.vector.app.R
2529
import im.vector.app.espresso.tools.waitUntilActivityVisible
2630
import im.vector.app.espresso.tools.waitUntilViewVisible
2731
import im.vector.app.features.home.room.detail.RoomDetailActivity
32+
import org.hamcrest.CoreMatchers.allOf
2833

2934
class CreateNewRoomRobot(
3035
var createdRoom: Boolean = false
3136
) {
3237

33-
fun createRoom(block: RoomDetailRobot.() -> Unit) {
38+
fun createRoom(roomName: String? = null, block: RoomDetailRobot.() -> Unit) {
3439
createdRoom = true
3540
BaristaListAssertions.assertListItemCount(R.id.createRoomForm, 12)
41+
roomName?.let {
42+
onView(allOf(withId(R.id.formTextInputTextInputEditText), withHint(R.string.create_room_name_hint)))
43+
.perform(replaceText(roomName))
44+
closeSoftKeyboard()
45+
}
3646
BaristaListInteractions.clickListItemChild(R.id.createRoomForm, 11, R.id.form_submit_button)
3747
waitUntilActivityVisible<RoomDetailActivity> {
3848
waitUntilViewVisible(withId(R.id.composerEditText))

vector/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package im.vector.app.ui.robot
1818

1919
import android.view.View
20+
import androidx.test.espresso.Espresso.closeSoftKeyboard
2021
import androidx.test.espresso.Espresso.onView
2122
import androidx.test.espresso.Espresso.pressBack
2223
import androidx.test.espresso.action.ViewActions
@@ -91,8 +92,7 @@ class ElementRobot {
9192
waitUntilActivityVisible<CreateDirectRoomActivity> {
9293
waitUntilViewVisible(withId(R.id.userListSearch))
9394
}
94-
// close keyboard
95-
pressBack()
95+
closeSoftKeyboard()
9696
block(NewDirectMessageRobot())
9797
pressBack()
9898
waitUntilViewVisible(withId(R.id.bottomNavigationView))

vector/src/androidTest/java/im/vector/app/ui/robot/MessageMenuRobot.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package im.vector.app.ui.robot
1818

19+
import androidx.test.espresso.Espresso.closeSoftKeyboard
1920
import androidx.test.espresso.Espresso.pressBack
2021
import androidx.test.espresso.matcher.ViewMatchers.withId
2122
import androidx.test.espresso.matcher.ViewMatchers.withText
@@ -59,6 +60,7 @@ class MessageMenuRobot(
5960
clickOn(R.string.message_add_reaction)
6061
// Wait for emoji to load, it's async now
6162
waitUntilActivityVisible<EmojiReactionPickerActivity> {
63+
closeSoftKeyboard()
6264
waitUntilViewVisible(withId(R.id.emojiRecyclerView))
6365
waitUntilViewVisible(withText("😀"))
6466
}

vector/src/androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package im.vector.app.ui.robot
1818

1919
import androidx.recyclerview.widget.RecyclerView
20+
import androidx.test.espresso.Espresso.closeSoftKeyboard
2021
import androidx.test.espresso.Espresso.onView
2122
import androidx.test.espresso.Espresso.pressBack
2223
import androidx.test.espresso.action.ViewActions
@@ -44,6 +45,7 @@ class RoomDetailRobot {
4445

4546
fun postMessage(content: String) {
4647
writeTo(R.id.composerEditText, content)
48+
closeSoftKeyboard()
4749
waitUntilViewVisible(withId(R.id.sendButton))
4850
clickOn(R.id.sendButton)
4951
waitUntilViewVisible(withText(content))
@@ -68,6 +70,7 @@ class RoomDetailRobot {
6870
}
6971
val threadMessage = "Hello universe - long message to avoid espresso tapping edited!"
7072
writeTo(R.id.composerEditText, threadMessage)
73+
closeSoftKeyboard()
7174
waitUntilViewVisible(withId(R.id.sendButton))
7275
clickOn(R.id.sendButton)
7376
}
@@ -105,6 +108,7 @@ class RoomDetailRobot {
105108
// TODO Cancel action
106109
val edit = "Hello universe - long message to avoid espresso tapping edited!"
107110
writeTo(R.id.composerEditText, edit)
111+
closeSoftKeyboard()
108112
// Wait a bit for the keyboard layout to update
109113
waitUntilViewVisible(withId(R.id.sendButton))
110114
clickOn(R.id.sendButton)
@@ -150,7 +154,9 @@ class RoomDetailRobot {
150154

151155
fun openThreadSummaries() {
152156
clickMenu(R.id.menu_timeline_thread_list)
153-
waitUntilViewVisible(withId(R.id.threadListRecyclerView))
157+
withRetry {
158+
waitUntilViewVisible(withId(R.id.threadListRecyclerView))
159+
}
154160
}
155161

156162
fun selectThreadSummariesFilter() {

vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceCreateRobot.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@ import im.vector.app.espresso.tools.waitUntilDialogVisible
3232
import im.vector.app.espresso.tools.waitUntilViewVisible
3333
import im.vector.app.features.home.HomeActivity
3434
import im.vector.app.features.spaces.manage.SpaceManageActivity
35-
import java.util.UUID
3635

3736
class SpaceCreateRobot {
3837

39-
fun crawl() {
38+
fun createAndCrawl(name: String) {
4039
// public
4140
clickOn(R.id.publicButton)
4241
waitUntilViewVisible(withId(R.id.recyclerView))
43-
onView(ViewMatchers.withHint(R.string.create_room_name_hint)).perform(ViewActions.replaceText(UUID.randomUUID().toString()))
42+
onView(ViewMatchers.withHint(R.string.create_room_name_hint)).perform(ViewActions.replaceText(name))
4443
clickOn(R.id.nextButton)
4544
waitUntilViewVisible(withId(R.id.recyclerView))
4645
pressBack()

vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceMenuRobot.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,9 @@
1616

1717
package im.vector.app.ui.robot.space
1818

19-
import androidx.recyclerview.widget.RecyclerView
2019
import androidx.test.espresso.Espresso
21-
import androidx.test.espresso.Espresso.onView
22-
import androidx.test.espresso.contrib.RecyclerViewActions
2320
import androidx.test.espresso.matcher.ViewMatchers
2421
import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn
25-
import com.adevinta.android.barista.internal.viewaction.ClickChildAction
2622
import im.vector.app.R
2723
import im.vector.app.clickOnSheet
2824
import im.vector.app.espresso.tools.waitUntilActivityVisible
@@ -33,22 +29,9 @@ import im.vector.app.features.roomprofile.RoomProfileActivity
3329
import im.vector.app.features.spaces.SpaceExploreActivity
3430
import im.vector.app.features.spaces.leave.SpaceLeaveAdvancedActivity
3531
import im.vector.app.features.spaces.manage.SpaceManageActivity
36-
import org.hamcrest.Matchers
3732

3833
class SpaceMenuRobot {
3934

40-
fun openMenu(spaceName: String) {
41-
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
42-
onView(ViewMatchers.withId(R.id.groupListView))
43-
.perform(
44-
RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>(
45-
ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))),
46-
ClickChildAction.clickChildWithId(R.id.groupTmpLeave)
47-
).atPosition(0)
48-
)
49-
waitUntilDialogVisible(ViewMatchers.withId(R.id.spaceNameView))
50-
}
51-
5235
fun invitePeople() = apply {
5336
clickOnSheet(R.id.invitePeople)
5437
waitUntilDialogVisible(ViewMatchers.withId(R.id.inviteByMxidButton))

vector/src/androidTest/java/im/vector/app/ui/robot/space/SpaceRobot.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,17 @@
1616

1717
package im.vector.app.ui.robot.space
1818

19+
import androidx.recyclerview.widget.RecyclerView
20+
import androidx.test.espresso.Espresso
21+
import androidx.test.espresso.contrib.RecyclerViewActions
22+
import androidx.test.espresso.matcher.ViewMatchers
1923
import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn
2024
import com.adevinta.android.barista.interaction.BaristaDrawerInteractions.openDrawer
25+
import com.adevinta.android.barista.internal.viewaction.ClickChildAction
2126
import im.vector.app.R
27+
import im.vector.app.espresso.tools.waitUntilDialogVisible
28+
import im.vector.app.espresso.tools.waitUntilViewVisible
29+
import org.hamcrest.Matchers
2230

2331
class SpaceRobot {
2432

@@ -35,4 +43,22 @@ class SpaceRobot {
3543
block()
3644
}
3745
}
46+
47+
fun openMenu(spaceName: String) {
48+
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
49+
Espresso.onView(ViewMatchers.withId(R.id.groupListView))
50+
.perform(
51+
RecyclerViewActions.actionOnItem<RecyclerView.ViewHolder>(
52+
ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))),
53+
ClickChildAction.clickChildWithId(R.id.groupTmpLeave)
54+
).atPosition(0)
55+
)
56+
waitUntilDialogVisible(ViewMatchers.withId(R.id.spaceNameView))
57+
}
58+
59+
fun selectSpace(spaceName: String) {
60+
openDrawer()
61+
waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView))
62+
clickOn(spaceName)
63+
}
3864
}

0 commit comments

Comments
 (0)