Fix some more E2EE tests

This commit is contained in:
ganfra 2022-06-06 14:54:19 +02:00
parent c1961d1fda
commit 705788394b
6 changed files with 22 additions and 17 deletions

View File

@ -35,4 +35,11 @@ data class CryptoTestData(val roomId: String,
testHelper.signOutAndClose(it) testHelper.signOutAndClose(it)
} }
} }
fun initializeCrossSigning(testHelper: CryptoTestHelper){
sessions.forEach {
testHelper.initializeCrossSigning(it)
}
}
} }

View File

@ -264,7 +264,8 @@ class E2eeSanityTests : InstrumentedTest {
} }
} }
// after initial sync events are not decrypted, so we have to try manually // after initial sync events are not decrypted, so we have to try manually
cryptoTestHelper.ensureCannotDecrypt(sentEventIds, newBobSession, e2eRoomID, MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID) // TODO CHANGE WHEN AVAILABLE FROM RUST
cryptoTestHelper.ensureCannotDecrypt(sentEventIds, newBobSession, e2eRoomID, MXCryptoError.ErrorType.UNABLE_TO_DECRYPT)//MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID)
// Let's now import keys from backup // Let's now import keys from backup

View File

@ -123,7 +123,7 @@ class XSigningTest : InstrumentedTest {
} }
// Check that alice can see bob keys // Check that alice can see bob keys
testHelper.runBlockingTest { aliceSession.cryptoService().downloadKeys(listOf(bobSession.myUserId), true) } testHelper.runBlockingTest { aliceSession.cryptoService().downloadKeysIfNeeded(listOf(bobSession.myUserId), true) }
val bobKeysFromAlicePOV = testHelper.runBlockingTest { val bobKeysFromAlicePOV = testHelper.runBlockingTest {
aliceSession.cryptoService().crossSigningService().getUserCrossSigningKeys(bobSession.myUserId) aliceSession.cryptoService().crossSigningService().getUserCrossSigningKeys(bobSession.myUserId)
@ -178,7 +178,7 @@ class XSigningTest : InstrumentedTest {
// Check that alice can see bob keys // Check that alice can see bob keys
val bobUserId = bobSession.myUserId val bobUserId = bobSession.myUserId
testHelper.runBlockingTest { aliceSession.cryptoService().downloadKeys(listOf(bobUserId), true) } testHelper.runBlockingTest { aliceSession.cryptoService().downloadKeysIfNeeded(listOf(bobUserId), true) }
val bobKeysFromAlicePOV = testHelper.runBlockingTest { val bobKeysFromAlicePOV = testHelper.runBlockingTest {
aliceSession.cryptoService().crossSigningService().getUserCrossSigningKeys(bobUserId) aliceSession.cryptoService().crossSigningService().getUserCrossSigningKeys(bobUserId)
@ -197,7 +197,7 @@ class XSigningTest : InstrumentedTest {
// Check that bob first session sees the new login // Check that bob first session sees the new login
val data = testHelper.runBlockingTest { val data = testHelper.runBlockingTest {
bobSession.cryptoService().downloadKeys(listOf(bobUserId), true) bobSession.cryptoService().downloadKeysIfNeeded(listOf(bobUserId), true)
} }
if (data.getUserDeviceIds(bobUserId)?.contains(bobSecondDeviceId) == false) { if (data.getUserDeviceIds(bobUserId)?.contains(bobSecondDeviceId) == false) {
@ -216,7 +216,7 @@ class XSigningTest : InstrumentedTest {
// Now alice should cross trust bob's second device // Now alice should cross trust bob's second device
val data2 = testHelper.runBlockingTest { val data2 = testHelper.runBlockingTest {
aliceSession.cryptoService().downloadKeys(listOf(bobUserId), true) aliceSession.cryptoService().downloadKeysIfNeeded(listOf(bobUserId), true)
} }
// check that the device is seen // check that the device is seen

View File

@ -243,10 +243,10 @@ class KeyShareTests : InstrumentedTest {
// force keys download // force keys download
commonTestHelper.runBlockingTest { commonTestHelper.runBlockingTest {
aliceSession1.cryptoService().downloadKeys(listOf(aliceSession1.myUserId), true) aliceSession1.cryptoService().downloadKeysIfNeeded(listOf(aliceSession1.myUserId), true)
} }
commonTestHelper.runBlockingTest { commonTestHelper.runBlockingTest {
aliceSession2.cryptoService().downloadKeys(listOf(aliceSession2.myUserId), true) aliceSession2.cryptoService().downloadKeysIfNeeded(listOf(aliceSession2.myUserId), true)
} }
var session1ShortCode: String? = null var session1ShortCode: String? = null

View File

@ -55,7 +55,7 @@ class SASTest : InstrumentedTest {
val testHelper = CommonTestHelper(context()) val testHelper = CommonTestHelper(context())
val cryptoTestHelper = CryptoTestHelper(testHelper) val cryptoTestHelper = CryptoTestHelper(testHelper)
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom() val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom()
cryptoTestData.initializeCrossSigning(cryptoTestHelper)
val aliceSession = cryptoTestData.firstSession val aliceSession = cryptoTestData.firstSession
val bobSession = cryptoTestData.secondSession val bobSession = cryptoTestData.secondSession
@ -74,7 +74,7 @@ class SASTest : InstrumentedTest {
bobSession.cryptoService().getMyCryptoDevice() bobSession.cryptoService().getMyCryptoDevice()
} }
val txID = testHelper.runBlockingTest { val txID = testHelper.runBlockingTest {
aliceSession.cryptoService().downloadKeys(listOf(bobSession.myUserId), forceDownload = true) aliceSession.cryptoService().downloadKeysIfNeeded(listOf(bobSession.myUserId), forceDownload = true)
aliceVerificationService.beginDeviceVerification(bobSession.myUserId, bobDevice.deviceId) aliceVerificationService.beginDeviceVerification(bobSession.myUserId, bobDevice.deviceId)
} }
assertNotNull("Alice should have a started transaction", txID) assertNotNull("Alice should have a started transaction", txID)
@ -357,7 +357,7 @@ class SASTest : InstrumentedTest {
bobSession.cryptoService().getMyCryptoDevice().deviceId bobSession.cryptoService().getMyCryptoDevice().deviceId
} }
testHelper.runBlockingTest { testHelper.runBlockingTest {
aliceSession.cryptoService().downloadKeys(listOf(bobUserId), forceDownload = true) aliceSession.cryptoService().downloadKeysIfNeeded(listOf(bobUserId), forceDownload = true)
aliceVerificationService.beginDeviceVerification(bobUserId, bobDeviceId) aliceVerificationService.beginDeviceVerification(bobUserId, bobDeviceId)
aliceVerificationService.beginDeviceVerification(bobUserId, bobDeviceId) aliceVerificationService.beginDeviceVerification(bobUserId, bobDeviceId)
} }
@ -423,6 +423,7 @@ class SASTest : InstrumentedTest {
val testHelper = CommonTestHelper(context()) val testHelper = CommonTestHelper(context())
val cryptoTestHelper = CryptoTestHelper(testHelper) val cryptoTestHelper = CryptoTestHelper(testHelper)
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom() val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom()
cryptoTestData.initializeCrossSigning(cryptoTestHelper)
val sasTestHelper = SasVerificationTestHelper(testHelper, cryptoTestHelper) val sasTestHelper = SasVerificationTestHelper(testHelper, cryptoTestHelper)
val aliceSession = cryptoTestData.firstSession val aliceSession = cryptoTestData.firstSession
val bobSession = cryptoTestData.secondSession!! val bobSession = cryptoTestData.secondSession!!
@ -461,6 +462,7 @@ class SASTest : InstrumentedTest {
val testHelper = CommonTestHelper(context()) val testHelper = CommonTestHelper(context())
val cryptoTestHelper = CryptoTestHelper(testHelper) val cryptoTestHelper = CryptoTestHelper(testHelper)
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom() val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom()
cryptoTestData.initializeCrossSigning(cryptoTestHelper)
val sasVerificationTestHelper = SasVerificationTestHelper(testHelper, cryptoTestHelper) val sasVerificationTestHelper = SasVerificationTestHelper(testHelper, cryptoTestHelper)
val transactionId = sasVerificationTestHelper.requestVerificationAndWaitForReadyState(cryptoTestData, listOf(VerificationMethod.SAS)) val transactionId = sasVerificationTestHelper.requestVerificationAndWaitForReadyState(cryptoTestData, listOf(VerificationMethod.SAS))
val aliceSession = cryptoTestData.firstSession val aliceSession = cryptoTestData.firstSession
@ -566,12 +568,9 @@ class SASTest : InstrumentedTest {
val testHelper = CommonTestHelper(context()) val testHelper = CommonTestHelper(context())
val cryptoTestHelper = CryptoTestHelper(testHelper) val cryptoTestHelper = CryptoTestHelper(testHelper)
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom() val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoom()
cryptoTestData.initializeCrossSigning(cryptoTestHelper)
val aliceSession = cryptoTestData.firstSession val aliceSession = cryptoTestData.firstSession
val bobSession = cryptoTestData.secondSession val bobSession = cryptoTestData.secondSession!!
cryptoTestHelper.initializeCrossSigning(aliceSession)
cryptoTestHelper.initializeCrossSigning(bobSession!!)
val aliceVerificationService = aliceSession.cryptoService().verificationService() val aliceVerificationService = aliceSession.cryptoService().verificationService()
val bobVerificationService = bobSession.cryptoService().verificationService() val bobVerificationService = bobSession.cryptoService().verificationService()

View File

@ -30,8 +30,6 @@ class SasVerificationTestHelper(private val testHelper: CommonTestHelper, privat
fun requestVerificationAndWaitForReadyState(cryptoTestData: CryptoTestData, supportedMethods: List<VerificationMethod>): String { fun requestVerificationAndWaitForReadyState(cryptoTestData: CryptoTestData, supportedMethods: List<VerificationMethod>): String {
val aliceSession = cryptoTestData.firstSession val aliceSession = cryptoTestData.firstSession
val bobSession = cryptoTestData.secondSession!! val bobSession = cryptoTestData.secondSession!!
cryptoTestHelper.initializeCrossSigning(aliceSession)
cryptoTestHelper.initializeCrossSigning(bobSession)
val aliceVerificationService = aliceSession.cryptoService().verificationService() val aliceVerificationService = aliceSession.cryptoService().verificationService()
val bobVerificationService = bobSession.cryptoService().verificationService() val bobVerificationService = bobSession.cryptoService().verificationService()