blob: a86278834e6e82adfe3de982fe49462d54b1b27a [file] [log] [blame]
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"reflect"
"testing"
)
func TestParseConfig(t *testing.T) {
cases := []struct {
raw string
want map[string]string
wanterr bool
}{
{raw: "", want: map[string]string{}},
{raw: "issuerepo: golang/go", want: map[string]string{"issuerepo": "golang/go"}},
{raw: "# comment", want: map[string]string{}},
{raw: "# comment\n k : v \n# comment 2\n\n k2:v2\n", want: map[string]string{"k": "v", "k2": "v2"}},
}
for _, tt := range cases {
cfg, err := parseConfig(tt.raw)
if err != nil != tt.wanterr {
t.Errorf("parse(%q) error: %v", tt.raw, err)
continue
}
if !reflect.DeepEqual(cfg, tt.want) {
t.Errorf("parse(%q)=%v want %v", tt.raw, cfg, tt.want)
}
}
}
func TestHaveGerritInternal(t *testing.T) {
tests := []struct {
gerrit string
origin string
want bool
}{
{gerrit: "off", want: false},
{gerrit: "on", want: true},
{origin: "invalid url", want: false},
{origin: "https://github.com/golang/go", want: false},
{origin: "http://github.com/golang/go", want: false},
{origin: "git@github.com:golang/go", want: false},
{origin: "git@github.com:golang/go.git", want: false},
{origin: "git@github.com:/golang/go", want: false},
{origin: "git@github.com:/golang/go.git", want: false},
{origin: "ssh://git@github.com/golang/go", want: false},
{origin: "ssh://git@github.com/golang/go.git", want: false},
{origin: "git+ssh://git@github.com/golang/go", want: false},
{origin: "git+ssh://git@github.com/golang/go.git", want: false},
{origin: "git://github.com/golang/go", want: false},
{origin: "git://github.com/golang/go.git", want: false},
{origin: "sso://go/tools", want: true}, // Google-internal
{origin: "rpc://go/tools", want: true}, // Google-internal
{origin: "http://go.googlesource.com/sys", want: false},
{origin: "https://go.googlesource.com/review", want: true},
{origin: "https://go.googlesource.com/review/", want: true},
}
for _, test := range tests {
if got := haveGerritInternal(test.gerrit, test.origin); got != test.want {
t.Errorf("haveGerritInternal(%q, %q) = %t, want %t", test.gerrit, test.origin, got, test.want)
}
}
}