git.iko.soy/opencode-android
on 930859e help sign in
opencode-android/app/src/test/java/soy/iko/opencode/ui/server/CertPinValidationTest.kt
39 lines 1.0 kB history raw
1package soy.iko.opencode.ui.server
3import org.junit.Assert.assertFalse
4import org.junit.Assert.assertTrue
5import org.junit.Test
7class CertPinValidationTest {
9 @Test
10 fun blankIsValid() {
11 assertTrue(isValidCertPin(""))
12 assertTrue(isValidCertPin(" "))
13 }
15 @Test
16 fun wellFormedSinglePin() {
17 assertTrue(isValidCertPin("sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="))
18 }
20 @Test
21 fun whitespaceOrCommaSeparatedPins() {
22 assertTrue(isValidCertPin("sha256/AAAA= sha256/BBBB="))
23 assertTrue(isValidCertPin("sha256/AAAA=,sha256/BBBB="))
24 }
26 @Test
27 fun acceptsSha1PinLikeOkHttp() {
28 assertTrue(isValidCertPin("sha1/AAAAAAAAAAAAAAAAAAAAAAAAAAA="))
29 assertTrue(isValidCertPin("sha256/AAAA= sha1/BBBB="))
30 }
32 @Test
33 fun rejectsMalformed() {
34 assertFalse(isValidCertPin("not-a-pin"))
35 assertFalse(isValidCertPin("md5/AAAA="))
36 assertFalse(isValidCertPin("sha256/"))
37 assertFalse(isValidCertPin("sha1/"))
38 }