1package com.peachpasswords.qa23import android.content.Context4import androidx.test.core.app.ApplicationProvider5import androidx.test.ext.junit.runners.AndroidJUnit46import com.peachpasswords.di.VaultRepositoryEntryPoint7import com.peachpasswords.vault.CreateVaultResult8import com.peachpasswords.vault.UnlockResult9import com.peachpasswords.vault.VaultEntry10import dagger.hilt.android.EntryPointAccessors11import kotlinx.coroutines.runBlocking12import org.junit.Assert.assertEquals13import org.junit.Assert.assertTrue14import org.junit.Test15import org.junit.runner.RunWith161718192021222324252627282930@RunWith(AndroidJUnit4::class)31class VaultSeedTest {3233 private val masterPassword = "Tulip9Marble42"3435 @Test36 fun seedVaultWithLoginsForAutofillQA() {37 val context = ApplicationProvider.getApplicationContext<Context>()38 val vault = EntryPointAccessors39 .fromApplication(context, VaultRepositoryEntryPoint::class.java)40 .vaultRepository()41 runBlocking {42 if (!vault.hasVault()) {43 assertEquals(CreateVaultResult.Success, vault.createVault(masterPassword))44 }45 if (!vault.isUnlocked.value) {46 assertEquals(UnlockResult.Success, vault.unlock(masterPassword))47 }48 if (vault.getEntries().isEmpty()) {49 50 51 52 53 vault.addEntry(login("GitHub", "https://github.com").copy(totp = "JBSWY3DPEHPK3PXP"))54 vault.addEntry(login("Proton Mail", "https://account.proton.me/login"))55 vault.addEntry(login("Vercel", "https://vercel.com/login"))56 }57 val entries = vault.getEntries()58 assertEquals(3, entries.size)59 assertTrue(entries.all { it.password != null && it.url != null })60 }61 }6263 private fun login(title: String, url: String) = VaultEntry(64 id = "",65 type = "login",66 title = title,67 username = "june",68 password = "Correct-Horse-$title-42",69 url = url,70 createdAt = 0,71 modifiedAt = 0,72 )73}