diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/BackupTest.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/BackupTest.kt index 879a8774..4f4c05ca 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/BackupTest.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/BackupTest.kt @@ -30,6 +30,7 @@ import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.MenuItem.DELETE import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.clickMenu import org.isoron.uhabits.acceptance.steps.clearBackupFolder import org.isoron.uhabits.acceptance.steps.clearDownloadFolder +import org.isoron.uhabits.acceptance.steps.clearPublicBackupFolderSelection import org.isoron.uhabits.acceptance.steps.copyBackupToDownloadFolder import org.isoron.uhabits.acceptance.steps.exportFullBackup import org.isoron.uhabits.acceptance.steps.importBackupFromDownloadFolder @@ -62,5 +63,6 @@ class BackupTest : BaseUserInterfaceTest() { selectPublicBackupFolder() exportFullBackup() verifyBackupInDownloadFolder() + clearPublicBackupFolderSelection() } } 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 36881666..4d62f29a 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 @@ -53,8 +53,13 @@ fun clearBackupFolder() { } fun copyBackupToDownloadFolder() { + val srcListing = device.executeShellCommand("ls $BACKUP_FOLDER") + assertTrue("Backup folder is empty. Contents: [$srcListing]", srcListing.contains("Loop Habits Backup")) + device.executeShellCommand("rm -rf $DOWNLOAD_FOLDER") device.executeShellCommand("mv $BACKUP_FOLDER $DOWNLOAD_FOLDER") device.executeShellCommand("chown root $DOWNLOAD_FOLDER") + val dstListing = device.executeShellCommand("ls $DOWNLOAD_FOLDER") + assertTrue("Backup not found in download folder. Contents: [$dstListing]", dstListing.contains("Loop Habits Backup")) } fun selectPublicBackupFolder() { @@ -64,6 +69,12 @@ fun selectPublicBackupFolder() { prefs.edit().putString("publicBackupFolder", uri.toString()).commit() } +fun clearPublicBackupFolderSelection() { + val context = InstrumentationRegistry.getInstrumentation().targetContext + val prefs = PreferenceManager.getDefaultSharedPreferences(context) + prefs.edit().remove("publicBackupFolder").commit() +} + fun importBackupFromDownloadFolder() { clickMenu(SETTINGS) clickText("Import data") @@ -110,6 +121,11 @@ fun verifyBackupInDownloadFolder() { assertTrue(listing.contains("Loop Habits Backup")) } +fun verifyBackupInBackupFolder() { + val listing = device.executeShellCommand("ls $BACKUP_FOLDER") + assertTrue(listing.contains("Loop Habits Backup")) +} + fun openLauncher() { device.pressHome() device.waitForIdle()