diff options
author | 2024-01-26 14:17:10 +0100 | |
---|---|---|
committer | 2024-01-26 14:17:10 +0100 | |
commit | e3052e8c825da699162ea25367e860ac3c66f461 (patch) | |
tree | 3d13e83413d4a85ab694034d6c9772f9ec64268a /internal/util/namestring_test.go | |
parent | [performance] cache library performance enhancements (updates go-structr => v... (diff) | |
download | gotosocial-e3052e8c825da699162ea25367e860ac3c66f461.tar.xz |
[bugfix] Don't return Account or Status if new and dereferencing failed, other small fixes (#2563)
* tidy up account, status, webfingering logic a wee bit
* go fmt
* invert published check
* alter resp initialization
* get Published from account in typeutils
* don't instantiate error for no darn good reason
* shadow err
* don't repeat error codes in wrapped errors
* don't wrap error unnecessarily
Diffstat (limited to 'internal/util/namestring_test.go')
-rw-r--r-- | internal/util/namestring_test.go | 50 |
1 files changed, 14 insertions, 36 deletions
diff --git a/internal/util/namestring_test.go b/internal/util/namestring_test.go index 09beaeb8a..2ce5af65c 100644 --- a/internal/util/namestring_test.go +++ b/internal/util/namestring_test.go @@ -18,7 +18,6 @@ package util_test import ( - "net/url" "testing" "github.com/stretchr/testify/suite" @@ -39,44 +38,22 @@ func (suite *NamestringSuite) TestExtractWebfingerParts() { {in: "stonerkitty.monster@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, {in: "stonerkitty.monster@stonerkitty.monster:8080", username: "stonerkitty.monster", domain: "stonerkitty.monster:8080"}, {in: "@stonerkitty.monster@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, - {in: "acct:@@stonerkitty.monster@stonerkitty.monster", err: "failed to extract user and domain from: acct:@@stonerkitty.monster@stonerkitty.monster"}, - {in: "acct:@stonerkitty.monster@@stonerkitty.monster", err: "failed to extract user and domain from: acct:@stonerkitty.monster@@stonerkitty.monster"}, - {in: "@@stonerkitty.monster@stonerkitty.monster", err: "failed to extract user and domain from: @@stonerkitty.monster@stonerkitty.monster"}, - {in: "@stonerkitty.monster@@stonerkitty.monster", err: "failed to extract user and domain from: @stonerkitty.monster@@stonerkitty.monster"}, - {in: "s3:stonerkitty.monster@stonerkitty.monster", err: "unsupported scheme: s3 for resource: s3:stonerkitty.monster@stonerkitty.monster"}, - } - - for _, tt := range tests { - tt := tt - suite.Run(tt.in, func() { - suite.T().Parallel() - username, domain, err := util.ExtractWebfingerParts(tt.in) - if tt.err == "" { - suite.NoError(err) - suite.Equal(tt.username, username) - suite.Equal(tt.domain, domain) - } else { - suite.EqualError(err, tt.err) - } - }) - } -} - -func (suite *NamestringSuite) TestExtractWebfingerPartsFromURI() { - tests := []struct { - in, username, domain, err string - }{ + {in: "acct:@@stonerkitty.monster@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, + {in: "acct:@stonerkitty.monster@@stonerkitty.monster", err: "couldn't match namestring @stonerkitty.monster@@stonerkitty.monster"}, + {in: "@@stonerkitty.monster@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, + {in: "@stonerkitty.monster@@stonerkitty.monster", err: "couldn't match namestring @stonerkitty.monster@@stonerkitty.monster"}, + {in: "s3:stonerkitty.monster@stonerkitty.monster", err: "unsupported scheme s3 for resource s3:stonerkitty.monster@stonerkitty.monster"}, {in: "https://stonerkitty.monster/users/stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, {in: "https://stonerkitty.monster/users/@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, {in: "https://stonerkitty.monster/@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, - {in: "https://stonerkitty.monster/@@stonerkitty.monster", username: "@stonerkitty.monster", domain: "stonerkitty.monster"}, + {in: "https://stonerkitty.monster/@@stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, {in: "https://stonerkitty.monster:8080/users/stonerkitty.monster", username: "stonerkitty.monster", domain: "stonerkitty.monster:8080"}, {in: "https://stonerkitty.monster/users/stonerkitty.monster/evil", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, {in: "https://stonerkitty.monster/@stonerkitty.monster/evil", username: "stonerkitty.monster", domain: "stonerkitty.monster"}, - {in: "/@stonerkitty.monster", err: "failed to extract domain from: /@stonerkitty.monster"}, - {in: "/users/stonerkitty.monster", err: "failed to extract domain from: /users/stonerkitty.monster"}, + {in: "/@stonerkitty.monster", err: "no scheme for resource /@stonerkitty.monster"}, + {in: "/users/stonerkitty.monster", err: "no scheme for resource /users/stonerkitty.monster"}, {in: "@stonerkitty.monster", err: "failed to extract domain from: @stonerkitty.monster"}, - {in: "users/stonerkitty.monster", err: "failed to extract domain from: users/stonerkitty.monster"}, + {in: "users/stonerkitty.monster", err: "couldn't match namestring @users/stonerkitty.monster"}, {in: "https://stonerkitty.monster/users/", err: "failed to extract username from: https://stonerkitty.monster/users/"}, {in: "https://stonerkitty.monster/users/@", err: "failed to extract username from: https://stonerkitty.monster/users/@"}, {in: "https://stonerkitty.monster/@", err: "failed to extract username from: https://stonerkitty.monster/@"}, @@ -87,14 +64,15 @@ func (suite *NamestringSuite) TestExtractWebfingerPartsFromURI() { tt := tt suite.Run(tt.in, func() { suite.T().Parallel() - uri, _ := url.Parse(tt.in) - username, domain, err := util.ExtractWebfingerPartsFromURI(uri) + username, domain, err := util.ExtractWebfingerParts(tt.in) if tt.err == "" { suite.NoError(err) suite.Equal(tt.username, username) suite.Equal(tt.domain, domain) } else { - suite.EqualError(err, tt.err) + if !suite.EqualError(err, tt.err) { + suite.T().Logf("expected error %s", tt.err) + } } }) } @@ -107,7 +85,7 @@ func (suite *NamestringSuite) TestExtractNamestring() { {in: "@stonerkitty.monster@stonerkitty.monster", username: "stonerkitty.monster", host: "stonerkitty.monster"}, {in: "@stonerkitty.monster", username: "stonerkitty.monster"}, {in: "@someone@somewhere", username: "someone", host: "somewhere"}, - {in: "", err: "couldn't match mention "}, + {in: "", err: "couldn't match namestring "}, } for _, tt := range tests { |