MCPcopy Create free account
hub / github.com/cloudflare/certmgr / TestFileBackend

Function TestFileBackend

cert/storage/disk_test.go:29–85  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

27}
28
29func TestFileBackend(t *testing.T) {
30 tests := []struct {
31 name string
32 ca string
33 cert string
34 key string
35 fail bool
36 }{
37 {"just ca", "/ca", "", "", false},
38 {"just certs", "", "/cert", "/key", false},
39 {"all", "/ca", "/cert", "/key", false},
40 {"missing key", "", "/cert", "", true},
41 {"missing cert", "", "", "/key", true},
42 {"all missing", "", "", "", true},
43 {"reused path1", "", "/reused", "/reused", true},
44 {"reused path2", "/reused", "/reused", "/path2", true},
45 {"reused path3", "/reused", "/path2", "/reused", true},
46 }
47 for _, test := range tests {
48 t.Run(test.name, func(t *testing.T) {
49 ca, cert, key, expectedPaths := getFilesAndPaths(test.ca, test.cert, test.key)
50
51 fb, err := NewFileBackend(ca, cert, key)
52 if test.fail {
53 if err == nil {
54 t.Fatal("Error wasn't returned")
55 }
56 return
57 } else if err != nil {
58 t.Fatalf("unexpected err returned from init: %s", err)
59 }
60 if (test.key != "") != fb.WantsKeyPair() {
61 t.Fatalf("WantsKeyPair returned %t, expects %t", fb.WantsKeyPair(), test.key != "")
62 }
63
64 sort.Strings(expectedPaths)
65 returnedPaths := fb.GetPaths()
66 sort.Strings(returnedPaths)
67 if !reflect.DeepEqual(expectedPaths, returnedPaths) {
68 t.Fatalf("wanted %v from GetPaths, got %v", expectedPaths, returnedPaths)
69 }
70 tmpDir, err := ioutil.TempDir("", "tests")
71 if err != nil {
72 t.Fatalf("failed to create tempdir: %s", err)
73 }
74 defer os.RemoveAll(tmpDir)
75 existingCA, existingKeyPair, err := fb.Load()
76 if existingCA != nil || existingKeyPair != nil {
77 t.Fatalf("initial Load() returned non-nill CA=%v keyPair=%v", existingCA, existingKeyPair)
78 }
79 if err == nil {
80 t.Fatalf("didn't receive err from initial empty Load")
81 }
82 // todo; write actual tests for generating PKI and verifying the backend persists/returns it properly.
83 })
84 }
85}

Callers

nothing calls this directly

Calls 6

WantsKeyPairMethod · 0.95
GetPathsMethod · 0.95
LoadMethod · 0.95
getFilesAndPathsFunction · 0.85
NewFileBackendFunction · 0.85
RunMethod · 0.80

Tested by

no test coverage detected