forked from TrueCloudLab/frostfs-s3-gw
46 lines
1,015 B
Go
46 lines
1,015 B
Go
package layer
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"io"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestCorsCopiesNumber(t *testing.T) {
|
|
tc := prepareCORSContext(t)
|
|
body := `
|
|
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
<CORSRule>
|
|
<AllowedMethod>GET</AllowedMethod>
|
|
<AllowedOrigin>http://www.example.com</AllowedOrigin>
|
|
<AllowedHeader>Authorization</AllowedHeader>
|
|
<ExposeHeader>x-amz-*</ExposeHeader>
|
|
</CORSRule>
|
|
</CORSConfiguration>
|
|
`
|
|
|
|
copies := []uint32{2, 0}
|
|
|
|
err := tc.layer.PutBucketCORS(tc.ctx, &PutCORSParams{
|
|
BktInfo: tc.bktInfo,
|
|
Reader: strings.NewReader(body),
|
|
CopiesNumbers: copies,
|
|
UserAgent: "",
|
|
NewDecoder: NewXMLDecoder,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
objs := tc.testFrostFS.Objects()
|
|
require.Len(t, objs, 1)
|
|
|
|
require.EqualValues(t, copies, tc.testFrostFS.CopiesNumbers(addrFromObject(objs[0]).EncodeToString()))
|
|
}
|
|
|
|
func NewXMLDecoder(r io.Reader, _ string) *xml.Decoder {
|
|
dec := xml.NewDecoder(r)
|
|
|
|
return dec
|
|
}
|