From 34961f27d075355db02afe9699e90d07b0c6b32a Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 8 Jul 2024 13:28:19 +0200 Subject: [PATCH] Try with IntentsTestRule Signed-off-by: alperozturk --- .github/workflows/screenShotTest.yml | 2 +- .../android/ui/trashbin/TrashbinActivityIT.kt | 100 +++++++----------- scripts/updateScreenshots.sh | 2 +- 3 files changed, 43 insertions(+), 61 deletions(-) diff --git a/.github/workflows/screenShotTest.yml b/.github/workflows/screenShotTest.yml index 6bff3c7362..c633ab6782 100644 --- a/.github/workflows/screenShotTest.yml +++ b/.github/workflows/screenShotTest.yml @@ -23,7 +23,7 @@ jobs: matrix: scheme: [ Light ] color: [ blue ] - api-level: [ 29 ] + api-level: [ 27 ] steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/app/src/androidTest/java/com/owncloud/android/ui/trashbin/TrashbinActivityIT.kt b/app/src/androidTest/java/com/owncloud/android/ui/trashbin/TrashbinActivityIT.kt index 44f50d48e4..16820537da 100644 --- a/app/src/androidTest/java/com/owncloud/android/ui/trashbin/TrashbinActivityIT.kt +++ b/app/src/androidTest/java/com/owncloud/android/ui/trashbin/TrashbinActivityIT.kt @@ -10,10 +10,8 @@ package com.owncloud.android.ui.trashbin import android.accounts.Account import android.accounts.AccountManager import android.content.Intent -import androidx.test.core.app.ActivityScenario -import androidx.test.core.app.ApplicationProvider import androidx.test.espresso.IdlingRegistry -import androidx.test.ext.junit.rules.ActivityScenarioRule +import androidx.test.espresso.intent.rule.IntentsTestRule import com.nextcloud.utils.EspressoIdlingResource import com.owncloud.android.AbstractIT import com.owncloud.android.MainApp @@ -31,11 +29,8 @@ class TrashbinActivityIT : AbstractIT() { FILES } - private var scenario: ActivityScenario? = null - val intent = Intent(ApplicationProvider.getApplicationContext(), TrashbinActivity::class.java) - @get:Rule - val activityRule = ActivityScenarioRule(intent) + var activityRule = IntentsTestRule(TrashbinActivity::class.java, true, false) @Before fun registerIdlingResource() { @@ -45,76 +40,65 @@ class TrashbinActivityIT : AbstractIT() { @After fun unregisterIdlingResource() { IdlingRegistry.getInstance().unregister(EspressoIdlingResource.countingIdlingResource) - scenario?.close() } @Test @ScreenshotTest fun error() { - scenario = activityRule.scenario - scenario?.onActivity { sut -> - val trashbinRepository = TrashbinLocalRepository(TestCase.ERROR) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.loadFolder() } - screenshot(sut) - } + val sut: TrashbinActivity = activityRule.launchActivity(null) + val trashbinRepository = TrashbinLocalRepository(TestCase.ERROR) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.loadFolder() } + screenshot(sut) } } @Test @ScreenshotTest fun files() { - scenario = activityRule.scenario - scenario?.onActivity { sut -> - val trashbinRepository = TrashbinLocalRepository(TestCase.FILES) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.loadFolder() } - screenshot(sut) - } + val sut: TrashbinActivity = activityRule.launchActivity(null) + val trashbinRepository = TrashbinLocalRepository(TestCase.FILES) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.loadFolder() } + screenshot(sut) } } @Test @ScreenshotTest fun empty() { - scenario = activityRule.scenario - scenario?.onActivity { sut -> - val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.loadFolder() } - screenshot(sut) - } + val sut: TrashbinActivity = activityRule.launchActivity(null) + val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.loadFolder() } + screenshot(sut) } } @Test @ScreenshotTest fun loading() { - scenario = activityRule.scenario - scenario?.onActivity { sut -> - val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.showInitialLoading() } - screenshot(sut) - } + val sut: TrashbinActivity = activityRule.launchActivity(null) + val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.showInitialLoading() } + screenshot(sut) } } @Test @ScreenshotTest fun normalUser() { - scenario = activityRule.scenario - scenario?.onActivity { sut -> - val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.showUser() } - screenshot(sut) - } + val sut: TrashbinActivity = activityRule.launchActivity(null) + val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.showUser() } + screenshot(sut) } } @@ -128,18 +112,16 @@ class TrashbinActivityIT : AbstractIT() { platformAccountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_BASE_URL, "https://nextcloud.localhost") platformAccountManager.setUserData(temp, AccountUtils.Constants.KEY_USER_ID, "differentUser") - val intent = Intent(targetContext, TrashbinActivity::class.java) - intent.putExtra(Intent.EXTRA_USER, "differentUser@https://nextcloud.localhost") + val intent = Intent().apply { + putExtra(Intent.EXTRA_USER, "differentUser@https://nextcloud.localhost") + } + val sut: TrashbinActivity = activityRule.launchActivity(intent) - val sutScenario = ActivityScenario.launch(intent) - sutScenario.onActivity { sut -> - sut.intent = intent - val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) - sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) - onIdleSync { - sut.runOnUiThread { sut.showUser() } - screenshot(sut) - } + val trashbinRepository = TrashbinLocalRepository(TestCase.EMPTY) + sut.trashbinPresenter = TrashbinPresenter(trashbinRepository, sut) + onIdleSync { + sut.runOnUiThread { sut.showUser() } + screenshot(sut) } } } diff --git a/scripts/updateScreenshots.sh b/scripts/updateScreenshots.sh index 83b5d78e60..07ec525ef6 100755 --- a/scripts/updateScreenshots.sh +++ b/scripts/updateScreenshots.sh @@ -12,7 +12,7 @@ fi ## emulator if [[ ! $(emulator -list-avds | grep uiComparison -c) -eq 0 ]]; then avdmanager delete avd -n uiComparison - (sleep 5; echo "no") | avdmanager create avd -n uiComparison -c 100M -k "system-images;android-30;google_apis;x86" --abi "google_apis/x86" + (sleep 5; echo "no") | avdmanager create avd -n uiComparison -c 100M -k "system-images;android-27;google_apis;x86" --abi "google_apis/x86" fi if [ "$1" == "debug" ]; then