33package corehandlers_test
44
55import (
6- "crypto/tls"
6+ "bytes"
7+ "io"
78 "net/http"
9+ "net/http/httptest"
810 "testing"
911
1012 "github.com/aws/aws-sdk-go/aws"
1113 "github.com/aws/aws-sdk-go/aws/credentials"
1214 "github.com/aws/aws-sdk-go/aws/request"
13- "github.com/aws/aws-sdk-go/aws/session"
14- "github.com/aws/aws-sdk-go/awstesting"
15+ "github.com/aws/aws-sdk-go/awstesting/unit"
1516 "github.com/aws/aws-sdk-go/service/s3"
16- "golang.org/x/net/http2"
1717)
1818
1919func TestSendHandler_HEADNoBody (t * testing.T ) {
20- TLSBundleCertFile , TLSBundleKeyFile , TLSBundleCAFile , err := awstesting .CreateTLSBundleFiles ()
21- if err != nil {
22- panic (err )
23- }
24- defer awstesting .CleanupTLSBundleFiles (TLSBundleCertFile , TLSBundleKeyFile , TLSBundleCAFile )
25-
26- endpoint , err := awstesting .CreateTLSServer (TLSBundleCertFile , TLSBundleKeyFile , nil )
27- if err != nil {
28- t .Fatalf ("expect no error, got %v" , err )
29- }
30-
31- transport := http .DefaultTransport .(* http.Transport )
32- // test server's certificate is self-signed certificate
33- transport .TLSClientConfig = & tls.Config {InsecureSkipVerify : true }
34- http2 .ConfigureTransport (transport )
35-
36- sess , err := session .NewSessionWithOptions (session.Options {
37- Config : aws.Config {
38- HTTPClient : & http.Client {},
39- Endpoint : aws .String (endpoint ),
40- Region : aws .String ("mock-region" ),
41- Credentials : credentials .AnonymousCredentials ,
42- S3ForcePathStyle : aws .Bool (true ),
43- },
20+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
21+ defer r .Body .Close ()
22+ if e , a := "HEAD" , r .Method ; e != a {
23+ t .Errorf ("expected %v method, got %v" , e , a )
24+ }
25+ var buf bytes.Buffer
26+ io .Copy (& buf , r .Body )
27+
28+ if n := buf .Len (); n != 0 {
29+ t .Errorf ("expect empty body, got %d" , n )
30+ }
31+
32+ w .WriteHeader (http .StatusOK )
33+ }))
34+ defer server .Close ()
35+
36+ svc := s3 .New (unit .Session , & aws.Config {
37+ Endpoint : aws .String (server .URL ),
38+ Credentials : credentials .AnonymousCredentials ,
39+ S3ForcePathStyle : aws .Bool (true ),
40+ DisableSSL : aws .Bool (true ),
4441 })
45- if err != nil {
46- t .Fatalf ("expect no error, got %v" , err )
47- }
48-
49- svc := s3 .New (sess )
5042
5143 req , _ := svc .HeadObjectRequest (& s3.HeadObjectInput {
5244 Bucket : aws .String ("bucketname" ),
@@ -57,8 +49,7 @@ func TestSendHandler_HEADNoBody(t *testing.T) {
5749 t .Fatalf ("expect %T request body, got %T" , e , a )
5850 }
5951
60- err = req .Send ()
61- if err != nil {
52+ if err := req .Send (); err != nil {
6253 t .Fatalf ("expect no error, got %v" , err )
6354 }
6455 if e , a := http .StatusOK , req .HTTPResponse .StatusCode ; e != a {
0 commit comments