Skip to content

Commit 09877eb

Browse files
committed
Implement unit tests for ClientVerification
1 parent a039705 commit 09877eb

2 files changed

Lines changed: 79 additions & 3 deletions

File tree

WordPress/src/main/java/org/wordpress/android/util/publicdata/ClientVerification.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ class ClientVerification @Inject constructor(
1010
private val contextProvider: ContextProvider,
1111
) {
1212

13-
fun canTrust(callingPackage: String?): Boolean {
14-
if (callingPackage == null) {
13+
fun canTrust(callerPackage: String?): Boolean {
14+
if (callerPackage == null) {
1515
return false
1616
}
1717
val callerExpectedPackageId = jetpackPublicData.currentPackageId()
1818
val callerSignatureHash = signatureUtils.getSignatureHash(contextProvider.getContext(), callerExpectedPackageId)
1919
val callerExpectedSignatureHash = jetpackPublicData.currentPublicKeyHash()
20-
return callingPackage == callerExpectedPackageId && callerSignatureHash == callerExpectedSignatureHash
20+
return callerPackage == callerExpectedPackageId && callerSignatureHash == callerExpectedSignatureHash
2121
}
2222
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package org.wordpress.android.util.publicdata
2+
3+
import com.nhaarman.mockitokotlin2.mock
4+
import com.nhaarman.mockitokotlin2.verify
5+
import com.nhaarman.mockitokotlin2.whenever
6+
import org.junit.Assert
7+
import org.junit.Before
8+
import org.junit.Test
9+
import org.wordpress.android.util.signature.SignatureUtils
10+
import org.wordpress.android.viewmodel.ContextProvider
11+
12+
class ClientVerificationTest {
13+
private val jetpackPublicData: JetpackPublicData = mock()
14+
private val signatureUtils: SignatureUtils = mock()
15+
private val contextProvider: ContextProvider = mock()
16+
private val classToTest = ClientVerification(jetpackPublicData, signatureUtils, contextProvider)
17+
18+
private val expectedPackage = "match"
19+
private val expectedSignatureHash = "signatureHash"
20+
21+
@Before
22+
fun setup() {
23+
whenever(jetpackPublicData.currentPackageId()).thenReturn(expectedPackage)
24+
whenever(jetpackPublicData.currentPublicKeyHash()).thenReturn(expectedSignatureHash)
25+
whenever(signatureUtils.getSignatureHash(contextProvider.getContext(), expectedPackage))
26+
.thenReturn(expectedSignatureHash)
27+
}
28+
29+
@Test
30+
fun `Should return false if calling package is null when canTrust is called`() {
31+
val expected = false
32+
val actual = classToTest.canTrust(null)
33+
Assert.assertEquals(expected, actual)
34+
}
35+
36+
@Test
37+
fun `Should return false if caller package does not match the expected when canTrust is called`() {
38+
val expected = false
39+
val actual = classToTest.canTrust("no_match")
40+
Assert.assertEquals(expected, actual)
41+
}
42+
43+
@Test
44+
fun `Should return false if caller signature hash does not match the expected when canTrust is called`() {
45+
whenever(signatureUtils.getSignatureHash(contextProvider.getContext(), expectedPackage))
46+
.thenReturn("no_match")
47+
val expected = false
48+
val actual = classToTest.canTrust(expectedPackage)
49+
Assert.assertEquals(expected, actual)
50+
}
51+
52+
@Test
53+
fun `Should return true if caller package and signature hash match the expected when canTrust is called`() {
54+
val expected = true
55+
val actual = classToTest.canTrust(expectedPackage)
56+
Assert.assertEquals(expected, actual)
57+
}
58+
59+
@Test
60+
fun `Should call jetpackPublicData currentPackageId when canTrust is called`() {
61+
classToTest.canTrust(expectedPackage)
62+
verify(jetpackPublicData).currentPackageId()
63+
}
64+
65+
@Test
66+
fun `Should call signatureUtils getSignatureHash when canTrust is called`() {
67+
classToTest.canTrust(expectedPackage)
68+
verify(signatureUtils).getSignatureHash(contextProvider.getContext(), expectedPackage)
69+
}
70+
71+
@Test
72+
fun `Should call jetpackPublicData currentPublicKeyHash when canTrust is called`() {
73+
classToTest.canTrust(expectedPackage)
74+
verify(jetpackPublicData).currentPublicKeyHash()
75+
}
76+
}

0 commit comments

Comments
 (0)