Skip to content

Commit a726fb2

Browse files
authored
Merge pull request #553 from ooni/fix-messaging-test-keys-eval
Fix messaging test keys evaluation
2 parents 61361a0 + 93a34d1 commit a726fb2

File tree

2 files changed

+102
-7
lines changed

2 files changed

+102
-7
lines changed

composeApp/src/commonMain/kotlin/org/ooni/probe/domain/EvaluateMeasurementKeys.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,17 @@ fun evaluateMeasurementKeys(
4343
TestType.Signal ->
4444
MeasurementKeysResult(
4545
isFailed = keys?.signalBackendStatus?.isEmpty() != false,
46-
isAnomaly = keys?.signalBackendStatus == TestKeys.BLOCKED_VALUE,
46+
isAnomaly = keys?.signalBackendStatus.isBlocked,
4747
)
4848

4949
TestType.Telegram ->
5050
MeasurementKeysResult(
5151
isFailed = keys?.telegramHttpBlocking == null ||
5252
keys.telegramTcpBlocking == null ||
5353
keys.telegramWebStatus == null,
54-
isAnomaly = keys?.facebookTcpBlocking == true ||
55-
keys?.facebookDnsBlocking == true ||
56-
keys?.telegramWebStatus == TestKeys.BLOCKED_VALUE,
54+
isAnomaly = keys?.telegramHttpBlocking == true ||
55+
keys?.telegramTcpBlocking == true ||
56+
keys?.telegramWebStatus.isBlocked,
5757
)
5858

5959
TestType.Tor ->
@@ -87,12 +87,15 @@ fun evaluateMeasurementKeys(
8787
isFailed = keys?.whatsappEndpointsStatus == null ||
8888
keys.whatsappWebStatus == null ||
8989
keys.registrationServerStatus == null,
90-
isAnomaly = keys?.whatsappEndpointsStatus == TestKeys.BLOCKED_VALUE ||
91-
keys?.whatsappWebStatus == TestKeys.BLOCKED_VALUE ||
92-
keys?.registrationServerStatus == TestKeys.BLOCKED_VALUE,
90+
isAnomaly = keys?.whatsappEndpointsStatus.isBlocked ||
91+
keys?.whatsappWebStatus.isBlocked ||
92+
keys?.registrationServerStatus.isBlocked,
9393
)
9494
}
9595

96+
private val String?.isBlocked
97+
get() = equals(TestKeys.BLOCKED_VALUE, ignoreCase = true)
98+
9699
fun extractTestKeysPropertiesToJson(testKeys: TestKeys): Map<String, Map<String, Double?>?> {
97100
return mapOf(
98101
"simple" to testKeys.simple?.let { simple ->
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package org.ooni.probe.domain
2+
3+
import kotlinx.coroutines.test.runTest
4+
import org.ooni.engine.models.TestKeys
5+
import org.ooni.engine.models.TestType
6+
import org.ooni.probe.data.models.MeasurementKeysResult
7+
import kotlin.test.Test
8+
import kotlin.test.assertEquals
9+
10+
class EvaluateMeasurementKeysTest {
11+
@Test
12+
fun telegram() =
13+
runTest {
14+
assertEquals(
15+
MeasurementKeysResult(
16+
isFailed = false,
17+
isAnomaly = false,
18+
),
19+
evaluateMeasurementKeys(
20+
TestType.Telegram,
21+
TestKeys(
22+
telegramWebStatus = "ok",
23+
telegramTcpBlocking = false,
24+
telegramHttpBlocking = false,
25+
),
26+
),
27+
)
28+
assertEquals(
29+
MeasurementKeysResult(
30+
isFailed = false,
31+
isAnomaly = true,
32+
),
33+
evaluateMeasurementKeys(
34+
TestType.Telegram,
35+
TestKeys(
36+
telegramWebStatus = "blocked",
37+
telegramTcpBlocking = false,
38+
telegramHttpBlocking = false,
39+
),
40+
),
41+
)
42+
assertEquals(
43+
MeasurementKeysResult(
44+
isFailed = true,
45+
isAnomaly = false,
46+
),
47+
evaluateMeasurementKeys(
48+
TestType.Telegram,
49+
TestKeys(
50+
telegramWebStatus = null,
51+
telegramTcpBlocking = false,
52+
telegramHttpBlocking = false,
53+
),
54+
),
55+
)
56+
}
57+
58+
@Test
59+
fun signal() =
60+
runTest {
61+
assertEquals(
62+
MeasurementKeysResult(
63+
isFailed = true,
64+
isAnomaly = false,
65+
),
66+
evaluateMeasurementKeys(
67+
TestType.Signal,
68+
TestKeys(),
69+
),
70+
)
71+
assertEquals(
72+
MeasurementKeysResult(
73+
isFailed = false,
74+
isAnomaly = true,
75+
),
76+
evaluateMeasurementKeys(
77+
TestType.Signal,
78+
TestKeys(signalBackendStatus = "blocked"),
79+
),
80+
)
81+
assertEquals(
82+
MeasurementKeysResult(
83+
isFailed = false,
84+
isAnomaly = false,
85+
),
86+
evaluateMeasurementKeys(
87+
TestType.Signal,
88+
TestKeys(signalBackendStatus = "ok"),
89+
),
90+
)
91+
}
92+
}

0 commit comments

Comments
 (0)