file-system/internal/pkg/sanitize/sanitize_test.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)
}
})
}
}