diff --git a/atproto/auth/permission_test.go b/atproto/auth/permission_test.go index dcb64553..d514a102 100644 --- a/atproto/auth/permission_test.go +++ b/atproto/auth/permission_test.go @@ -144,3 +144,28 @@ func TestInteropPermissionInvalid(t *testing.T) { } assert.NoError(scanner.Err()) } + +func TestValidBlobAccept(t *testing.T) { + assert := assert.New(t) + + validAccepts := []string{ + "text/plain", + "text/*", + } + invalidAccepts := []string{ + "", + "*/png", + "/plain", + "text/", + "text/**", + } + + for _, val := range validAccepts { + assert.True(validBlobAccept(val), val) + } + + for _, val := range invalidAccepts { + assert.False(validBlobAccept(val), val) + } + +} diff --git a/atproto/auth/permission_util.go b/atproto/auth/permission_util.go index 4c733a3a..28a3da26 100644 --- a/atproto/auth/permission_util.go +++ b/atproto/auth/permission_util.go @@ -60,10 +60,10 @@ func validBlobAccept(accept string) bool { if len(parts) != 2 { return false } - if parts[0] == "*" { + if parts[0] == "*" || parts[0] == "" { return false } - if parts[1] == "**" { + if parts[1] == "**" || parts[1] == "" { return false } return true