MCPcopy
hub / github.com/minio/minio-go / Test_SSEHeaders

Function Test_SSEHeaders

api-put-object_test.go:80–168  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

78}
79
80func Test_SSEHeaders(t *testing.T) {
81 rt := &InterceptRouteTripper{}
82 c, err := New("s3.amazonaws.com", &Options{
83 Transport: rt,
84 })
85 if err != nil {
86 t.Error(err)
87 }
88
89 testCases := map[string]struct {
90 sse func() encrypt.ServerSide
91 initiateMultipartUploadHeaders http.Header
92 headerNotAllowedAfterInit []string
93 }{
94 "noEncryption": {
95 sse: func() encrypt.ServerSide { return nil },
96 initiateMultipartUploadHeaders: http.Header{},
97 },
98 "sse": {
99 sse: func() encrypt.ServerSide {
100 s, err := encrypt.NewSSEKMS("keyId", nil)
101 if err != nil {
102 t.Error(err)
103 }
104 return s
105 },
106 initiateMultipartUploadHeaders: http.Header{
107 encrypt.SseGenericHeader: []string{"aws:kms"},
108 encrypt.SseKmsKeyID: []string{"keyId"},
109 },
110 headerNotAllowedAfterInit: []string{encrypt.SseGenericHeader, encrypt.SseKmsKeyID, encrypt.SseEncryptionContext},
111 },
112 "sse with context": {
113 sse: func() encrypt.ServerSide {
114 s, err := encrypt.NewSSEKMS("keyId", "context")
115 if err != nil {
116 t.Error(err)
117 }
118 return s
119 },
120 initiateMultipartUploadHeaders: http.Header{
121 encrypt.SseGenericHeader: []string{"aws:kms"},
122 encrypt.SseKmsKeyID: []string{"keyId"},
123 encrypt.SseEncryptionContext: []string{base64.StdEncoding.EncodeToString([]byte("\"context\""))},
124 },
125 headerNotAllowedAfterInit: []string{encrypt.SseGenericHeader, encrypt.SseKmsKeyID, encrypt.SseEncryptionContext},
126 },
127 }
128
129 for name, tc := range testCases {
130 t.Run(name, func(t *testing.T) {
131 opts := PutObjectOptions{
132 ServerSideEncryption: tc.sse(),
133 }
134 c.bucketLocCache.Set("test", "region")
135 c.initiateMultipartUpload(context.Background(), "test", "test", opts)
136 for s, vls := range tc.initiateMultipartUploadHeaders {
137 if !reflect.DeepEqual(rt.request.Header[s], vls) {

Callers

nothing calls this directly

Calls 9

NewSSEKMSFunction · 0.92
EncodeToStringMethod · 0.80
uploadPartMethod · 0.80
NewFunction · 0.70
ErrorMethod · 0.45
SetMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected