diff --git a/app/src/androidTest/java/fr/free/nrw/commons/LoginActivityTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/LoginActivityTest.kt index 22d17e565f..ac2eb6ff76 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/LoginActivityTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/LoginActivityTest.kt @@ -46,6 +46,7 @@ class LoginActivityTest { @Test fun testForgotPassword() { + UITestHelper.sleep(3000) Espresso.onView(ViewMatchers.withId(R.id.forgot_password)) .perform(ViewActions.click()) Intents.intended(CoreMatchers.allOf(IntentMatchers.hasAction(Intent.ACTION_VIEW), IntentMatchers.hasData(BuildConfig.FORGOT_PASSWORD_URL))); diff --git a/app/src/androidTest/java/fr/free/nrw/commons/SignupTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/SignupTest.kt index 5feb282af5..534e6b27f3 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/SignupTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/SignupTest.kt @@ -35,6 +35,7 @@ class SignupTest { } + UITestHelper.sleep(3000) Espresso.onView(withId(R.id.sign_up_button)) .check(ViewAssertions.matches(ViewMatchers.isDisplayed())) .perform(click()) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/UITestHelper.kt b/app/src/androidTest/java/fr/free/nrw/commons/UITestHelper.kt index df03157c2a..78a1fb62b1 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/UITestHelper.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/UITestHelper.kt @@ -25,6 +25,7 @@ class UITestHelper { fun loginUser() { try { //Perform Login + sleep(3000) onView(ViewMatchers.withId(R.id.login_username)) .perform(ViewActions.clearText(), ViewActions.typeText(getTestUsername())) closeSoftKeyboard() diff --git a/app/src/androidTest/java/fr/free/nrw/commons/UploadTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/UploadTest.kt index 4c57a3bb97..20d618ffd1 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/UploadTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/UploadTest.kt @@ -135,11 +135,7 @@ class UploadTest { val commonsFileName = "MobileTest " + dateFormat.format(Date()) // Try to dismiss the error, if there is one (probably about duplicate files on Commons) - try { - onView(withText("Yes")) - .check(matches(isDisplayed())) - .perform(click()) - } catch (ignored: NoMatchingViewException) {} + dismissWarning("Yes") onView(allOf(isDisplayed(), withId(R.id.et_title))) .perform(replaceText(commonsFileName)) @@ -151,25 +147,27 @@ class UploadTest { onView(allOf(isDisplayed(), withId(R.id.btn_next))) .perform(click()) - try { - onView(withText("Yes")) - .check(matches(isDisplayed())) - .perform(click()) - } catch (ignored: NoMatchingViewException) {} + UITestHelper.sleep(5000) + dismissWarning("Yes") - UITestHelper.sleep(1000) + UITestHelper.sleep(3000) onView(allOf(isDisplayed(), withId(R.id.et_search))) .perform(replaceText("Uploaded with Mobile/Android Tests")) UITestHelper.sleep(3000) - onView(allOf(isDisplayed(), withParent(withId(R.id.rv_categories)))) - .perform(click()) + try { + onView(allOf(isDisplayed(), withParent(withId(R.id.rv_categories)))) + .perform(click()) + } catch (ignored: NoMatchingViewException) { + } onView(allOf(isDisplayed(), withId(R.id.btn_next))) .perform(click()) + dismissWarning("Yes, Submit") + UITestHelper.sleep(500) onView(allOf(isDisplayed(), withId(R.id.btn_submit))) @@ -181,4 +179,13 @@ class UploadTest { commonsFileName.replace(' ', '_') + ".jpg" Timber.i("File should be uploaded to $fileUrl") } + + private fun dismissWarning(warningText: String) { + try { + onView(withText(warningText)) + .check(matches(isDisplayed())) + .perform(click()) + } catch (ignored: NoMatchingViewException) { + } + } } \ No newline at end of file diff --git a/app/src/androidTest/java/fr/free/nrw/commons/ViewActions.kt b/app/src/androidTest/java/fr/free/nrw/commons/ViewActions.kt new file mode 100644 index 0000000000..856ce4c010 --- /dev/null +++ b/app/src/androidTest/java/fr/free/nrw/commons/ViewActions.kt @@ -0,0 +1,25 @@ +package fr.free.nrw.commons + +import android.view.View +import androidx.test.espresso.UiController +import androidx.test.espresso.ViewAction +import org.hamcrest.Matcher + +object ViewActions { + fun clickChildViewWithId(id: Int): ViewAction { + return object : ViewAction { + override fun getConstraints(): Matcher { + return null + } + + override fun getDescription(): String { + return "Click on a child view with specified id." + } + + override fun perform(uiController: UiController, view: View) { + val v = view.findViewById(id) + v.performClick() + } + } + } +} \ No newline at end of file