Skip to content

Commit cea2206

Browse files
authored
Merge pull request #4420 from vector-im/feature/adm/sanity-check-robot
Sanity tests robot pattern and reliability refactor
2 parents b6e5d2c + 78675d4 commit cea2206

20 files changed

+962
-444
lines changed

vector/src/androidTest/java/im/vector/app/EspressoExt.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ package im.vector.app
1818

1919
import android.app.Activity
2020
import android.view.View
21+
import androidx.annotation.StringRes
2122
import androidx.lifecycle.Observer
23+
import androidx.test.espresso.Espresso
2224
import androidx.test.espresso.IdlingRegistry
2325
import androidx.test.espresso.IdlingResource
2426
import androidx.test.espresso.PerformException
@@ -32,6 +34,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
3234
import androidx.test.runner.lifecycle.ActivityLifecycleCallback
3335
import androidx.test.runner.lifecycle.ActivityLifecycleMonitorRegistry
3436
import androidx.test.runner.lifecycle.Stage
37+
import com.adevinta.android.barista.interaction.BaristaClickInteractions
3538
import org.hamcrest.Matcher
3639
import org.hamcrest.Matchers
3740
import org.hamcrest.StringDescription
@@ -70,6 +73,8 @@ fun waitForView(viewMatcher: Matcher<View>, timeout: Long = 10_000, waitForDispl
7073
val endTime = startTime + timeout
7174
val visibleMatcher = isDisplayed()
7275

76+
uiController.loopMainThreadForAtLeast(100)
77+
7378
do {
7479
println("*** waitForView loop $view end:$endTime current:${System.currentTimeMillis()}")
7580
val viewVisible = TreeIterables.breadthFirstViewTraversal(view)
@@ -205,3 +210,9 @@ fun allSecretsKnownIdling(session: Session): IdlingResource {
205210

206211
return res
207212
}
213+
214+
fun clickOnAndGoBack(@StringRes name: Int, block: () -> Unit) {
215+
BaristaClickInteractions.clickOn(name)
216+
block()
217+
Espresso.pressBack()
218+
}

vector/src/androidTest/java/im/vector/app/VerificationTestBase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ package im.vector.app
1818

1919
import android.net.Uri
2020
import androidx.lifecycle.Observer
21-
import im.vector.app.ui.UiTestBase
21+
import im.vector.app.ui.robot.OnboardingRobot
2222
import kotlinx.coroutines.Dispatchers
2323
import kotlinx.coroutines.GlobalScope
2424
import kotlinx.coroutines.launch
@@ -39,7 +39,7 @@ abstract class VerificationTestBase {
3939
val password = "password"
4040
val homeServerUrl: String = "http://10.0.2.2:8080"
4141

42-
protected val uiTestBase = UiTestBase()
42+
protected val uiTestBase = OnboardingRobot()
4343

4444
fun createAccountAndSync(matrix: Matrix,
4545
userName: String,

vector/src/androidTest/java/im/vector/app/espresso/tools/WaitActivity.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,18 @@
1717
package im.vector.app.espresso.tools
1818

1919
import android.app.Activity
20+
import android.view.View
21+
import androidx.test.espresso.Espresso
22+
import androidx.test.espresso.matcher.ViewMatchers
2023
import im.vector.app.activityIdlingResource
24+
import im.vector.app.waitForView
2125
import im.vector.app.withIdlingResource
26+
import org.hamcrest.Matcher
2227

23-
inline fun <reified T : Activity> waitUntilActivityVisible(noinline block: (() -> Unit)) {
28+
inline fun <reified T : Activity> waitUntilActivityVisible(noinline block: (() -> Unit) = {}) {
2429
withIdlingResource(activityIdlingResource(T::class.java), block)
2530
}
31+
32+
fun waitUntilViewVisible(viewMatcher: Matcher<View>) {
33+
Espresso.onView(ViewMatchers.isRoot()).perform(waitForView(viewMatcher))
34+
}

0 commit comments

Comments
 (0)