39 lines
937 B
Go
39 lines
937 B
Go
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")
|
|
}
|
|
}
|