46 lines
1017 B
Go
46 lines
1017 B
Go
package sanitize
|
|
|
|
import "testing"
|
|
|
|
func TestObjectKey(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
key string
|
|
wantErr bool
|
|
}{
|
|
{"valid", "path/to/file.txt", false},
|
|
{"traversal", "../etc/passwd", true},
|
|
{"double_slash", "path//file", true},
|
|
{"leading_slash", "/absolute/path", true},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
err := ObjectKey(tt.key)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("ObjectKey(%q) error = %v, wantErr %v", tt.key, err, tt.wantErr)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestBucketName(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
wantErr bool
|
|
}{
|
|
{"valid", "my-bucket", false},
|
|
{"too_short", "ab", true},
|
|
{"uppercase", "MyBucket", true},
|
|
{"valid_dots", "my.bucket.test", false},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
err := BucketName(tt.input)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("BucketName(%q) error = %v, wantErr %v", tt.input, err, tt.wantErr)
|
|
}
|
|
})
|
|
}
|
|
}
|