httpHeader := http.Header{ "Content-Type": []string{"application/xml"}, } fakeServer.AppendHandlers(ghttp.CombineHandlers( ghttp.VerifyRequest("GET", "/bucket/"), ghttp.RespondWithPtr(&statusCode, &responseBody, httpHeader), )) }) It("returns ok=true if able to connect and auth and it exists", func() { statusCode = http.StatusOK responseBody = `<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>x</ID><DisplayName>x</DisplayName></Owner><Buckets><Bucket><Name>bucket</Name><CreationDate>2015-06-11T16:50:43.000Z</CreationDate></Bucket></Buckets></ListAllMyBucketsResult>` ok, err := targetVerifier.VerifyBlobTarget(config.BlobTarget().TargetHost, config.BlobTarget().TargetPort, "V8GDQFR_VDOGM55IV8OH", "Wv_kltnl98hNWNdNwyQPYnFhK4gVPTxVS3NNMg==", "bucket") Expect(ok).To(BeTrue()) Expect(err).ToNot(HaveOccurred()) Expect(fakeServer.ReceivedRequests()).To(HaveLen(1)) }) It("returns ok=false if able to connect but can't auth", func() { statusCode = http.StatusForbidden ok, err := targetVerifier.VerifyBlobTarget(config.BlobTarget().TargetHost, config.BlobTarget().TargetPort, "V8GDQFR_VDOGM55IV8OH", "Wv_kltnl98hNWNdNwyQPYnFhK4gVPTxVS3NNMg==", "bucket") Expect(ok).To(BeFalse()) Expect(err).To(MatchError("unauthorized")) Expect(fakeServer.ReceivedRequests()).To(HaveLen(1)) })
bucketName = "BuCKeTHeaD" ) var ( config *config_package.Config fakeServer *ghttp.Server targetVerifier target_verifier.TargetVerifier statusCode int responseBody string ) verifyBlobTarget := func() (bool, error) { return targetVerifier.VerifyBlobTarget( config.BlobTarget().TargetHost, config.BlobTarget().TargetPort, config.BlobTarget().AccessKey, config.BlobTarget().SecretKey, bucketName, ) } BeforeEach(func() { targetVerifier = target_verifier.New(func(string) receptor.Client { return &fake_receptor.FakeClient{} }) fakeServer = ghttp.NewServer() config = config_package.New(persister.NewMemPersister()) proxyURL, err := url.Parse(fakeServer.URL()) Expect(err).NotTo(HaveOccurred()) proxyHostArr := strings.Split(proxyURL.Host, ":")