Skip to content

Commit 040ad99

Browse files
committed
break down setup functions into two
# Conflicts: # internal/scti/handlers_test.go # Conflicts: # internal/scti/handlers_test.go # Conflicts: # internal/scti/handlers_test.go
1 parent 8884a75 commit 040ad99

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

internal/scti/handlers_test.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ func (f *fixedTimeSource) Now() time.Time {
6363
return f.fakeTime
6464
}
6565

66-
// setupTestServer creates a test TesseraCT server with a single endpoint at path.
67-
func setupTestServer(t *testing.T, path string) *httptest.Server {
66+
// setupTestLog creates test TesseraCT log using a POSIX backend.
67+
func setupTestLog(t *testing.T) *log {
6868
t.Helper()
6969

7070
signer, err := setupSigner(fakeSignature)
@@ -76,16 +76,24 @@ func setupTestServer(t *testing.T, path string) *httptest.Server {
7676
if err := roots.AppendCertsFromPEMFile(testRootPath); err != nil {
7777
t.Fatalf("failed to read trusted roots: %v", err)
7878
}
79+
7980
cvOpts := ChainValidationOpts{
8081
trustedRoots: roots,
8182
rejectExpired: false,
8283
rejectUnexpired: false,
8384
}
85+
8486
log, err := NewLog(t.Context(), origin, signer, cvOpts, newPosixStorageFunc(t), newFixedTimeSource(fakeTime))
8587
if err != nil {
8688
t.Fatalf("newLog(): %v", err)
8789
}
8890

91+
return log
92+
}
93+
94+
// setupTestServer creates a test TesseraCT server with a single endpoint at path.
95+
func setupTestServer(t *testing.T, log *log, path string) *httptest.Server {
96+
t.Helper()
8997
opts := &HandlerOptions{
9098
Deadline: time.Millisecond * 500,
9199
RequestLog: &DefaultRequestLog{},
@@ -144,24 +152,30 @@ func newPosixStorageFunc(t *testing.T) storage.CreateStorage {
144152
}
145153

146154
func TestGetRoots(t *testing.T) {
155+
log := setupTestLog(t)
156+
server := setupTestServer(t, log, path.Join(prefix, "ct/v1/get-roots"))
157+
defer server.Close()
158+
147159
t.Run("get-roots", func(t *testing.T) {
148-
server := setupTestServer(t, path.Join(prefix, "ct/v1/get-roots"))
149-
defer server.Close()
150160
resp, err := http.Get(server.URL + path.Join(prefix, "ct/v1/get-roots"))
151161
if err != nil {
152162
t.Fatalf("Failed to get roots: %v", err)
153163
}
164+
154165
if resp.StatusCode != http.StatusOK {
155166
t.Errorf("Unexpected status code: %v", resp.StatusCode)
156167
}
168+
157169
var roots types.GetRootsResponse
158170
err = json.NewDecoder(resp.Body).Decode(&roots)
159171
if err != nil {
160172
t.Errorf("Failed to decode response: %v", err)
161173
}
174+
162175
if got, want := len(roots.Certificates), 1; got != want {
163176
t.Errorf("Unexpected number of certificates: got %d, want %d", got, want)
164177
}
178+
165179
got, err := base64.StdEncoding.DecodeString(roots.Certificates[0])
166180
if err != nil {
167181
t.Errorf("Failed to decode certificate: %v", err)

0 commit comments

Comments
 (0)