Fix instrumentation tests
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
This commit is contained in:
parent
8c0bce3e98
commit
30b6d2346a
6 changed files with 35 additions and 33 deletions
|
@ -91,6 +91,7 @@ dependencies {
|
|||
androidTestImplementation("org.mockito:mockito-core:2.28.2")
|
||||
androidTestImplementation("androidx.test:runner:1.2.0")
|
||||
androidTestImplementation("androidx.test:rules:1.2.0")
|
||||
androidTestImplementation("androidx.test.ext:junit:1.1.1")
|
||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0")
|
||||
androidTestImplementation("androidx.test.espresso:espresso-intents:3.2.0")
|
||||
}
|
||||
|
|
|
@ -5,10 +5,10 @@ import android.content.ClipboardManager
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.SystemClock
|
||||
import androidx.test.InstrumentationRegistry
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.filters.LargeTest
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.runner.AndroidJUnit4
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import android.util.Log
|
||||
import com.zeapo.pwdstore.crypto.PgpActivity
|
||||
import kotlinx.android.synthetic.main.decrypt_layout.*
|
||||
|
@ -22,26 +22,27 @@ import org.junit.runner.RunWith
|
|||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
import java.nio.charset.StandardCharsets
|
||||
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@LargeTest
|
||||
class DecryptTest {
|
||||
lateinit var targetContext: Context
|
||||
lateinit var testContext: Context
|
||||
private lateinit var targetContext: Context
|
||||
private lateinit var testContext: Context
|
||||
lateinit var activity: PgpActivity
|
||||
|
||||
val name = "sub"
|
||||
val parentPath = "/category/"
|
||||
private val name = "sub"
|
||||
private val parentPath = "/category/"
|
||||
lateinit var path: String
|
||||
lateinit var repoPath: String
|
||||
|
||||
@Rule @JvmField
|
||||
var mActivityRule: ActivityTestRule<PgpActivity> = ActivityTestRule<PgpActivity>(PgpActivity::class.java, true, false)
|
||||
|
||||
fun init() {
|
||||
private fun init() {
|
||||
targetContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
testContext = InstrumentationRegistry.getContext()
|
||||
testContext = InstrumentationRegistry.getInstrumentation().context
|
||||
copyAssets("encrypted-store", File(targetContext.filesDir, "test-store").absolutePath)
|
||||
repoPath = File(targetContext.filesDir, "test-store").absolutePath
|
||||
path = "$repoPath/$parentPath/$name.gpg".replace("//", "/")
|
||||
|
@ -61,14 +62,14 @@ class DecryptTest {
|
|||
|
||||
assertEquals("/cat1/n1.gpg", PgpActivity.getRelativePath(pathOne, "/fake/path"))
|
||||
assertEquals("/cat1/", PgpActivity.getParentPath(pathOne, "/fake/path"))
|
||||
assertEquals("n1", PgpActivity.getName(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("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/"))
|
||||
assertEquals("n2", PgpActivity.getName("$pathTwo/fake/path"))
|
||||
assertEquals("n2", PgpActivity.getName("$pathTwo/fake/path/"))
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -88,13 +89,13 @@ class DecryptTest {
|
|||
@Test
|
||||
fun shouldDecrypt() {
|
||||
init()
|
||||
val clearPass = IOUtils.toString(testContext.assets.open("clear-store/category/sub"))
|
||||
val clearPass = IOUtils.toString(testContext.assets.open("clear-store/category/sub"), StandardCharsets.UTF_8)
|
||||
val passEntry = PasswordEntry(clearPass)
|
||||
|
||||
// Setup the timer to 1 second
|
||||
// first remember the previous timer to set it back later
|
||||
val showTime = try {
|
||||
Integer.parseInt(activity.settings.getString("general_show_time", "45"))
|
||||
Integer.parseInt(activity.settings.getString("general_show_time", "45") ?: "45")
|
||||
} catch (e: NumberFormatException) {
|
||||
45
|
||||
}
|
||||
|
@ -129,7 +130,7 @@ class DecryptTest {
|
|||
FileUtils.forceMkdir(File(destination))
|
||||
FileUtils.cleanDirectory(File(destination))
|
||||
|
||||
val testContext = InstrumentationRegistry.getContext()
|
||||
val testContext = InstrumentationRegistry.getInstrumentation().context
|
||||
val assetManager = testContext.assets
|
||||
val files: Array<String>? = assetManager.list(source)
|
||||
|
||||
|
@ -150,7 +151,7 @@ class DecryptTest {
|
|||
output.flush()
|
||||
output.close()
|
||||
} catch (e: IOException) {
|
||||
Log.e("tag", "Failed to copy asset file: " + filename, e)
|
||||
Log.e("tag", "Failed to copy asset file: $filename", e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,15 +3,15 @@ package com.zeapo.pwdstore
|
|||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import androidx.test.InstrumentationRegistry
|
||||
import androidx.test.espresso.Espresso.onView
|
||||
import androidx.test.espresso.action.ViewActions.*
|
||||
import androidx.test.espresso.assertion.ViewAssertions
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.filters.LargeTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.runner.AndroidJUnit4
|
||||
import com.zeapo.pwdstore.crypto.PgpActivity
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.apache.commons.io.IOUtils
|
||||
|
@ -24,21 +24,21 @@ import java.io.File
|
|||
@RunWith(AndroidJUnit4::class)
|
||||
@LargeTest
|
||||
class EncryptTest {
|
||||
lateinit var targetContext: Context
|
||||
lateinit var testContext: Context
|
||||
lateinit var activity: PgpActivity
|
||||
private lateinit var targetContext: Context
|
||||
private lateinit var testContext: Context
|
||||
private lateinit var activity: PgpActivity
|
||||
|
||||
val name = "sub"
|
||||
val parentPath = "/category/"
|
||||
lateinit var path: String
|
||||
lateinit var repoPath: String
|
||||
private val name = "sub"
|
||||
private val parentPath = "/category/"
|
||||
private lateinit var path: String
|
||||
private lateinit var repoPath: String
|
||||
|
||||
@Rule @JvmField
|
||||
var mActivityRule: ActivityTestRule<PgpActivity> = ActivityTestRule<PgpActivity>(PgpActivity::class.java, true, false)
|
||||
|
||||
fun init() {
|
||||
private fun init() {
|
||||
targetContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
testContext = InstrumentationRegistry.getContext()
|
||||
testContext = InstrumentationRegistry.getInstrumentation().context
|
||||
|
||||
// have an empty store
|
||||
FileUtils.forceMkdir(File(targetContext.filesDir, "test-store"))
|
||||
|
|
|
@ -6,7 +6,7 @@ import junit.framework.TestCase;
|
|||
|
||||
public class OtpTest extends TestCase {
|
||||
public void testOtp() {
|
||||
String code = Otp.calculateCode("JBSWY3DPEHPK3PXP", 0L);
|
||||
String code = Otp.calculateCode("JBSWY3DPEHPK3PXP", 0L, "sha1", "s");
|
||||
assertEquals("282760", code);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import junit.framework.TestCase;
|
|||
|
||||
public class PasswordEntryTest extends TestCase {
|
||||
|
||||
public void testGetPassword() throws Exception {
|
||||
public void testGetPassword() {
|
||||
assertEquals("fooooo", new PasswordEntry("fooooo\nbla\n").getPassword());
|
||||
assertEquals("fooooo", new PasswordEntry("fooooo\nbla").getPassword());
|
||||
assertEquals("fooooo", new PasswordEntry("fooooo\n").getPassword());
|
||||
|
@ -15,7 +15,7 @@ public class PasswordEntryTest extends TestCase {
|
|||
assertEquals("", new PasswordEntry("").getPassword());
|
||||
}
|
||||
|
||||
public void testGetExtraContent() throws Exception {
|
||||
public void testGetExtraContent() {
|
||||
assertEquals("bla\n", new PasswordEntry("fooooo\nbla\n").getExtraContent());
|
||||
assertEquals("bla", new PasswordEntry("fooooo\nbla").getExtraContent());
|
||||
assertEquals("", new PasswordEntry("fooooo\n").getExtraContent());
|
||||
|
@ -26,7 +26,7 @@ public class PasswordEntryTest extends TestCase {
|
|||
assertEquals("", new PasswordEntry("").getExtraContent());
|
||||
}
|
||||
|
||||
public void testGetUsername() throws Exception {
|
||||
public void testGetUsername() {
|
||||
assertEquals("username", new PasswordEntry("secret\nextra\nlogin: username\ncontent\n").getUsername());
|
||||
assertEquals("username", new PasswordEntry("\nextra\nusername: username\ncontent\n").getUsername());
|
||||
assertEquals("username", new PasswordEntry("\nUSERNaMe: username\ncontent\n").getUsername());
|
||||
|
@ -34,7 +34,7 @@ public class PasswordEntryTest extends TestCase {
|
|||
assertNull(new PasswordEntry("secret\nextra\ncontent\n").getUsername());
|
||||
}
|
||||
|
||||
public void testHasUsername() throws Exception {
|
||||
public void testHasUsername() {
|
||||
assertTrue(new PasswordEntry("secret\nextra\nlogin: username\ncontent\n").hasUsername());
|
||||
assertFalse(new PasswordEntry("secret\nextra\ncontent\n").hasUsername());
|
||||
assertFalse(new PasswordEntry("secret\nlogin failed\n").hasUsername());
|
||||
|
|
|
@ -83,7 +83,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
|
|||
}
|
||||
private val relativeParentPath: String by lazy { getParentPath(fullPath, repoPath) }
|
||||
|
||||
private val settings: SharedPreferences by lazy { PreferenceManager.getDefaultSharedPreferences(this) }
|
||||
val settings: SharedPreferences by lazy { PreferenceManager.getDefaultSharedPreferences(this) }
|
||||
private val keyIDs: MutableSet<String> by lazy { settings.getStringSet("openpgp_key_ids_set", emptySet()) }
|
||||
private var mServiceConnection: OpenPgpServiceConnection? = null
|
||||
|
||||
|
|
Loading…
Reference in a new issue