Skip to content

Commit

Permalink
Merge pull request #4420 from vector-im/feature/adm/sanity-check-robot
Browse files Browse the repository at this point in the history
Sanity tests robot pattern and reliability refactor
  • Loading branch information
bmarty authored Nov 8, 2021
2 parents b6e5d2c + 78675d4 commit cea2206
Show file tree
Hide file tree
Showing 20 changed files with 962 additions and 444 deletions.
11 changes: 11 additions & 0 deletions vector/src/androidTest/java/im/vector/app/EspressoExt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ package im.vector.app

import android.app.Activity
import android.view.View
import androidx.annotation.StringRes
import androidx.lifecycle.Observer
import androidx.test.espresso.Espresso
import androidx.test.espresso.IdlingRegistry
import androidx.test.espresso.IdlingResource
import androidx.test.espresso.PerformException
Expand All @@ -32,6 +34,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.runner.lifecycle.ActivityLifecycleCallback
import androidx.test.runner.lifecycle.ActivityLifecycleMonitorRegistry
import androidx.test.runner.lifecycle.Stage
import com.adevinta.android.barista.interaction.BaristaClickInteractions
import org.hamcrest.Matcher
import org.hamcrest.Matchers
import org.hamcrest.StringDescription
Expand Down Expand Up @@ -70,6 +73,8 @@ fun waitForView(viewMatcher: Matcher<View>, timeout: Long = 10_000, waitForDispl
val endTime = startTime + timeout
val visibleMatcher = isDisplayed()

uiController.loopMainThreadForAtLeast(100)

do {
println("*** waitForView loop $view end:$endTime current:${System.currentTimeMillis()}")
val viewVisible = TreeIterables.breadthFirstViewTraversal(view)
Expand Down Expand Up @@ -205,3 +210,9 @@ fun allSecretsKnownIdling(session: Session): IdlingResource {

return res
}

fun clickOnAndGoBack(@StringRes name: Int, block: () -> Unit) {
BaristaClickInteractions.clickOn(name)
block()
Espresso.pressBack()
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ package im.vector.app

import android.net.Uri
import androidx.lifecycle.Observer
import im.vector.app.ui.UiTestBase
import im.vector.app.ui.robot.OnboardingRobot
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
Expand All @@ -39,7 +39,7 @@ abstract class VerificationTestBase {
val password = "password"
val homeServerUrl: String = "http://10.0.2.2:8080"

protected val uiTestBase = UiTestBase()
protected val uiTestBase = OnboardingRobot()

fun createAccountAndSync(matrix: Matrix,
userName: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,18 @@
package im.vector.app.espresso.tools

import android.app.Activity
import android.view.View
import androidx.test.espresso.Espresso
import androidx.test.espresso.matcher.ViewMatchers
import im.vector.app.activityIdlingResource
import im.vector.app.waitForView
import im.vector.app.withIdlingResource
import org.hamcrest.Matcher

inline fun <reified T : Activity> waitUntilActivityVisible(noinline block: (() -> Unit)) {
inline fun <reified T : Activity> waitUntilActivityVisible(noinline block: (() -> Unit) = {}) {
withIdlingResource(activityIdlingResource(T::class.java), block)
}

fun waitUntilViewVisible(viewMatcher: Matcher<View>) {
Espresso.onView(ViewMatchers.isRoot()).perform(waitForView(viewMatcher))
}
Loading

0 comments on commit cea2206

Please sign in to comment.