summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt76
1 files changed, 45 insertions, 31 deletions
diff --git a/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt b/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
index 835815e8..520d51ac 100644
--- a/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
+++ b/app/src/test/java/dev/msfjarvis/aps/util/settings/MigrationsTest.kt
@@ -2,12 +2,12 @@
* Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
* SPDX-License-Identifier: GPL-3.0-only
*/
-
@file:Suppress("DEPRECATION")
package dev.msfjarvis.aps.util.settings
import android.content.Context
+import android.content.SharedPreferences
import androidx.core.content.edit
import com.github.ivanshafran.sharedpreferencesmock.SPMockBuilder
import dev.msfjarvis.aps.util.extensions.getString
@@ -15,12 +15,32 @@ import dev.msfjarvis.aps.util.extensions.sharedPrefs
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
+import org.junit.Before
+import org.junit.Rule
import org.junit.Test
+import org.junit.rules.TemporaryFolder
class MigrationsTest {
- private fun checkOldKeysAreRemoved(context: Context) =
- with(context.sharedPrefs) {
+ @get:Rule val tempFolder = TemporaryFolder()
+
+ private lateinit var context: Context
+ private lateinit var filesDir: String
+ private lateinit var sharedPrefs: SharedPreferences
+ private lateinit var encryptedSharedPreferences: SharedPreferences
+ private lateinit var proxySharedPreferences: SharedPreferences
+
+ @Before
+ fun setup() {
+ context = SPMockBuilder().createContext()
+ filesDir = tempFolder.root.path
+ sharedPrefs = SPMockBuilder().createSharedPreferences()
+ encryptedSharedPreferences = SPMockBuilder().createSharedPreferences()
+ proxySharedPreferences = SPMockBuilder().createSharedPreferences()
+ }
+
+ private fun checkOldKeysAreRemoved() =
+ with(sharedPrefs) {
assertNull(getString(PreferenceKeys.GIT_REMOTE_PORT))
assertNull(getString(PreferenceKeys.GIT_REMOTE_USERNAME))
assertNull(getString(PreferenceKeys.GIT_REMOTE_SERVER))
@@ -30,8 +50,7 @@ class MigrationsTest {
@Test
fun verifySshWithCustomPortMigration() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit {
+ sharedPrefs.edit {
clear()
putString(PreferenceKeys.GIT_REMOTE_PORT, "2200")
putString(PreferenceKeys.GIT_REMOTE_USERNAME, "msfjarvis")
@@ -40,18 +59,17 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Ssh.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.Password.pref)
}
- runMigrations(context)
- checkOldKeysAreRemoved(context)
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ checkOldKeysAreRemoved()
assertEquals(
- context.sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
+ sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
"ssh://msfjarvis@192.168.0.102:2200/mnt/disk3/pass-repo"
)
}
@Test
fun verifySshWithDefaultPortMigration() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit {
+ sharedPrefs.edit {
clear()
putString(PreferenceKeys.GIT_REMOTE_USERNAME, "msfjarvis")
putString(PreferenceKeys.GIT_REMOTE_LOCATION, "/mnt/disk3/pass-repo")
@@ -59,18 +77,17 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Ssh.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.SshKey.pref)
}
- runMigrations(context)
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
checkOldKeysAreRemoved(context)
assertEquals(
- context.sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
+ sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
"msfjarvis@192.168.0.102:/mnt/disk3/pass-repo"
)
}
@Test
fun verifyHttpsWithGitHubMigration() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit {
+ sharedPrefs.edit {
clear()
putString(PreferenceKeys.GIT_REMOTE_USERNAME, "msfjarvis")
putString(PreferenceKeys.GIT_REMOTE_LOCATION, "Android-Password-Store/pass-test")
@@ -78,47 +95,44 @@ class MigrationsTest {
putString(PreferenceKeys.GIT_REMOTE_PROTOCOL, Protocol.Https.pref)
putString(PreferenceKeys.GIT_REMOTE_AUTH, AuthMode.None.pref)
}
- runMigrations(context)
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
checkOldKeysAreRemoved(context)
assertEquals(
- context.sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
+ sharedPrefs.getString(PreferenceKeys.GIT_REMOTE_URL),
"https://github.com/Android-Password-Store/pass-test"
)
}
@Test
fun verifyHiddenFoldersMigrationIfDisabled() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit { clear() }
- runMigrations(context)
- assertEquals(true, context.sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, true))
- assertEquals(false, context.sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
+ sharedPrefs.edit { clear() }
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ assertEquals(true, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, true))
+ assertEquals(false, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
}
@Test
fun verifyHiddenFoldersMigrationIfEnabled() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit {
+ sharedPrefs.edit {
clear()
putBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, true)
}
- runMigrations(context)
- assertEquals(false, context.sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, false))
- assertEquals(true, context.sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
+ assertEquals(false, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, false))
+ assertEquals(true, sharedPrefs.getBoolean(PreferenceKeys.SHOW_HIDDEN_CONTENTS, false))
}
@Test
fun verifyClearClipboardHistoryMigration() {
- val context = SPMockBuilder().createContext()
- context.sharedPrefs.edit {
+ sharedPrefs.edit {
clear()
putBoolean(PreferenceKeys.CLEAR_CLIPBOARD_20X, true)
}
- runMigrations(context)
+ runMigrations(filesDir, sharedPrefs, GitSettings(sharedPrefs, encryptedSharedPreferences, proxySharedPreferences, filesDir))
assertEquals(
true,
- context.sharedPrefs.getBoolean(PreferenceKeys.CLEAR_CLIPBOARD_HISTORY, false)
+ sharedPrefs.getBoolean(PreferenceKeys.CLEAR_CLIPBOARD_HISTORY, false)
)
- assertFalse(context.sharedPrefs.contains(PreferenceKeys.CLEAR_CLIPBOARD_20X))
+ assertFalse(sharedPrefs.contains(PreferenceKeys.CLEAR_CLIPBOARD_20X))
}
}