github.com/searKing/golang/go@v1.2.117/crypto/tls/cert_pool_test.go (about) 1 // Copyright 2022 The searKing Author. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package tls_test 6 7 import ( 8 "os" 9 "testing" 10 11 "github.com/searKing/golang/go/crypto/tls" 12 testing_ "github.com/searKing/golang/go/testing" 13 ) 14 15 func TestLoadX509CertificatePool(t *testing.T) { 16 tmpCertFile, _ := os.CreateTemp("", "test-cert") 17 tmpCertPath := tmpCertFile.Name() 18 defer func() { 19 _ = os.Remove(tmpCertPath) 20 }() 21 _ = os.WriteFile(tmpCertPath, []byte(certFileContent), 0600) 22 tmpCert, err := tls.LoadCertificates(certFixture, keyFixture, "", "") 23 if ok, msg := testing_.NonNil(tmpCert); !ok { 24 t.Error(msg) 25 } 26 if ok, msg := testing_.NonError(err); !ok { 27 t.Error(msg) 28 } 29 30 // 1. no TLS 31 certPool, err := tls.LoadX509CertificatePool(nil, "", "") 32 if ok, msg := testing_.Nil(certPool); !ok { 33 t.Error(msg) 34 } 35 if ok, msg := testing_.EqualError(err, tls.ErrNoCertificatesConfigured); !ok { 36 t.Error(msg) 37 } 38 39 // 2. inconsistent TLS (ii): warning only 40 certPool, err = tls.LoadX509CertificatePool(nil, "x", "") 41 if ok, msg := testing_.Nil(certPool); !ok { 42 t.Error(msg) 43 } 44 if ok, msg := testing_.Error(err); !ok { 45 t.Error(msg) 46 } 47 // 3. invalid TLS string (ii) 48 certPool, err = tls.LoadX509CertificatePool(nil, "{}", "") 49 if ok, msg := testing_.Nil(certPool); !ok { 50 t.Error(msg) 51 } 52 if ok, msg := testing_.Error(err); !ok { 53 t.Error(msg) 54 } 55 56 // 4. valid TLS files 57 certPool, err = tls.LoadX509CertificatePool(nil, "", tmpCertPath) 58 if ok, msg := testing_.NonNil(certPool); !ok { 59 t.Error(msg) 60 } 61 if ok, msg := testing_.NonError(err); !ok { 62 t.Error(msg) 63 } 64 65 // 5. valid TLS strings 66 certPool, err = tls.LoadX509CertificatePool(nil, certFixture, "") 67 if ok, msg := testing_.NonNil(certPool); !ok { 68 t.Error(msg) 69 } 70 if ok, msg := testing_.NonError(err); !ok { 71 t.Error(msg) 72 } 73 74 // 6. valid TLS cert 75 certPool, err = tls.LoadX509CertificatePool(nil, "", "", tmpCert) 76 if ok, msg := testing_.NonNil(certPool); !ok { 77 t.Error(msg) 78 } 79 if ok, msg := testing_.NonError(err); !ok { 80 t.Error(msg) 81 } 82 83 // 7. invalid TLS file content 84 certPool, err = tls.LoadX509CertificatePool(nil, "", certFixture) 85 if ok, msg := testing_.Nil(certPool); !ok { 86 t.Error(msg) 87 } 88 if ok, msg := testing_.Error(err); !ok { 89 t.Error(msg) 90 } 91 92 // 8. invalid TLS string content 93 certPool, err = tls.LoadX509CertificatePool(nil, certFileContent, "") 94 if ok, msg := testing_.Nil(certPool); !ok { 95 t.Error(msg) 96 } 97 if ok, msg := testing_.Error(err); !ok { 98 t.Error(msg) 99 } 100 }