aboutsummaryrefslogtreecommitdiff
path: root/git-codereview
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-12-23 16:38:57 -0500
committerRuss Cox <rsc@golang.org>2015-01-06 15:08:51 +0000
commit66a7c2dab7b44ca6df91f7d79864cda77389d9a2 (patch)
tree6d57214e4015bcd3a873b7eb5ee1bb8c20c347c7 /git-codereview
parentc3e5818734a979dd8168d10f722bfcdafe875ebb (diff)
downloadgo-x-review-66a7c2dab7b44ca6df91f7d79864cda77389d9a2.tar.xz
git-codereview: add test for loadAuth
Change-Id: Ifdbfc63caa7c1afa42d05c2f91a6168a867e8056 Reviewed-on: https://go-review.googlesource.com/2113 Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'git-codereview')
-rw-r--r--git-codereview/api_test.go116
-rw-r--r--git-codereview/review.go2
2 files changed, 118 insertions, 0 deletions
diff --git a/git-codereview/api_test.go b/git-codereview/api_test.go
new file mode 100644
index 0000000..410be5a
--- /dev/null
+++ b/git-codereview/api_test.go
@@ -0,0 +1,116 @@
+// Copyright 2014 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 (
+ "os"
+ "testing"
+)
+
+var authTests = []struct {
+ netrc string
+ cookiefile string
+ user string
+ password string
+ cookieName string
+ cookieValue string
+ died bool
+}{
+ {
+ died: true,
+ },
+ {
+ netrc: "machine go.googlesource.com login u1 password pw\n",
+ user: "u1",
+ password: "pw",
+ },
+ {
+ cookiefile: "go.googlesource.com TRUE / TRUE 2147483647 o2 git-u2=pw\n",
+ cookieName: "o2",
+ cookieValue: "git-u2=pw",
+ },
+ {
+ cookiefile: ".googlesource.com TRUE / TRUE 2147483647 o3 git-u3=pw\n",
+ cookieName: "o3",
+ cookieValue: "git-u3=pw",
+ },
+ {
+ cookiefile: ".googlesource.com TRUE / TRUE 2147483647 o4 WRONG\n" +
+ "go.googlesource.com TRUE / TRUE 2147483647 o4 git-u4=pw\n",
+ cookieName: "o4",
+ cookieValue: "git-u4=pw",
+ },
+ {
+ cookiefile: "go.googlesource.com TRUE / TRUE 2147483647 o5 git-u5=pw\n" +
+ ".googlesource.com TRUE / TRUE 2147483647 o5 WRONG\n",
+ cookieName: "o5",
+ cookieValue: "git-u5=pw",
+ },
+ {
+ netrc: "machine go.googlesource.com login u6 password pw\n",
+ cookiefile: "BOGUS",
+ user: "u6",
+ password: "pw",
+ },
+ {
+ netrc: "BOGUS",
+ cookiefile: "go.googlesource.com TRUE / TRUE 2147483647 o7 git-u7=pw\n",
+ cookieName: "o7",
+ cookieValue: "git-u7=pw",
+ },
+ {
+ netrc: "machine go.googlesource.com login u8 password pw\n",
+ cookiefile: "MISSING",
+ user: "u8",
+ password: "pw",
+ },
+}
+
+func TestLoadAuth(t *testing.T) {
+ gt := newGitTest(t)
+ defer gt.done()
+ gt.work(t)
+
+ defer os.Setenv("HOME", os.Getenv("HOME"))
+ os.Setenv("HOME", gt.client)
+ trun(t, gt.client, "git", "config", "remote.origin.url", "https://go.googlesource.com/go")
+
+ for i, tt := range authTests {
+ t.Logf("#%d", i)
+ auth.user = ""
+ auth.password = ""
+ auth.cookieName = ""
+ auth.cookieValue = ""
+ trun(t, gt.client, "git", "config", "http.cookiefile", "XXX")
+ trun(t, gt.client, "git", "config", "--unset", "http.cookiefile")
+
+ remove(t, gt.client+"/.netrc")
+ remove(t, gt.client+"/.cookies")
+ if tt.netrc != "" {
+ write(t, gt.client+"/.netrc", tt.netrc)
+ }
+ if tt.cookiefile != "" {
+ if tt.cookiefile != "MISSING" {
+ write(t, gt.client+"/.cookies", tt.cookiefile)
+ }
+ trun(t, gt.client, "git", "config", "http.cookiefile", gt.client+"/.cookies")
+ }
+
+ // Run command via testMain to trap stdout, stderr, death.
+ // mail -n will load auth info for us.
+ if tt.died {
+ testMainDied(t, "test-loadAuth")
+ } else {
+ testMain(t, "test-loadAuth")
+ }
+
+ if auth.user != tt.user || auth.password != tt.password {
+ t.Errorf("#%d: have user, password = %q, %q, want %q, %q", i, auth.user, auth.password, tt.user, tt.password)
+ }
+ if auth.cookieName != tt.cookieName || auth.cookieValue != tt.cookieValue {
+ t.Errorf("#%d: have cookie name, value = %q, %q, want %q, %q", i, auth.cookieName, auth.cookieValue, tt.cookieName, tt.cookieValue)
+ }
+ }
+}
diff --git a/git-codereview/review.go b/git-codereview/review.go
index c8ed27a..98fa241 100644
--- a/git-codereview/review.go
+++ b/git-codereview/review.go
@@ -140,6 +140,8 @@ func main() {
submit(args)
case "sync":
doSync(args)
+ case "test-loadAuth": // for testing only
+ loadAuth()
default:
flags.Usage()
}