From 8606ac92e1888c50070cb43a9ffcd806b6348a22 Mon Sep 17 00:00:00 2001 From: valere Date: Wed, 4 Jan 2023 09:51:51 +0100 Subject: [PATCH] Fix verify with passphrase test --- .../vector/app/VerifySessionPassphraseTest.kt | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/vector-app/src/androidTest/java/im/vector/app/VerifySessionPassphraseTest.kt b/vector-app/src/androidTest/java/im/vector/app/VerifySessionPassphraseTest.kt index fb256fddb2..950217c7b3 100644 --- a/vector-app/src/androidTest/java/im/vector/app/VerifySessionPassphraseTest.kt +++ b/vector-app/src/androidTest/java/im/vector/app/VerifySessionPassphraseTest.kt @@ -20,7 +20,6 @@ import android.view.View import androidx.recyclerview.widget.RecyclerView import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions.click -import androidx.test.espresso.action.ViewActions.closeSoftKeyboard import androidx.test.espresso.action.ViewActions.typeText import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem @@ -33,18 +32,19 @@ import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest import androidx.test.platform.app.InstrumentationRegistry -import com.adevinta.android.barista.internal.viewaction.SleepViewAction import im.vector.app.core.resources.StringProvider import im.vector.app.core.utils.getMatrixInstance +import im.vector.app.espresso.tools.waitUntilActivityVisible +import im.vector.app.espresso.tools.waitUntilViewVisible import im.vector.app.features.MainActivity import im.vector.app.features.crypto.quads.SharedSecureStorageActivity import im.vector.app.features.crypto.recover.BootstrapCrossSigningTask import im.vector.app.features.crypto.recover.Params import im.vector.app.features.crypto.recover.SetupMode import im.vector.app.features.home.HomeActivity +import im.vector.app.ui.robot.AnalyticsRobot import kotlinx.coroutines.runBlocking import org.junit.Before -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -59,7 +59,6 @@ import kotlin.random.Random @RunWith(AndroidJUnit4::class) @LargeTest -@Ignore class VerifySessionPassphraseTest : VerificationTestBase() { var existingSession: Session? = null @@ -120,40 +119,39 @@ class VerifySessionPassphraseTest : VerificationTestBase() { uiTestBase.login(userId = userId, password = password, homeServerUrl = homeServerUrl) - // Thread.sleep(6000) - withIdlingResource(activityIdlingResource(HomeActivity::class.java)) { - onView(withId(R.id.roomListContainer)) - .check(matches(isDisplayed())) - .perform(closeSoftKeyboard()) + val analyticsRobot = AnalyticsRobot() + analyticsRobot.optOut() + + waitUntilActivityVisible { + waitUntilViewVisible(withId(R.id.roomListContainer)) } val activity = EspressoHelper.getCurrentActivity()!! val uiSession = (activity as HomeActivity).activeSessionHolder.getActiveSession() - withIdlingResource(initialSyncIdlingResource(uiSession)) { - onView(withId(R.id.roomListContainer)) - .check(matches(isDisplayed())) + waitUntilViewVisible(withId(R.id.roomListContainer)) } // THIS IS THE ONLY WAY I FOUND TO CLICK ON ALERTERS... :( // Cannot wait for view because of alerter animation? ... - Thread.sleep(6000) + onView(isRoot()) + .perform(waitForView(withId(com.tapadoo.alerter.R.id.llAlertBackground))) + + Thread.sleep(1000) val popup = activity.findViewById(com.tapadoo.alerter.R.id.llAlertBackground) activity.runOnUiThread { popup.performClick() } - onView(withId(R.id.bottomSheetFragmentContainer)) + onView(isRoot()) + .perform(waitForView(withId(R.id.bottomSheetFragmentContainer))) + + onView(withText(R.string.verification_verify_identity)) .check(matches(isDisplayed())) - onView(isRoot()).perform(SleepViewAction.sleep(2000)) - - onView(withText(R.string.use_latest_app)) - .check(matches(isDisplayed())) - - // 4S is not setup so passphrase option should be hidden - onView(withId(R.id.bottomSheetFragmentContainer)) - .check(matches(hasDescendant(withText(R.string.verification_cannot_access_other_session)))) + // 4S is setup so passphrase option should be visible + onView(withId(R.id.bottomSheetVerificationRecyclerView)) + .check(matches((hasDescendant(withText(R.string.verification_cannot_access_other_session))))) onView(withId(R.id.bottomSheetVerificationRecyclerView)) .perform( @@ -178,11 +176,18 @@ class VerifySessionPassphraseTest : VerificationTestBase() { withIdlingResource(activityIdlingResource(HomeActivity::class.java)) { System.out.println("*** passphrase 1.1") onView(withId(R.id.bottomSheetVerificationRecyclerView)) - .check( - matches(hasDescendant(withText(R.string.verification_conclusion_ok_self_notice))) - ) + .perform(waitForView(hasDescendant(withText(R.string.verification_conclusion_ok_notice)))) } + // click on done + onView(withId(R.id.bottomSheetVerificationRecyclerView)) + .perform( + actionOnItem( + hasDescendant(withText(R.string.done)), + click() + ) + ) + System.out.println("*** passphrase 2") // check that all secrets are known? assert(uiSession.cryptoService().crossSigningService().canCrossSign())