aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2020-04-17 00:24:13 +0530
committerGitHub <noreply@github.com>2020-04-17 00:24:13 +0530
commit4ffd7ed9bffa5139277ffb91de5a69f2b714222c (patch)
treebccd7b27685d602da42d03111eeb4a36b1a803c1 /app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt
parent8b4751f8250dea3efe04c73a87bdfe2926e2ac3f (diff)
downloadHardenedPass-4ffd7ed9bffa5139277ffb91de5a69f2b714222c.tar.gz
HardenedPass-4ffd7ed9bffa5139277ffb91de5a69f2b714222c.zip
Enable emulator tests (#708)
* github: Enable instrumentation testing in PRs Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Upgrade to Gradle 6.3 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Remove outdated and broken tests, redo PasswordEntryTest in Kotlin Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Remove now unused test assets Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * github: Disable debug APK uploads in PR testing Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Update .github/workflows/pull_request.yml * Update .github/workflows/pull_request.yml Switching to Ubuntu fails due to the SDK 29 missing. Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
Diffstat (limited to 'app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt')
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt97
1 files changed, 97 insertions, 0 deletions
diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt
new file mode 100644
index 00000000..2f7028a4
--- /dev/null
+++ b/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.kt
@@ -0,0 +1,97 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore
+
+import kotlin.test.assertEquals
+import kotlin.test.assertFalse
+import kotlin.test.assertNull
+import kotlin.test.assertTrue
+import org.junit.Test
+
+class PasswordEntryTest {
+ @Test fun testGetPassword() {
+ assertEquals("fooooo", PasswordEntry("fooooo\nbla\n").password)
+ assertEquals("fooooo", PasswordEntry("fooooo\nbla").password)
+ assertEquals("fooooo", PasswordEntry("fooooo\n").password)
+ assertEquals("fooooo", PasswordEntry("fooooo").password)
+ assertEquals("", PasswordEntry("\nblubb\n").password)
+ assertEquals("", PasswordEntry("\nblubb").password)
+ assertEquals("", PasswordEntry("\n").password)
+ assertEquals("", PasswordEntry("").password)
+ }
+
+ @Test fun testGetExtraContent() {
+ assertEquals("bla\n", PasswordEntry("fooooo\nbla\n").extraContent)
+ assertEquals("bla", PasswordEntry("fooooo\nbla").extraContent)
+ assertEquals("", PasswordEntry("fooooo\n").extraContent)
+ assertEquals("", PasswordEntry("fooooo").extraContent)
+ assertEquals("blubb\n", PasswordEntry("\nblubb\n").extraContent)
+ assertEquals("blubb", PasswordEntry("\nblubb").extraContent)
+ assertEquals("", PasswordEntry("\n").extraContent)
+ assertEquals("", PasswordEntry("").extraContent)
+ }
+
+ @Test fun testGetUsername() {
+ assertEquals(
+ "username",
+ PasswordEntry("secret\nextra\nlogin: username\ncontent\n").username)
+ assertEquals(
+ "username",
+ PasswordEntry("\nextra\nusername: username\ncontent\n").username)
+ assertEquals(
+ "username", PasswordEntry("\nUSERNaMe: username\ncontent\n").username)
+ assertEquals("username", PasswordEntry("\nLOGiN:username").username)
+ assertNull(PasswordEntry("secret\nextra\ncontent\n").username)
+ }
+
+ @Test fun testHasUsername() {
+ assertTrue(PasswordEntry("secret\nextra\nlogin: username\ncontent\n").hasUsername())
+ assertFalse(PasswordEntry("secret\nextra\ncontent\n").hasUsername())
+ assertFalse(PasswordEntry("secret\nlogin failed\n").hasUsername())
+ assertFalse(PasswordEntry("\n").hasUsername())
+ assertFalse(PasswordEntry("").hasUsername())
+ }
+
+ @Test fun testNoTotpUriPresent() {
+ val entry = PasswordEntry("secret\nextra\nlogin: username\ncontent")
+ assertFalse(entry.hasTotp())
+ assertNull(entry.totpSecret)
+ }
+
+ @Test fun testTotpUriInPassword() {
+ val entry = PasswordEntry("otpauth://totp/test?secret=JBSWY3DPEHPK3PXP")
+ assertTrue(entry.hasTotp())
+ assertEquals("JBSWY3DPEHPK3PXP", entry.totpSecret)
+ }
+
+ @Test fun testTotpUriInContent() {
+ val entry = PasswordEntry(
+ "secret\nusername: test\notpauth://totp/test?secret=JBSWY3DPEHPK3PXP")
+ assertTrue(entry.hasTotp())
+ assertEquals("JBSWY3DPEHPK3PXP", entry.totpSecret)
+ }
+
+ @Test fun testNoHotpUriPresent() {
+ val entry = PasswordEntry("secret\nextra\nlogin: username\ncontent")
+ assertFalse(entry.hasHotp())
+ assertNull(entry.hotpSecret)
+ assertNull(entry.hotpCounter)
+ }
+
+ @Test fun testHotpUriInPassword() {
+ val entry = PasswordEntry("otpauth://hotp/test?secret=JBSWY3DPEHPK3PXP&counter=25")
+ assertTrue(entry.hasHotp())
+ assertEquals("JBSWY3DPEHPK3PXP", entry.hotpSecret)
+ assertEquals(25, entry.hotpCounter)
+ }
+
+ @Test fun testHotpUriInContent() {
+ val entry = PasswordEntry(
+ "secret\nusername: test\notpauth://hotp/test?secret=JBSWY3DPEHPK3PXP&counter=25")
+ assertTrue(entry.hasHotp())
+ assertEquals("JBSWY3DPEHPK3PXP", entry.hotpSecret)
+ assertEquals(25, entry.hotpCounter)
+ }
+}