| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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))
- }
- }
|