Complete Android parity and security audit (#111)
This commit is contained in:
1 parent
45d78aa5b3
commit
b54636b7bc
14 files changed
+498
-75
No files matched your search
@@ -86,10 +86,10 @@ class TotpScreenTest {
|
||||
compose.onNodeWithText("Unlock").performClick()
|
||||
compose.waitUntil(5000) { fixture.ticks > 0 }
|
||||
compose.onNodeWithText("Back to TOTP entries").performClick()
|
||||
val stopped = fixture.ticks
|
||||
compose.onNodeWithTag("otp-code").assertDoesNotExist()
|
||||
val stopped = compose.runOnIdle { fixture.ticks }
|
||||
Thread.sleep(1200)
|
||||
compose.waitForIdle()
|
||||
assertEquals(stopped, fixture.ticks)
|
||||
compose.runOnIdle { assertEquals(stopped, fixture.ticks) }
|
||||
}
|
||||
|
||||
@Test fun largeTextShowsEveryDigitWithoutClipping() {
|
||||
|
||||
+20
@@ -9,7 +9,9 @@ import java.util.UUID
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.runBlocking
|
||||
@@ -66,6 +68,24 @@ class NativeEntryViewerTest {
|
||||
val key = setup.generate("Viewer fixture", password).selectedKey
|
||||
setup.setupLocal(requireNotNull(key), password)
|
||||
}
|
||||
repeat(12) {
|
||||
coroutineScope {
|
||||
val onboarding = async(Dispatchers.IO) {
|
||||
session.storage().androidOnboarding(session.backend()).use { it.status() }
|
||||
}
|
||||
val home = async(Dispatchers.IO) {
|
||||
session.storage().androidHomeOperation(
|
||||
session.backend(),
|
||||
object : MobileClock {
|
||||
override fun monotonicMilliseconds(): ULong =
|
||||
android.os.SystemClock.elapsedRealtime().toULong()
|
||||
}
|
||||
).use { it.cached() }
|
||||
}
|
||||
assertTrue(onboarding.await().configured)
|
||||
home.await()
|
||||
}
|
||||
}
|
||||
for (appearance in Appearance.entries) {
|
||||
withContext(Dispatchers.Main.immediate) { authentication.setAppearance(appearance) }
|
||||
withTimeout(30000) {
|
||||
|
||||
Reference in new issue
Block a user