aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/filer_multipart_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/s3api/filer_multipart_test.go')
-rw-r--r--weed/s3api/filer_multipart_test.go62
1 files changed, 60 insertions, 2 deletions
diff --git a/weed/s3api/filer_multipart_test.go b/weed/s3api/filer_multipart_test.go
index 7f75a40de..bf4fa3ca2 100644
--- a/weed/s3api/filer_multipart_test.go
+++ b/weed/s3api/filer_multipart_test.go
@@ -1,12 +1,13 @@
package s3api
import (
+ "testing"
+ "time"
+
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
"github.com/stretchr/testify/assert"
- "testing"
- "time"
)
func TestInitiateMultipartUploadResult(t *testing.T) {
@@ -74,3 +75,60 @@ func Test_parsePartNumber(t *testing.T) {
})
}
}
+
+func TestGetEntryNameAndDir(t *testing.T) {
+ s3a := &S3ApiServer{
+ option: &S3ApiServerOption{
+ BucketsPath: "/buckets",
+ },
+ }
+
+ tests := []struct {
+ name string
+ bucket string
+ key string
+ expectedName string
+ expectedDirEnd string // We check the suffix since dir includes BucketsPath
+ }{
+ {
+ name: "simple file at root",
+ bucket: "test-bucket",
+ key: "/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket",
+ },
+ {
+ name: "file in subdirectory",
+ bucket: "test-bucket",
+ key: "/folder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder",
+ },
+ {
+ name: "file in nested subdirectory",
+ bucket: "test-bucket",
+ key: "/folder/subfolder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder/subfolder",
+ },
+ {
+ name: "key without leading slash",
+ bucket: "test-bucket",
+ key: "folder/file.txt",
+ expectedName: "file.txt",
+ expectedDirEnd: "/buckets/test-bucket/folder",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ input := &s3.CompleteMultipartUploadInput{
+ Bucket: aws.String(tt.bucket),
+ Key: aws.String(tt.key),
+ }
+ entryName, dirName := s3a.getEntryNameAndDir(input)
+ assert.Equal(t, tt.expectedName, entryName, "entry name mismatch")
+ assert.Equal(t, tt.expectedDirEnd, dirName, "directory mismatch")
+ })
+ }
+}