[#383] Fix request type determination
/ DCO (pull_request) Successful in 1m50s
Details
/ Vulncheck (pull_request) Failing after 2m21s
Details
/ Builds (1.20) (pull_request) Successful in 2m32s
Details
/ Builds (1.21) (pull_request) Successful in 2m25s
Details
/ Lint (pull_request) Successful in 4m26s
Details
/ Tests (1.20) (pull_request) Successful in 2m53s
Details
/ Tests (1.21) (pull_request) Successful in 2m45s
Details
/ DCO (pull_request) Successful in 1m50s
Details
/ Vulncheck (pull_request) Failing after 2m21s
Details
/ Builds (1.20) (pull_request) Successful in 2m32s
Details
/ Builds (1.21) (pull_request) Successful in 2m25s
Details
/ Lint (pull_request) Successful in 4m26s
Details
/ Tests (1.20) (pull_request) Successful in 2m53s
Details
/ Tests (1.21) (pull_request) Successful in 2m45s
Details
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
parent
0cf19d24ee
commit
db924cc56e
|
@ -191,11 +191,11 @@ func getBucketObject(r *http.Request, domains []string) (reqType ReqType, bktNam
|
|||
return noneType, "", ""
|
||||
}
|
||||
|
||||
if ind := strings.IndexByte(bktObj, '/'); ind != -1 {
|
||||
if ind := strings.IndexByte(bktObj, '/'); ind != -1 && bktObj[ind+1:] != "" {
|
||||
return objectType, bktObj[:ind], bktObj[ind+1:]
|
||||
}
|
||||
|
||||
return bucketType, bktObj, ""
|
||||
return bucketType, strings.TrimSuffix(bktObj, "/"), ""
|
||||
}
|
||||
|
||||
func determineOperation(r *http.Request, reqType ReqType) (operation string) {
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package middleware
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestReqTypeDetermination(t *testing.T) {
|
||||
bkt, obj, domain := "test-bucket", "test-object", "domain"
|
||||
|
||||
r := httptest.NewRequest(http.MethodPut, "/"+bkt, nil)
|
||||
reqType, bktName, objName := getBucketObject(r, nil)
|
||||
require.Equal(t, bucketType, reqType)
|
||||
require.Equal(t, bkt, bktName)
|
||||
require.Equal(t, "", objName)
|
||||
|
||||
r = httptest.NewRequest(http.MethodPut, "/"+bkt+"/", nil)
|
||||
reqType, bktName, objName = getBucketObject(r, nil)
|
||||
require.Equal(t, bucketType, reqType)
|
||||
require.Equal(t, bkt, bktName)
|
||||
require.Equal(t, "", objName)
|
||||
|
||||
r = httptest.NewRequest(http.MethodPut, "/"+bkt+"/"+obj, nil)
|
||||
reqType, bktName, objName = getBucketObject(r, nil)
|
||||
require.Equal(t, objectType, reqType)
|
||||
require.Equal(t, bkt, bktName)
|
||||
require.Equal(t, obj, objName)
|
||||
|
||||
r = httptest.NewRequest(http.MethodPut, "/", nil)
|
||||
reqType, bktName, objName = getBucketObject(r, nil)
|
||||
require.Equal(t, noneType, reqType)
|
||||
require.Equal(t, "", bktName)
|
||||
require.Equal(t, "", objName)
|
||||
|
||||
r = httptest.NewRequest(http.MethodPut, "/", nil)
|
||||
r.Host = bkt + "." + domain
|
||||
reqType, bktName, objName = getBucketObject(r, []string{"some-domain", domain})
|
||||
require.Equal(t, bucketType, reqType)
|
||||
require.Equal(t, bkt, bktName)
|
||||
require.Equal(t, "", objName)
|
||||
|
||||
r = httptest.NewRequest(http.MethodPut, "/"+obj, nil)
|
||||
r.Host = bkt + "." + domain
|
||||
reqType, bktName, objName = getBucketObject(r, []string{"some-domain", domain})
|
||||
require.Equal(t, objectType, reqType)
|
||||
require.Equal(t, bkt, bktName)
|
||||
require.Equal(t, obj, objName)
|
||||
}
|
Loading…
Reference in New Issue