64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
|
package rest_test
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"io/ioutil"
|
||
|
"net/http"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/aws/aws-sdk-go/aws"
|
||
|
"github.com/aws/aws-sdk-go/aws/client"
|
||
|
"github.com/aws/aws-sdk-go/aws/client/metadata"
|
||
|
"github.com/aws/aws-sdk-go/aws/request"
|
||
|
"github.com/aws/aws-sdk-go/aws/signer/v4"
|
||
|
"github.com/aws/aws-sdk-go/awstesting/unit"
|
||
|
"github.com/aws/aws-sdk-go/private/protocol/rest"
|
||
|
)
|
||
|
|
||
|
func TestUnsetHeaders(t *testing.T) {
|
||
|
cfg := &aws.Config{Region: aws.String("us-west-2")}
|
||
|
c := unit.Session.ClientConfig("testService", cfg)
|
||
|
svc := client.New(
|
||
|
*cfg,
|
||
|
metadata.ClientInfo{
|
||
|
ServiceName: "testService",
|
||
|
SigningName: c.SigningName,
|
||
|
SigningRegion: c.SigningRegion,
|
||
|
Endpoint: c.Endpoint,
|
||
|
APIVersion: "",
|
||
|
},
|
||
|
c.Handlers,
|
||
|
)
|
||
|
|
||
|
// Handlers
|
||
|
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
|
||
|
svc.Handlers.Build.PushBackNamed(rest.BuildHandler)
|
||
|
svc.Handlers.Unmarshal.PushBackNamed(rest.UnmarshalHandler)
|
||
|
svc.Handlers.UnmarshalMeta.PushBackNamed(rest.UnmarshalMetaHandler)
|
||
|
op := &request.Operation{
|
||
|
Name: "test-operation",
|
||
|
HTTPPath: "/",
|
||
|
}
|
||
|
|
||
|
input := &struct {
|
||
|
Foo aws.JSONValue `location:"header" locationName:"x-amz-foo" type:"jsonvalue"`
|
||
|
Bar aws.JSONValue `location:"header" locationName:"x-amz-bar" type:"jsonvalue"`
|
||
|
}{}
|
||
|
|
||
|
output := &struct {
|
||
|
Foo aws.JSONValue `location:"header" locationName:"x-amz-foo" type:"jsonvalue"`
|
||
|
Bar aws.JSONValue `location:"header" locationName:"x-amz-bar" type:"jsonvalue"`
|
||
|
}{}
|
||
|
|
||
|
req := svc.NewRequest(op, input, output)
|
||
|
req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(bytes.NewBuffer(nil)), Header: http.Header{}}
|
||
|
req.HTTPResponse.Header.Set("X-Amz-Foo", "e30=")
|
||
|
|
||
|
// unmarshal response
|
||
|
rest.UnmarshalMeta(req)
|
||
|
rest.Unmarshal(req)
|
||
|
if req.Error != nil {
|
||
|
t.Fatal(req.Error)
|
||
|
}
|
||
|
}
|