diff options
author | Santiago M. Mola <santi@mola.io> | 2016-11-25 09:25:49 +0100 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-11-25 09:25:49 +0100 |
commit | 9e34f68d980de57631c588aaa910c9ea95ed7c2e (patch) | |
tree | b1bd9f867b757ca46ada2f349d122723dde3529c /plumbing/transport/http/fetch_pack_test.go | |
parent | 8966c042795509ed17730e50d352ad69901c3da8 (diff) | |
download | go-git-9e34f68d980de57631c588aaa910c9ea95ed7c2e.tar.gz |
plumbing/transport: add common tests and fixes. (#136)
* plumbing/transport: add common tests and fixes.
* add common test suite for different transport implementations.
* fix different behaviour on error handling for ssh and http.
fixes issue #123.
* support detecting unexisting repositories with SSH + GitHub/Bitbucket
(apparently, there is no standard for all SSH servers).
* remove ssh.NewClient (only DefaultClient makes sense at the moment).
* make ssh.Client and http.Client private.
* utils/ioutil: utilities to work with io interfaces.
* * transport: test actual objects fetched, not just packfile size.
* * fix doc typo.
* * improve UploadPackRequest.IsEmpty
Diffstat (limited to 'plumbing/transport/http/fetch_pack_test.go')
-rw-r--r-- | plumbing/transport/http/fetch_pack_test.go | 110 |
1 files changed, 13 insertions, 97 deletions
diff --git a/plumbing/transport/http/fetch_pack_test.go b/plumbing/transport/http/fetch_pack_test.go index 5ec9991..c7666c8 100644 --- a/plumbing/transport/http/fetch_pack_test.go +++ b/plumbing/transport/http/fetch_pack_test.go @@ -1,122 +1,38 @@ package http import ( - "fmt" - "io/ioutil" - - "gopkg.in/src-d/go-git.v4/plumbing" "gopkg.in/src-d/go-git.v4/plumbing/transport" + "gopkg.in/src-d/go-git.v4/plumbing/transport/test" . "gopkg.in/check.v1" ) type FetchPackSuite struct { - Endpoint transport.Endpoint + test.FetchPackSuite } var _ = Suite(&FetchPackSuite{}) func (s *FetchPackSuite) SetUpSuite(c *C) { - fmt.Println("SetUpSuite\n") - var err error - s.Endpoint, err = transport.NewEndpoint("https://github.com/git-fixtures/basic") - c.Assert(err, IsNil) -} + s.FetchPackSuite.Client = DefaultClient -func (s *FetchPackSuite) TestInfoEmpty(c *C) { - endpoint, _ := transport.NewEndpoint("https://github.com/git-fixture/empty") - r, err := DefaultClient.NewFetchPackSession(endpoint) + ep, err := transport.NewEndpoint("https://github.com/git-fixtures/basic.git") c.Assert(err, IsNil) - info, err := r.AdvertisedReferences() - c.Assert(err, Equals, transport.ErrAuthorizationRequired) - c.Assert(info, IsNil) -} + s.FetchPackSuite.Endpoint = ep -//TODO: Test this error with HTTP BasicAuth too. -func (s *FetchPackSuite) TestInfoNotExists(c *C) { - endpoint, _ := transport.NewEndpoint("https://github.com/git-fixture/not-exists") - r, err := DefaultClient.NewFetchPackSession(endpoint) + ep, err = transport.NewEndpoint("https://github.com/git-fixtures/empty.git") c.Assert(err, IsNil) - info, err := r.AdvertisedReferences() - c.Assert(err, Equals, transport.ErrAuthorizationRequired) - c.Assert(info, IsNil) -} + s.FetchPackSuite.EmptyEndpoint = ep -func (s *FetchPackSuite) TestDefaultBranch(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) + ep, err = transport.NewEndpoint("https://github.com/git-fixtures/non-existent.git") c.Assert(err, IsNil) - info, err := r.AdvertisedReferences() - c.Assert(err, IsNil) - c.Assert(info.Capabilities.SymbolicReference("HEAD"), Equals, "refs/heads/master") -} - -func (s *FetchPackSuite) TestCapabilities(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) - c.Assert(err, IsNil) - info, err := r.AdvertisedReferences() - c.Assert(err, IsNil) - c.Assert(info.Capabilities.Get("agent").Values, HasLen, 1) + s.FetchPackSuite.NonExistentEndpoint = ep } -func (s *FetchPackSuite) TestFullFetchPack(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) +func (s *FetchPackSuite) TestInfoNotExists(c *C) { + r, err := s.Client.NewFetchPackSession(s.NonExistentEndpoint) c.Assert(err, IsNil) - info, err := r.AdvertisedReferences() - c.Assert(err, IsNil) - c.Assert(info, NotNil) - - req := &transport.UploadPackRequest{} - req.Want(plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - - reader, err := r.FetchPack(req) - c.Assert(err, IsNil) - - b, err := ioutil.ReadAll(reader) - c.Assert(err, IsNil) - c.Assert(b, HasLen, 85374) -} - -func (s *FetchPackSuite) TestFetchPack(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) - c.Assert(err, IsNil) - - req := &transport.UploadPackRequest{} - req.Want(plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - - reader, err := r.FetchPack(req) - c.Assert(err, IsNil) - - b, err := ioutil.ReadAll(reader) - c.Assert(err, IsNil) - c.Assert(b, HasLen, 85374) -} - -func (s *FetchPackSuite) TestFetchPackNoChanges(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) - c.Assert(err, IsNil) - - req := &transport.UploadPackRequest{} - req.Want(plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - req.Have(plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - - reader, err := r.FetchPack(req) - c.Assert(err, Equals, transport.ErrEmptyUploadPackRequest) - c.Assert(reader, IsNil) -} - -func (s *FetchPackSuite) TestFetchPackMulti(c *C) { - r, err := DefaultClient.NewFetchPackSession(s.Endpoint) - c.Assert(err, IsNil) - - req := &transport.UploadPackRequest{} - req.Want(plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) - req.Want(plumbing.NewHash("e8d3ffab552895c19b9fcf7aa264d277cde33881")) - - reader, err := r.FetchPack(req) - c.Assert(err, IsNil) - - b, err := ioutil.ReadAll(reader) - c.Assert(err, IsNil) - c.Assert(b, HasLen, 85585) + c.Assert(err, Equals, transport.ErrAuthorizationRequired) + c.Assert(info, IsNil) } |