mirror of
https://github.com/datarhei/core.git
synced 2025-09-27 04:16:25 +08:00
Fix URL validation if the path contains FFmpeg specific placeholders
This commit is contained in:
@@ -36,6 +36,12 @@ func TestValidate(t *testing.T) {
|
||||
|
||||
err = Validate("foobar")
|
||||
require.NoError(t, err)
|
||||
|
||||
err = Validate("http://localhost/foobar_%25v")
|
||||
require.NoError(t, err)
|
||||
|
||||
err = Validate("http://localhost/foobar_%v")
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestScheme(t *testing.T) {
|
||||
@@ -48,3 +54,129 @@ func TestScheme(t *testing.T) {
|
||||
r = HasScheme("//localhost/foobar")
|
||||
require.False(t, r)
|
||||
}
|
||||
|
||||
func TestPars(t *testing.T) {
|
||||
u, err := Parse("http://localhost/foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost",
|
||||
RawPath: "/foobar",
|
||||
RawQuery: "",
|
||||
RawFragment: "",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("iueriherfd://localhost/foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "iueriherfd",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost",
|
||||
RawPath: "/foobar",
|
||||
RawQuery: "",
|
||||
RawFragment: "",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("//localhost/foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost",
|
||||
RawPath: "/foobar",
|
||||
RawQuery: "",
|
||||
RawFragment: "",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("http://localhost/foobar_%v?foo=bar#foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost",
|
||||
RawPath: "/foobar_%v",
|
||||
RawQuery: "foo=bar",
|
||||
RawFragment: "foobar",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("http:localhost/foobar_%v?foo=bar#foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "localhost/foobar_%v",
|
||||
User: nil,
|
||||
Host: "",
|
||||
RawPath: "",
|
||||
RawQuery: "foo=bar",
|
||||
RawFragment: "foobar",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("http:/localhost/foobar_%v?foo=bar#foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "",
|
||||
RawPath: "/localhost/foobar_%v",
|
||||
RawQuery: "foo=bar",
|
||||
RawFragment: "foobar",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("http:///localhost/foobar_%v?foo=bar#foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "",
|
||||
RawPath: "/localhost/foobar_%v",
|
||||
RawQuery: "foo=bar",
|
||||
RawFragment: "foobar",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("foo:bar://localhost/foobar_%v?foo=bar#foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "foo:bar",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost",
|
||||
RawPath: "/foobar_%v",
|
||||
RawQuery: "foo=bar",
|
||||
RawFragment: "foobar",
|
||||
}, u)
|
||||
|
||||
u, err = Parse("http://localhost:8080/foobar")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "http",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "localhost:8080",
|
||||
RawPath: "/foobar",
|
||||
RawQuery: "",
|
||||
RawFragment: "",
|
||||
}, u)
|
||||
require.Equal(t, "localhost", u.Hostname())
|
||||
require.Equal(t, "8080", u.Port())
|
||||
|
||||
u, err = Parse("https://www.google.com")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &URL{
|
||||
Scheme: "https",
|
||||
Opaque: "",
|
||||
User: nil,
|
||||
Host: "www.google.com",
|
||||
RawPath: "/",
|
||||
RawQuery: "",
|
||||
RawFragment: "",
|
||||
}, u)
|
||||
require.Equal(t, "www.google.com", u.Hostname())
|
||||
require.Equal(t, "", u.Port())
|
||||
}
|
||||
|
Reference in New Issue
Block a user