1
0
Fork 0

for #10753: improves the clickAddBookmarkButton method in flaky tests (#10842)

master
Oana Horvath 2020-05-22 21:06:24 +03:00 committed by GitHub
parent fd39a489b0
commit b2673bc654
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 4 deletions

View File

@ -6,15 +6,20 @@
package org.mozilla.fenix.ui.robots
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.UiController
import androidx.test.espresso.ViewAction
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.contrib.RecyclerViewActions
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.Visibility
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
@ -25,6 +30,7 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.Until
import org.hamcrest.Matcher
import org.hamcrest.Matchers.allOf
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
@ -70,10 +76,25 @@ class ThreeDotMenuMainRobot {
Until.findObject(By.desc("Bookmark")),
waitingTime
)
addBookmarkButton().click()
// wait for main menu to disappear
mDevice.waitNotNull(
Until.gone(By.res("mozac_browser_menu_recyclerView"))
addBookmarkButton().perform(
click(
/* no-op rollback action for when clicks randomly perform a long click, Espresso should attempt to click again
https://issuetracker.google.com/issues/37078920#comment9
*/
object : ViewAction {
override fun getDescription(): String {
return "Handle tap->longclick."
}
override fun getConstraints(): Matcher<View> {
return isAssignableFrom(View::class.java)
}
override fun perform(uiController: UiController?, view: View?) {
// do nothing
}
}
)
)
}