Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Test
- fun signInUserWithInvalidEmail() {
- goToSignIn()
- AcceptanceHelper.updateValidationTextView(R.string.ui_data_attribute_email, "kokojambo@mail.ru")
- AcceptanceHelper.updateValidationTextView(R.string.ui_data_attribute_password, VALID_PASSWORD)
- AcceptanceHelper.clickOnButtonInLayout(R.id.mainSignButton, R.string.common_signin_button_text, R.id.inputLayout)
- val idlingResource = DialogIdlingResource()
- registerDialogIdlingResource()
- unregisterDialogIdlingResource()
- }
- private fun registerDialogIdlingResource() {
- val instrumentation = InstrumentationRegistry.getInstrumentation()
- idlingResource = DialogIdlingResource()
- Espresso.registerIdlingResources(idlingResource)
- }
- private fun unregisterDialogIdlingResource() {
- Espresso.unregisterIdlingResources(idlingResource)
- }
- class DialogIdlingResource(private val waitTimeSeconds: Int = 5) : IdlingResource {
- private var resourceCallback: IdlingResource.ResourceCallback? = null
- private var startTime = -1L
- override fun getName(): String {
- return DialogIdlingResource::class.java.name
- }
- override fun isIdleNow(): Boolean {
- if (startTime < 0) {
- startTime = System.currentTimeMillis()
- }
- val timeOut = System.currentTimeMillis() - waitTimeSeconds * 1000 > startTime
- if (timeOut)
- throw TimeoutException("error")
- val idle = !isDialogRunning
- if (idle && resourceCallback != null) {
- resourceCallback!!.onTransitionToIdle()
- }
- return idle
- }
- override fun registerIdleTransitionCallback(resourceCallback: IdlingResource.ResourceCallback) {
- this.resourceCallback = resourceCallback
- }
- private val isDialogRunning: Boolean
- get() {
- try {
- onView(Matchers.allOf(withId(R.id.titleTextView), ViewMatchers.withText("Warning")))
- .check(ViewAssertions.matches(isDisplayed()))
- } catch (e: NoMatchingViewException) {
- e.printStackTrace()
- System.out.println("some text")
- }
- return true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement