package git import "net/http" import "net/http/httptest" import "path/filepath" import "testing" type flushRecorder struct { *httptest.ResponseRecorder flushed bool } func (f *flushRecorder) Flush() { f.flushed = true } func TestRepoPathFromRequest(t *testing.T) { var server HTTPServer var req *http.Request var got string server = HTTPServer{baseDir: filepath.Join("data", "git")} req = httptest.NewRequest(http.MethodGet, "/p/r.git/info/refs", nil) got = server.repoPathFromRequest(req) if got != filepath.Join("data", "git", "p", "r.git") { t.Fatalf("unexpected repo path: %s", got) } } func TestStatusRecorderFlush(t *testing.T) { var base *flushRecorder var recorder *statusRecorder base = &flushRecorder{ResponseRecorder: httptest.NewRecorder()} recorder = &statusRecorder{ResponseWriter: base, status: http.StatusOK} recorder.Flush() if !base.flushed { t.Fatalf("expected Flush() to be forwarded") } }