diff options
author | Ramon Fernandez <ramon@mongodb.com> | 2016-08-25 16:34:34 -0400 |
---|---|---|
committer | Ramon Fernandez <ramon@mongodb.com> | 2016-08-25 16:54:18 -0400 |
commit | c330c9991ab45e7d0685d53e699ef26dba065660 (patch) | |
tree | 3dc5cd06b5f6c7eaaa4cb20cbe763504c14a772b /src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go | |
parent | eb62b862d5ebf179a1bcd9f394070e69c30188ab (diff) | |
download | mongo-c330c9991ab45e7d0685d53e699ef26dba065660.tar.gz |
Import tools: 5b883d86fdb4df55036d5dba2ca6f9dfa0750b44 from branch v3.3
ref: 1ac1389bda..5b883d86fd
for: 3.3.12
SERVER-25814 Initial vendor import: tools
Diffstat (limited to 'src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go')
-rw-r--r-- | src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go b/src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go new file mode 100644 index 00000000000..9c20fdfc488 --- /dev/null +++ b/src/mongo/gotools/vendor/src/gopkg.in/mgo.v2/internal/scram/scram_test.go @@ -0,0 +1,67 @@ +package scram_test + +import ( + "crypto/sha1" + "testing" + + . "gopkg.in/check.v1" + "gopkg.in/mgo.v2/internal/scram" + "strings" +) + +var _ = Suite(&S{}) + +func Test(t *testing.T) { TestingT(t) } + +type S struct{} + +var tests = [][]string{{ + "U: user pencil", + "N: fyko+d2lbbFgONRv9qkxdawL", + "C: n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL", + "S: r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=4096", + "C: c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts=", + "S: v=rmF9pqV8S7suAoZWja4dJRkFsKQ=", +}, { + "U: root fe8c89e308ec08763df36333cbf5d3a2", + "N: OTcxNDk5NjM2MzE5", + "C: n,,n=root,r=OTcxNDk5NjM2MzE5", + "S: r=OTcxNDk5NjM2MzE581Ra3provgG0iDsMkDiIAlrh4532dDLp,s=XRDkVrFC9JuL7/F4tG0acQ==,i=10000", + "C: c=biws,r=OTcxNDk5NjM2MzE581Ra3provgG0iDsMkDiIAlrh4532dDLp,p=6y1jp9R7ETyouTXS9fW9k5UHdBc=", + "S: v=LBnd9dUJRxdqZiEq91NKP3z/bHA=", +}} + +func (s *S) TestExamples(c *C) { + for _, steps := range tests { + if len(steps) < 2 || len(steps[0]) < 3 || !strings.HasPrefix(steps[0], "U: ") { + c.Fatalf("Invalid test: %#v", steps) + } + auth := strings.Fields(steps[0][3:]) + client := scram.NewClient(sha1.New, auth[0], auth[1]) + first, done := true, false + c.Logf("-----") + c.Logf("%s", steps[0]) + for _, step := range steps[1:] { + c.Logf("%s", step) + switch step[:3] { + case "N: ": + client.SetNonce([]byte(step[3:])) + case "C: ": + if first { + first = false + done = client.Step(nil) + } + c.Assert(done, Equals, false) + c.Assert(client.Err(), IsNil) + c.Assert(string(client.Out()), Equals, step[3:]) + case "S: ": + first = false + done = client.Step([]byte(step[3:])) + default: + panic("invalid test line: " + step) + } + } + c.Assert(done, Equals, true) + c.Assert(client.Err(), IsNil) + } +} |