@@ -25,6 +25,7 @@ class UtdTrackerTest {
2525 eventId = AN_EVENT_ID .value,
2626 timeToDecryptMs = null ,
2727 cause = UtdCause .UNKNOWN ,
28+ eventLocalAgeMillis = 100L ,
2829 )
2930 )
3031 assertThat(fakeAnalyticsService.capturedEvents).containsExactly(
@@ -34,7 +35,11 @@ class UtdTrackerTest {
3435 cryptoSDK = Error .CryptoSDK .Rust ,
3536 timeToDecryptMillis = - 1 ,
3637 domain = Error .Domain .E2EE ,
37- name = Error .Name .OlmKeysNotSentError
38+ name = Error .Name .OlmKeysNotSentError ,
39+ isFederated = false ,
40+ isMatrixDotOrg = false ,
41+ userTrustsOwnIdentity = false ,
42+ eventLocalAgeMillis = 100 ,
3843 )
3944 )
4045 assertThat(fakeAnalyticsService.screenEvents).isEmpty()
@@ -59,7 +64,11 @@ class UtdTrackerTest {
5964 cryptoSDK = Error .CryptoSDK .Rust ,
6065 timeToDecryptMillis = 123 ,
6166 domain = Error .Domain .E2EE ,
62- name = Error .Name .OlmKeysNotSentError
67+ name = Error .Name .OlmKeysNotSentError ,
68+ isFederated = false ,
69+ isMatrixDotOrg = false ,
70+ userTrustsOwnIdentity = false ,
71+ eventLocalAgeMillis = 0 ,
6372 )
6473 )
6574 assertThat(fakeAnalyticsService.screenEvents).isEmpty()
@@ -84,7 +93,11 @@ class UtdTrackerTest {
8493 cryptoSDK = Error .CryptoSDK .Rust ,
8594 timeToDecryptMillis = 123 ,
8695 domain = Error .Domain .E2EE ,
87- name = Error .Name .ExpectedDueToMembership
96+ name = Error .Name .ExpectedDueToMembership ,
97+ isFederated = false ,
98+ isMatrixDotOrg = false ,
99+ userTrustsOwnIdentity = false ,
100+ eventLocalAgeMillis = 0 ,
88101 )
89102 )
90103 assertThat(fakeAnalyticsService.screenEvents).isEmpty()
@@ -109,7 +122,11 @@ class UtdTrackerTest {
109122 cryptoSDK = Error .CryptoSDK .Rust ,
110123 timeToDecryptMillis = 123 ,
111124 domain = Error .Domain .E2EE ,
112- name = Error .Name .ExpectedSentByInsecureDevice
125+ name = Error .Name .ExpectedSentByInsecureDevice ,
126+ isFederated = false ,
127+ isMatrixDotOrg = false ,
128+ userTrustsOwnIdentity = false ,
129+ eventLocalAgeMillis = 0 ,
113130 )
114131 )
115132 }
@@ -132,7 +149,90 @@ class UtdTrackerTest {
132149 cryptoSDK = Error .CryptoSDK .Rust ,
133150 timeToDecryptMillis = 123 ,
134151 domain = Error .Domain .E2EE ,
135- name = Error .Name .ExpectedVerificationViolation
152+ name = Error .Name .ExpectedVerificationViolation ,
153+ isFederated = false ,
154+ isMatrixDotOrg = false ,
155+ userTrustsOwnIdentity = false ,
156+ eventLocalAgeMillis = 0 ,
157+ )
158+ )
159+ }
160+
161+ @Test
162+ fun `when onUtd is called with different sender and receiver servers, the expected analytics Event is sent` () {
163+ val fakeAnalyticsService = FakeAnalyticsService ()
164+ val sut = UtdTracker (fakeAnalyticsService)
165+ sut.onUtd(
166+ aRustUnableToDecryptInfo(
167+ eventId = AN_EVENT_ID .value,
168+ ownHomeserver = " example.com" ,
169+ senderHomeserver = " matrix.org" ,
170+ )
171+ )
172+ assertThat(fakeAnalyticsService.capturedEvents).containsExactly(
173+ Error (
174+ context = null ,
175+ cryptoModule = Error .CryptoModule .Rust ,
176+ cryptoSDK = Error .CryptoSDK .Rust ,
177+ timeToDecryptMillis = - 1 ,
178+ domain = Error .Domain .E2EE ,
179+ name = Error .Name .OlmKeysNotSentError ,
180+ isFederated = true ,
181+ isMatrixDotOrg = false ,
182+ userTrustsOwnIdentity = false ,
183+ eventLocalAgeMillis = 0 ,
184+ )
185+ )
186+ }
187+
188+ @Test
189+ fun `when onUtd is called from a matrix-org user, the expected analytics Event is sent` () {
190+ val fakeAnalyticsService = FakeAnalyticsService ()
191+ val sut = UtdTracker (fakeAnalyticsService)
192+ sut.onUtd(
193+ aRustUnableToDecryptInfo(
194+ eventId = AN_EVENT_ID .value,
195+ ownHomeserver = " matrix.org" ,
196+ )
197+ )
198+ assertThat(fakeAnalyticsService.capturedEvents).containsExactly(
199+ Error (
200+ context = null ,
201+ cryptoModule = Error .CryptoModule .Rust ,
202+ cryptoSDK = Error .CryptoSDK .Rust ,
203+ timeToDecryptMillis = - 1 ,
204+ domain = Error .Domain .E2EE ,
205+ name = Error .Name .OlmKeysNotSentError ,
206+ isFederated = true ,
207+ isMatrixDotOrg = true ,
208+ userTrustsOwnIdentity = false ,
209+ eventLocalAgeMillis = 0 ,
210+ )
211+ )
212+ }
213+
214+ @Test
215+ fun `when onUtd is called from a verified device, the expected analytics Event is sent` () {
216+ val fakeAnalyticsService = FakeAnalyticsService ()
217+ val sut = UtdTracker (fakeAnalyticsService)
218+ sut.onUtd(
219+ aRustUnableToDecryptInfo(
220+ eventId = AN_EVENT_ID .value,
221+ userTrustsOwnIdentity = true ,
222+ )
223+ )
224+ assertThat(fakeAnalyticsService.capturedEvents).containsExactly(
225+ Error (
226+ context = null ,
227+ cryptoModule = Error .CryptoModule .Rust ,
228+ cryptoSDK = Error .CryptoSDK .Rust ,
229+ timeToDecryptMillis = - 1 ,
230+ domain = Error .Domain .E2EE ,
231+ name = Error .Name .OlmKeysNotSentError ,
232+ isFederated = false ,
233+ isMatrixDotOrg = false ,
234+ userTrustsOwnIdentity = true ,
235+ eventLocalAgeMillis = 0 ,
136236 )
137237 )
138238 }
0 commit comments