mirror of
https://github.com/binwiederhier/ntfy.git
synced 2025-11-29 03:40:32 +01:00
87 lines
2 KiB
Go
87 lines
2 KiB
Go
package sprig
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var urlTests = map[string]map[string]any{
|
|
"proto://auth@host:80/path?query#fragment": {
|
|
"fragment": "fragment",
|
|
"host": "host:80",
|
|
"hostname": "host",
|
|
"opaque": "",
|
|
"path": "/path",
|
|
"query": "query",
|
|
"scheme": "proto",
|
|
"userinfo": "auth",
|
|
},
|
|
"proto://host:80/path": {
|
|
"fragment": "",
|
|
"host": "host:80",
|
|
"hostname": "host",
|
|
"opaque": "",
|
|
"path": "/path",
|
|
"query": "",
|
|
"scheme": "proto",
|
|
"userinfo": "",
|
|
},
|
|
"something": {
|
|
"fragment": "",
|
|
"host": "",
|
|
"hostname": "",
|
|
"opaque": "",
|
|
"path": "something",
|
|
"query": "",
|
|
"scheme": "",
|
|
"userinfo": "",
|
|
},
|
|
"proto://user:passwor%20d@host:80/path": {
|
|
"fragment": "",
|
|
"host": "host:80",
|
|
"hostname": "host",
|
|
"opaque": "",
|
|
"path": "/path",
|
|
"query": "",
|
|
"scheme": "proto",
|
|
"userinfo": "user:passwor%20d",
|
|
},
|
|
"proto://host:80/pa%20th?key=val%20ue": {
|
|
"fragment": "",
|
|
"host": "host:80",
|
|
"hostname": "host",
|
|
"opaque": "",
|
|
"path": "/pa th",
|
|
"query": "key=val%20ue",
|
|
"scheme": "proto",
|
|
"userinfo": "",
|
|
},
|
|
}
|
|
|
|
func TestUrlParse(t *testing.T) {
|
|
// testing that function is exported and working properly
|
|
assert.NoError(t, runt(
|
|
`{{ index ( urlParse "proto://auth@host:80/path?query#fragment" ) "host" }}`,
|
|
"host:80"))
|
|
|
|
// testing scenarios
|
|
for url, expected := range urlTests {
|
|
assert.EqualValues(t, expected, urlParse(url))
|
|
}
|
|
}
|
|
|
|
func TestUrlJoin(t *testing.T) {
|
|
tests := map[string]string{
|
|
`{{ urlJoin (dict "fragment" "fragment" "host" "host:80" "path" "/path" "query" "query" "scheme" "proto") }}`: "proto://host:80/path?query#fragment",
|
|
`{{ urlJoin (dict "fragment" "fragment" "host" "host:80" "path" "/path" "scheme" "proto" "userinfo" "ASDJKJSD") }}`: "proto://ASDJKJSD@host:80/path#fragment",
|
|
}
|
|
for tpl, expected := range tests {
|
|
assert.NoError(t, runt(tpl, expected))
|
|
}
|
|
|
|
for expected, urlMap := range urlTests {
|
|
assert.EqualValues(t, expected, urlJoin(urlMap))
|
|
}
|
|
|
|
}
|