mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 01:08:50 -06:00
Automatic public backup: Tests for AutoBackup to public folder
This commit is contained in:
@@ -33,6 +33,8 @@ import org.isoron.uhabits.acceptance.steps.clearDownloadFolder
|
||||
import org.isoron.uhabits.acceptance.steps.copyBackupToDownloadFolder
|
||||
import org.isoron.uhabits.acceptance.steps.exportFullBackup
|
||||
import org.isoron.uhabits.acceptance.steps.importBackupFromDownloadFolder
|
||||
import org.isoron.uhabits.acceptance.steps.selectPublicBackupFolder
|
||||
import org.isoron.uhabits.acceptance.steps.verifyBackupInDownloadFolder
|
||||
import org.junit.Test
|
||||
|
||||
@LargeTest
|
||||
@@ -51,4 +53,14 @@ class BackupTest : BaseUserInterfaceTest() {
|
||||
importBackupFromDownloadFolder()
|
||||
verifyDisplaysText("Wake up early")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldExportBackupToPublicFolder() {
|
||||
launchApp()
|
||||
clearDownloadFolder()
|
||||
clearBackupFolder()
|
||||
selectPublicBackupFolder()
|
||||
exportFullBackup()
|
||||
verifyBackupInDownloadFolder()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
package org.isoron.uhabits.acceptance.steps
|
||||
|
||||
import android.os.Build.VERSION.SDK_INT
|
||||
import android.os.SystemClock.sleep
|
||||
import android.net.Uri
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.By
|
||||
import androidx.test.uiautomator.UiSelector
|
||||
import org.isoron.uhabits.BaseUserInterfaceTest.Companion.device
|
||||
@@ -28,6 +30,8 @@ import org.isoron.uhabits.acceptance.steps.CommonSteps.clickText
|
||||
import org.isoron.uhabits.acceptance.steps.CommonSteps.pressBack
|
||||
import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.MenuItem.SETTINGS
|
||||
import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.clickMenu
|
||||
import org.junit.Assert.assertTrue
|
||||
import java.io.File
|
||||
|
||||
const val BACKUP_FOLDER = "/sdcard/Android/data/org.isoron.uhabits/files/Backups/"
|
||||
const val DOWNLOAD_FOLDER = "/sdcard/Download/"
|
||||
@@ -41,6 +45,7 @@ fun exportFullBackup() {
|
||||
|
||||
fun clearDownloadFolder() {
|
||||
device.executeShellCommand("rm -rf /sdcard/Download")
|
||||
device.executeShellCommand("mkdir /sdcard/Download")
|
||||
}
|
||||
|
||||
fun clearBackupFolder() {
|
||||
@@ -52,6 +57,13 @@ fun copyBackupToDownloadFolder() {
|
||||
device.executeShellCommand("chown root $DOWNLOAD_FOLDER")
|
||||
}
|
||||
|
||||
fun selectPublicBackupFolder() {
|
||||
val context = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
val uri = Uri.fromFile(File(DOWNLOAD_FOLDER))
|
||||
prefs.edit().putString("publicBackupFolder", uri.toString()).commit()
|
||||
}
|
||||
|
||||
fun importBackupFromDownloadFolder() {
|
||||
clickMenu(SETTINGS)
|
||||
clickText("Import data")
|
||||
@@ -93,6 +105,11 @@ fun importBackupFromDownloadFolder() {
|
||||
}
|
||||
}
|
||||
|
||||
fun verifyBackupInDownloadFolder() {
|
||||
val listing = device.executeShellCommand("ls $DOWNLOAD_FOLDER")
|
||||
assertTrue(listing.contains("Loop Habits Backup"))
|
||||
}
|
||||
|
||||
fun openLauncher() {
|
||||
device.pressHome()
|
||||
device.waitForIdle()
|
||||
|
||||
Reference in New Issue
Block a user