mirror of
https://github.com/makeworld-the-better-one/amfora.git
synced 2024-10-27 00:52:06 +03:00
🐛 Recog. colon-only scheme URLs and add normalizeURL tests
This commit is contained in:
parent
6de2b355b5
commit
dbe87a3e99
@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Two digit (and higher) link texts are now in line with one digit ones (#60)
|
- Two digit (and higher) link texts are now in line with one digit ones (#60)
|
||||||
- Race condition when reloading pages, could have caused the cache to still be used
|
- Race condition when reloading pages, could have caused the cache to still be used
|
||||||
- Prevent panic (crash) when the server sends an error with an empty meta string (#73)
|
- Prevent panic (crash) when the server sends an error with an empty meta string (#73)
|
||||||
|
- URLs with with colon-only schemes (like `mailto:`) are properly recognized
|
||||||
|
|
||||||
|
|
||||||
## [1.4.0] - 2020-07-28
|
## [1.4.0] - 2020-07-28
|
||||||
|
@ -549,6 +549,10 @@ func URL(u string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !strings.HasPrefix(u, "//") && !strings.HasPrefix(u, "gemini://") && !strings.Contains(u, "://") {
|
||||||
|
// Assume it's a Gemini URL
|
||||||
|
u = "gemini://" + u
|
||||||
|
}
|
||||||
go goURL(tabs[curTab], u)
|
go goURL(tabs[curTab], u)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,13 +83,6 @@ func normalizeURL(u string) string {
|
|||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.Contains(u, "://") && !strings.HasPrefix(u, "//") {
|
|
||||||
// No scheme at all in the URL
|
|
||||||
parsed, err = url.Parse("gemini://" + u)
|
|
||||||
if err != nil {
|
|
||||||
return u
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if parsed.Scheme == "" {
|
if parsed.Scheme == "" {
|
||||||
// Always add scheme
|
// Always add scheme
|
||||||
parsed.Scheme = "gemini"
|
parsed.Scheme = "gemini"
|
||||||
|
33
display/util_test.go
Normal file
33
display/util_test.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package display
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
var normalizeURLTests = []struct {
|
||||||
|
u string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{"gemini://example.com:1965/", "gemini://example.com/"},
|
||||||
|
{"gemini://example.com", "gemini://example.com/"},
|
||||||
|
{"//example.com", "gemini://example.com/"},
|
||||||
|
{"//example.com:1965", "gemini://example.com/"},
|
||||||
|
{"//example.com:123/", "gemini://example.com:123/"},
|
||||||
|
{"gemini://example.com/", "gemini://example.com/"},
|
||||||
|
{"gemini://example.com/#fragment", "gemini://example.com/"},
|
||||||
|
{"gemini://example.com#fragment", "gemini://example.com/"},
|
||||||
|
{"gemini://user@example.com/", "gemini://example.com/"},
|
||||||
|
// Other schemes, URL isn't modified
|
||||||
|
{"mailto:example@example.com", "mailto:example@example.com"},
|
||||||
|
{"magnet:?xt=urn:btih:test", "magnet:?xt=urn:btih:test"},
|
||||||
|
{"https://example.com", "https://example.com"},
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNormalizeURL(t *testing.T) {
|
||||||
|
for _, tt := range normalizeURLTests {
|
||||||
|
actual := normalizeURL(tt.u)
|
||||||
|
if actual != tt.expected {
|
||||||
|
t.Errorf("normalizeURL(%s): expected %s, actual %s", tt.u, tt.expected, actual)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
go.sum
1
go.sum
@ -203,6 +203,7 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
|
|||||||
github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM=
|
github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM=
|
||||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
Loading…
Reference in New Issue
Block a user