summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt19
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt4
2 files changed, 15 insertions, 8 deletions
diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt
index 2bf1083e..6823f67a 100644
--- a/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt
+++ b/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt
@@ -56,12 +56,19 @@ class DecryptTest {
@Test
fun pathShouldDecompose() {
- init()
-
- assertEquals("/category/sub.gpg", PgpActivity.getRelativePath(path, repoPath))
- assertEquals("/category/", PgpActivity.getParentPath(path, repoPath))
- assertEquals("sub", PgpActivity.getName(path, repoPath))
- assertEquals("sub", PgpActivity.getName(path, "$repoPath/"))
+ val pathOne = "/fake/path/cat1/n1.gpg".replace("//", "/")
+ val pathTwo = "/fake/path/n2.gpg".replace("//", "/")
+
+ assertEquals("/cat1/n1.gpg", PgpActivity.getRelativePath(pathOne, "/fake/path"))
+ assertEquals("/cat1/", PgpActivity.getParentPath(pathOne, "/fake/path"))
+ assertEquals("n1", PgpActivity.getName(pathOne, "/fake/path"))
+ // test that even if we append a `/` it still works
+ assertEquals("n1", PgpActivity.getName(pathOne, "/fake/path/"))
+
+ assertEquals("/n2.gpg", PgpActivity.getRelativePath(pathTwo, "/fake/path"))
+ assertEquals("/", PgpActivity.getParentPath(pathTwo, "/fake/path"))
+ assertEquals("n2", PgpActivity.getName(pathTwo, "/fake/path"))
+ assertEquals("n2", PgpActivity.getName(pathTwo, "/fake/path/"))
}
@Test
diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
index 6bfac55f..73c9f935 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
@@ -570,7 +570,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
* Gets the relative path to the repository
*/
fun getRelativePath(fullPath: String, repositoryPath: String): String =
- fullPath.replace(repositoryPath, "").replace("//", "/")
+ fullPath.replace(repositoryPath, "").replace("/+".toRegex(), "/")
/**
* Gets the Parent path, relative to the repository
@@ -578,7 +578,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
fun getParentPath(fullPath: String, repositoryPath: String) : String {
val relativePath = getRelativePath(fullPath, repositoryPath)
val index = relativePath.lastIndexOf("/")
- return "/${relativePath.substring(startIndex = 0, endIndex = index + 1)}/".replace("//", "/")
+ return "/${relativePath.substring(startIndex = 0, endIndex = index + 1)}/".replace("/+".toRegex(), "/")
}
/**