12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package s3_test
- import (
- "crypto/md5"
- "encoding/base64"
- "io/ioutil"
- "testing"
- "github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/request"
- "github.com/aws/aws-sdk-go/internal/test/unit"
- "github.com/aws/aws-sdk-go/service/s3"
- "github.com/stretchr/testify/assert"
- )
- var _ = unit.Imported
- func assertMD5(t *testing.T, req *request.Request) {
- err := req.Build()
- assert.NoError(t, err)
- b, _ := ioutil.ReadAll(req.HTTPRequest.Body)
- out := md5.Sum(b)
- assert.NotEmpty(t, b)
- assert.Equal(t, base64.StdEncoding.EncodeToString(out[:]), req.HTTPRequest.Header.Get("Content-MD5"))
- }
- func TestMD5InPutBucketCors(t *testing.T) {
- svc := s3.New(nil)
- req, _ := svc.PutBucketCorsRequest(&s3.PutBucketCorsInput{
- Bucket: aws.String("bucketname"),
- CORSConfiguration: &s3.CORSConfiguration{
- CORSRules: []*s3.CORSRule{
- {AllowedMethods: []*string{aws.String("GET")}},
- },
- },
- })
- assertMD5(t, req)
- }
- func TestMD5InPutBucketLifecycle(t *testing.T) {
- svc := s3.New(nil)
- req, _ := svc.PutBucketLifecycleRequest(&s3.PutBucketLifecycleInput{
- Bucket: aws.String("bucketname"),
- LifecycleConfiguration: &s3.LifecycleConfiguration{
- Rules: []*s3.LifecycleRule{
- {
- ID: aws.String("ID"),
- Prefix: aws.String("Prefix"),
- Status: aws.String("Enabled"),
- },
- },
- },
- })
- assertMD5(t, req)
- }
- func TestMD5InPutBucketPolicy(t *testing.T) {
- svc := s3.New(nil)
- req, _ := svc.PutBucketPolicyRequest(&s3.PutBucketPolicyInput{
- Bucket: aws.String("bucketname"),
- Policy: aws.String("{}"),
- })
- assertMD5(t, req)
- }
- func TestMD5InPutBucketTagging(t *testing.T) {
- svc := s3.New(nil)
- req, _ := svc.PutBucketTaggingRequest(&s3.PutBucketTaggingInput{
- Bucket: aws.String("bucketname"),
- Tagging: &s3.Tagging{
- TagSet: []*s3.Tag{
- {Key: aws.String("KEY"), Value: aws.String("VALUE")},
- },
- },
- })
- assertMD5(t, req)
- }
- func TestMD5InDeleteObjects(t *testing.T) {
- svc := s3.New(nil)
- req, _ := svc.DeleteObjectsRequest(&s3.DeleteObjectsInput{
- Bucket: aws.String("bucketname"),
- Delete: &s3.Delete{
- Objects: []*s3.ObjectIdentifier{
- {Key: aws.String("key")},
- },
- },
- })
- assertMD5(t, req)
- }
|