From a7845c92903246a4211699ee4e0a477895157131 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Mon, 26 Apr 2021 21:21:51 -0500 Subject: [PATCH] Make large-tests pass on API 23 --- build.sh | 1 + .../uhabits/acceptance/steps/BackupSteps.kt | 19 +++++++++++++++++-- .../uhabits/acceptance/steps/CommonSteps.kt | 2 ++ .../acceptance/steps/ListHabitsSteps.kt | 2 ++ .../list/ListHabitsSelectionMenuBehavior.kt | 3 ++- 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 775040463..da9194029 100755 --- a/build.sh +++ b/build.sh @@ -96,6 +96,7 @@ android_test() { log_info "Launching emulator..." $EMULATOR -avd $AVDNAME -port 6${API}0 1>/dev/null 2>&1 & + log_info "Waiting for emulator to boot..." export ADB="$ADB -s emulator-6${API}0" $ADB wait-for-device shell 'while [[ -z "$(getprop sys.boot_completed)" ]]; do echo Waiting...; sleep 1; done; input keyevent 82' || return 1 diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/BackupSteps.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/BackupSteps.kt index aa6e60309..c281932eb 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/BackupSteps.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/BackupSteps.kt @@ -54,11 +54,22 @@ fun copyBackupToDownloadFolder() { fun importBackupFromDownloadFolder() { clickMenu(SETTINGS) clickText("Import data") - if (SDK_INT >= 26) { + if (SDK_INT <= 23) { + while (!device.hasObject(By.textContains("Show file size"))) { + device.click(720, 100) // Click overflow menu + Thread.sleep(1000) + } + if (device.hasObject(By.textContains("Show SD card"))) { + device.findObject(UiSelector().textContains("Show SD card")).click() + Thread.sleep(1000) + } else { + device.pressBack() + } device.click(50, 90) // Click menu button + device.findObject(UiSelector().textContains("Internal storage")).click() device.findObject(UiSelector().textContains("Download")).click() device.findObject(UiSelector().textContains("Loop")).click() - } else { + } else if (SDK_INT <= 25) { while (!device.hasObject(By.textContains("Show file size"))) { device.click(720, 100) // Click overflow menu Thread.sleep(1000) @@ -73,6 +84,10 @@ fun importBackupFromDownloadFolder() { device.findObject(UiSelector().textContains("Android")).click() device.findObject(UiSelector().textContains("Download")).click() device.findObject(UiSelector().textContains("Loop")).click() + } else { + device.click(50, 90) // Click menu button + device.findObject(UiSelector().textContains("Download")).click() + device.findObject(UiSelector().textContains("Loop")).click() } } diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/CommonSteps.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/CommonSteps.kt index 9e8cbd276..cc871d23c 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/CommonSteps.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/CommonSteps.kt @@ -45,6 +45,7 @@ object CommonSteps : BaseUserInterfaceTest() { fun clickText(text: String?) { scrollToText(text) Espresso.onView(ViewMatchers.withText(text)).perform(ViewActions.click()) + device.waitForIdle() } fun clickText(@StringRes id: Int) { @@ -62,6 +63,7 @@ object CommonSteps : BaseUserInterfaceTest() { fun longClickText(text: String?) { scrollToText(text) Espresso.onView(ViewMatchers.withText(text)).perform(ViewActions.longClick()) + device.waitForIdle() } fun pressHome() { diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/ListHabitsSteps.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/ListHabitsSteps.kt index ceaefb7c2..6c83d2d07 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/ListHabitsSteps.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/steps/ListHabitsSteps.kt @@ -29,6 +29,7 @@ import org.hamcrest.CoreMatchers.allOf import org.hamcrest.CoreMatchers.endsWith import org.hamcrest.Matcher import org.isoron.uhabits.BaseUserInterfaceTest +import org.isoron.uhabits.BaseUserInterfaceTest.Companion.device import org.isoron.uhabits.R import org.isoron.uhabits.activities.habits.list.views.CheckmarkButtonView import java.util.LinkedList @@ -53,6 +54,7 @@ object ListHabitsSteps { CommonSteps.clickText(R.string.hide_completed) } } + device.waitForIdle() } private fun clickTextInsideOverflowMenu(id: Int) { diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt index c978eba83..00d90a1a7 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt @@ -75,7 +75,8 @@ class ListHabitsSelectionMenuBehavior @Inject constructor( } fun onEditHabits() { - screen.showEditHabitsScreen(adapter.getSelected()) + val selected = adapter.getSelected() + if (selected.isNotEmpty()) screen.showEditHabitsScreen(selected) adapter.clearSelection() }