|
|
@ -73,10 +73,11 @@ class LoggedInPresenterTest { |
|
|
|
@Test |
|
|
|
@Test |
|
|
|
fun `present - report crypto status analytics`() = runTest { |
|
|
|
fun `present - report crypto status analytics`() = runTest { |
|
|
|
val analyticsService = FakeAnalyticsService() |
|
|
|
val analyticsService = FakeAnalyticsService() |
|
|
|
|
|
|
|
val roomListService = FakeRoomListService() |
|
|
|
val verificationService = FakeSessionVerificationService() |
|
|
|
val verificationService = FakeSessionVerificationService() |
|
|
|
val encryptionService = FakeEncryptionService() |
|
|
|
val encryptionService = FakeEncryptionService() |
|
|
|
val presenter = LoggedInPresenter( |
|
|
|
val presenter = LoggedInPresenter( |
|
|
|
matrixClient = FakeMatrixClient(encryptionService = encryptionService), |
|
|
|
matrixClient = FakeMatrixClient(roomListService = roomListService, encryptionService = encryptionService), |
|
|
|
networkMonitor = FakeNetworkMonitor(NetworkStatus.Online), |
|
|
|
networkMonitor = FakeNetworkMonitor(NetworkStatus.Online), |
|
|
|
pushService = FakePushService(), |
|
|
|
pushService = FakePushService(), |
|
|
|
sessionVerificationService = verificationService, |
|
|
|
sessionVerificationService = verificationService, |
|
|
@ -90,17 +91,19 @@ class LoggedInPresenterTest { |
|
|
|
encryptionService.emitRecoveryState(RecoveryState.INCOMPLETE) |
|
|
|
encryptionService.emitRecoveryState(RecoveryState.INCOMPLETE) |
|
|
|
verificationService.emitVerifiedStatus(SessionVerifiedStatus.Verified) |
|
|
|
verificationService.emitVerifiedStatus(SessionVerifiedStatus.Verified) |
|
|
|
|
|
|
|
|
|
|
|
// Should only capture once (not report while checking state -like unknown-) |
|
|
|
skipItems(4) |
|
|
|
consumeItemsUntilPredicate { |
|
|
|
|
|
|
|
analyticsService.capturedEvents.size == 1 && |
|
|
|
assertThat(analyticsService.capturedEvents.size).isEqualTo(1) |
|
|
|
analyticsService.capturedEvents[0] is CryptoSessionStateChange |
|
|
|
assertThat(analyticsService.capturedEvents[0]).isInstanceOf(CryptoSessionStateChange::class.java) |
|
|
|
} |
|
|
|
|
|
|
|
consumeItemsUntilPredicate { |
|
|
|
assertThat(analyticsService.capturedUserProperties.size).isEqualTo(1) |
|
|
|
analyticsService.capturedUserProperties.size == 1 && |
|
|
|
assertThat(analyticsService.capturedUserProperties[0].recoveryState).isEqualTo(UserProperties.RecoveryState.Incomplete) |
|
|
|
analyticsService.capturedUserProperties[0].recoveryState == UserProperties.RecoveryState.Incomplete && |
|
|
|
assertThat(analyticsService.capturedUserProperties[0].verificationState).isEqualTo(UserProperties.VerificationState.Verified) |
|
|
|
analyticsService.capturedUserProperties[0].verificationState == UserProperties.VerificationState.Verified |
|
|
|
|
|
|
|
} |
|
|
|
// ensure a sync status change does not trigger a new capture |
|
|
|
cancelAndConsumeRemainingEvents() |
|
|
|
roomListService.postSyncIndicator(RoomListService.SyncIndicator.Show) |
|
|
|
|
|
|
|
skipItems(1) |
|
|
|
|
|
|
|
assertThat(analyticsService.capturedEvents.size).isEqualTo(1) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|