Skip to content

Commit a232d73

Browse files
authored
Add test for Bucket Set Policy end point (#1562)
1 parent c986baf commit a232d73

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

integration/buckets_test.go

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,41 @@ func RestoreObjectToASelectedVersion(bucketName string, prefix string, versionID
628628
return response, err
629629
}
630630

631+
func BucketSetPolicy(bucketName string, access string, definition string) (*http.Response, error) {
632+
/*
633+
Helper function to set policy on a bucket
634+
Name: Bucket Set Policy
635+
HTTP Verb: PUT
636+
URL: {{baseUrl}}/buckets/:name/set-policy
637+
Body:
638+
{
639+
"access": "PRIVATE",
640+
"definition": "dolo"
641+
}
642+
*/
643+
requestDataAdd := map[string]interface{}{
644+
"access": access,
645+
"definition": definition,
646+
}
647+
requestDataJSON, _ := json.Marshal(requestDataAdd)
648+
requestDataBody := bytes.NewReader(requestDataJSON)
649+
request, err := http.NewRequest(
650+
"PUT",
651+
"http://localhost:9090/api/v1/buckets/"+bucketName+"/set-policy",
652+
requestDataBody,
653+
)
654+
if err != nil {
655+
log.Println(err)
656+
}
657+
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
658+
request.Header.Add("Content-Type", "application/json")
659+
client := &http.Client{
660+
Timeout: 2 * time.Second,
661+
}
662+
response, err := client.Do(request)
663+
return response, err
664+
}
665+
631666
func TestAddBucket(t *testing.T) {
632667
assert := assert.New(t)
633668
type args struct {
@@ -2047,3 +2082,72 @@ func TestRestoreObjectToASelectedVersion(t *testing.T) {
20472082
})
20482083
}
20492084
}
2085+
2086+
func TestBucketSetPolicy(t *testing.T) {
2087+
2088+
// Variables
2089+
assert := assert.New(t)
2090+
validBucketName := "testbucketsetpolicy"
2091+
2092+
// 1. Create bucket
2093+
response, err := AddBucket(validBucketName, true, true, nil, nil)
2094+
assert.Nil(err)
2095+
if err != nil {
2096+
log.Println(err)
2097+
assert.Fail("Error creating the bucket")
2098+
return
2099+
}
2100+
if response != nil {
2101+
assert.Equal(201, response.StatusCode, inspectHTTPResponse(response))
2102+
}
2103+
2104+
// 2. Set a bucket's policy using table driven tests
2105+
type args struct {
2106+
bucketName string
2107+
}
2108+
tests := []struct {
2109+
name string
2110+
expectedStatus int
2111+
args args
2112+
}{
2113+
{
2114+
name: "Valid bucket when setting a policy",
2115+
expectedStatus: 200,
2116+
args: args{
2117+
bucketName: validBucketName,
2118+
},
2119+
},
2120+
{
2121+
name: "Invalid bucket when setting a bucket",
2122+
expectedStatus: 500,
2123+
args: args{
2124+
bucketName: "wlkjsdkalsjdklajsdlkajsdlkajsdlkajsdklajsdkljaslkdjaslkdj",
2125+
},
2126+
},
2127+
}
2128+
for _, tt := range tests {
2129+
t.Run(tt.name, func(t *testing.T) {
2130+
2131+
// Set Policy
2132+
restResp, restErr := BucketSetPolicy(
2133+
tt.args.bucketName,
2134+
"PUBLIC",
2135+
"",
2136+
)
2137+
assert.Nil(restErr)
2138+
if restErr != nil {
2139+
log.Println(restErr)
2140+
return
2141+
}
2142+
finalResponse := inspectHTTPResponse(restResp)
2143+
if restResp != nil {
2144+
assert.Equal(
2145+
tt.expectedStatus,
2146+
restResp.StatusCode,
2147+
finalResponse,
2148+
)
2149+
}
2150+
2151+
})
2152+
}
2153+
}

0 commit comments

Comments
 (0)