MCPcopy
hub / github.com/caddyserver/certmagic / TestSaveCertResource

Function TestSaveCertResource

config_test.go:30–79  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

28)
29
30func TestSaveCertResource(t *testing.T) {
31 ctx := context.Background()
32
33 am := &ACMEIssuer{CA: "https://example.com/acme/directory"}
34 testConfig := &Config{
35 Issuers: []Issuer{am},
36 Storage: &FileStorage{Path: "./_testdata_tmp"},
37 Logger: defaultTestLogger,
38 certCache: new(Cache),
39 }
40 am.config = testConfig
41
42 testStorageDir := testConfig.Storage.(*FileStorage).Path
43 defer func() {
44 err := os.RemoveAll(testStorageDir)
45 if err != nil {
46 t.Fatalf("Could not remove temporary storage directory (%s): %v", testStorageDir, err)
47 }
48 }()
49
50 domain := "example.com"
51 certContents := "certificate"
52 keyContents := "private key"
53
54 cert := CertificateResource{
55 SANs: []string{domain},
56 PrivateKeyPEM: []byte(keyContents),
57 CertificatePEM: []byte(certContents),
58 IssuerData: mustJSON(acme.Certificate{
59 URL: "https://example.com/cert",
60 }),
61 issuerKey: am.IssuerKey(),
62 }
63
64 err := testConfig.saveCertResource(ctx, am, cert)
65 if err != nil {
66 t.Fatalf("Expected no error, got: %v", err)
67 }
68
69 siteData, err := testConfig.loadCertResource(ctx, am, domain)
70 if err != nil {
71 t.Fatalf("Expected no error reading site, got: %v", err)
72 }
73 siteData.IssuerData = bytes.ReplaceAll(siteData.IssuerData, []byte("\t"), []byte(""))
74 siteData.IssuerData = bytes.ReplaceAll(siteData.IssuerData, []byte("\n"), []byte(""))
75 siteData.IssuerData = bytes.ReplaceAll(siteData.IssuerData, []byte(" "), []byte(""))
76 if !reflect.DeepEqual(cert, siteData) {
77 t.Errorf("Expected '%+v' to match '%+v'\n%s\n%s", cert.IssuerData, siteData.IssuerData, string(cert.IssuerData), string(siteData.IssuerData))
78 }
79}
80
81type mockStorageWithLease struct {
82 *FileStorage

Callers

nothing calls this directly

Calls 4

IssuerKeyMethod · 0.95
saveCertResourceMethod · 0.95
loadCertResourceMethod · 0.95
mustJSONFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…