32 lines
899 B
Go
32 lines
899 B
Go
package app
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseGitPath(t *testing.T) {
|
|
owner, repo, rest, ok := parseGitPath("/Alice/Demo.git/info/refs")
|
|
if !ok {
|
|
t.Fatal("expected path to parse")
|
|
}
|
|
if owner != "Alice" || repo != "Demo" || rest != "/info/refs" {
|
|
t.Fatalf("unexpected parse: %s %s %s", owner, repo, rest)
|
|
}
|
|
if _, _, _, ok := parseGitPath("/bad/path"); ok {
|
|
t.Fatal("expected invalid path")
|
|
}
|
|
}
|
|
|
|
func TestGitService(t *testing.T) {
|
|
req := &http.Request{Method: http.MethodGet, URL: &url.URL{RawQuery: "service=git-upload-pack"}}
|
|
if got := gitService(req); got != "git-upload-pack" {
|
|
t.Fatalf("unexpected upload-pack service: %q", got)
|
|
}
|
|
req = &http.Request{Method: http.MethodPost, URL: &url.URL{Path: "/alice/demo.git/git-receive-pack"}}
|
|
if got := gitService(req); got != "git-receive-pack" {
|
|
t.Fatalf("unexpected receive-pack service: %q", got)
|
|
}
|
|
}
|