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) } }