mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -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.copyBackupToDownloadFolder
|
||||||
import org.isoron.uhabits.acceptance.steps.exportFullBackup
|
import org.isoron.uhabits.acceptance.steps.exportFullBackup
|
||||||
import org.isoron.uhabits.acceptance.steps.importBackupFromDownloadFolder
|
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
|
import org.junit.Test
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@@ -51,4 +53,14 @@ class BackupTest : BaseUserInterfaceTest() {
|
|||||||
importBackupFromDownloadFolder()
|
importBackupFromDownloadFolder()
|
||||||
verifyDisplaysText("Wake up early")
|
verifyDisplaysText("Wake up early")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun shouldExportBackupToPublicFolder() {
|
||||||
|
launchApp()
|
||||||
|
clearDownloadFolder()
|
||||||
|
clearBackupFolder()
|
||||||
|
selectPublicBackupFolder()
|
||||||
|
exportFullBackup()
|
||||||
|
verifyBackupInDownloadFolder()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,9 @@
|
|||||||
package org.isoron.uhabits.acceptance.steps
|
package org.isoron.uhabits.acceptance.steps
|
||||||
|
|
||||||
import android.os.Build.VERSION.SDK_INT
|
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.By
|
||||||
import androidx.test.uiautomator.UiSelector
|
import androidx.test.uiautomator.UiSelector
|
||||||
import org.isoron.uhabits.BaseUserInterfaceTest.Companion.device
|
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.CommonSteps.pressBack
|
||||||
import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.MenuItem.SETTINGS
|
import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.MenuItem.SETTINGS
|
||||||
import org.isoron.uhabits.acceptance.steps.ListHabitsSteps.clickMenu
|
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 BACKUP_FOLDER = "/sdcard/Android/data/org.isoron.uhabits/files/Backups/"
|
||||||
const val DOWNLOAD_FOLDER = "/sdcard/Download/"
|
const val DOWNLOAD_FOLDER = "/sdcard/Download/"
|
||||||
@@ -41,6 +45,7 @@ fun exportFullBackup() {
|
|||||||
|
|
||||||
fun clearDownloadFolder() {
|
fun clearDownloadFolder() {
|
||||||
device.executeShellCommand("rm -rf /sdcard/Download")
|
device.executeShellCommand("rm -rf /sdcard/Download")
|
||||||
|
device.executeShellCommand("mkdir /sdcard/Download")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clearBackupFolder() {
|
fun clearBackupFolder() {
|
||||||
@@ -52,6 +57,13 @@ fun copyBackupToDownloadFolder() {
|
|||||||
device.executeShellCommand("chown root $DOWNLOAD_FOLDER")
|
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() {
|
fun importBackupFromDownloadFolder() {
|
||||||
clickMenu(SETTINGS)
|
clickMenu(SETTINGS)
|
||||||
clickText("Import data")
|
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() {
|
fun openLauncher() {
|
||||||
device.pressHome()
|
device.pressHome()
|
||||||
device.waitForIdle()
|
device.waitForIdle()
|
||||||
|
|||||||
Reference in New Issue
Block a user