diff options
| author | Joshua Sing <joshua@hypera.dev> | 2023-11-19 02:19:34 +1100 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-02-29 18:41:27 +0000 |
| commit | 38b40c0e2b9e3a62d9a99d62fa70595a5f68e6c9 (patch) | |
| tree | bb7a19b85a177d261ff47a4fc2be127fac53389c /git-codereview/config_test.go | |
| parent | 0e3f2836ef3e230ced34f5550aa937610e076531 (diff) | |
| download | go-x-review-1.10.0.tar.xz | |
git-codereview: improve haveGerritInternalv1.10.0
Use url.Parse and check URL components rather than performing imprecise
string matching. This addresses a bug where git-codereview does not work
when the Git origin ends with a forward slash.
Note that the check for 'github.com' has been removed since the test for
'.googlesource.com' already excludes it.
Change-Id: I083bccdbacf2152cbfddd2407fb20afa47c8e91e
Reviewed-on: https://go-review.googlesource.com/c/review/+/543495
Reviewed-by: Carlos Amedee <carlos@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Joel Sing <joel@sing.id.au>
Diffstat (limited to 'git-codereview/config_test.go')
| -rw-r--r-- | git-codereview/config_test.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/git-codereview/config_test.go b/git-codereview/config_test.go index 249b7df..a862788 100644 --- a/git-codereview/config_test.go +++ b/git-codereview/config_test.go @@ -32,3 +32,38 @@ func TestParseConfig(t *testing.T) { } } } + +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) + } + } +} |
