mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-28 09:56:31 +02:00
* mui v5 wip * wip * wip * wip * use compressor for all controlplane endpoints * wip * wip * add deps * fix authenticate URL * fix test * fix test * fix build * maybe fix build * fix integration test * remove image asset test * add yarn.lock
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package urlutil
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRedirectURI(t *testing.T) {
|
|
t.Run("query", func(t *testing.T) {
|
|
r, err := http.NewRequest("GET", "https://www.example.com?"+(url.Values{
|
|
QueryRedirectURI: {"https://www.example.com/redirect"},
|
|
}).Encode(), nil)
|
|
require.NoError(t, err)
|
|
|
|
redirectURI, ok := RedirectURL(r)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, "https://www.example.com/redirect", redirectURI)
|
|
})
|
|
t.Run("form", func(t *testing.T) {
|
|
r, err := http.NewRequest("POST", "https://www.example.com", strings.NewReader((url.Values{
|
|
QueryRedirectURI: {"https://www.example.com/redirect"},
|
|
}).Encode()))
|
|
require.NoError(t, err)
|
|
r.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
redirectURI, ok := RedirectURL(r)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, "https://www.example.com/redirect", redirectURI)
|
|
})
|
|
t.Run("cookie", func(t *testing.T) {
|
|
r, err := http.NewRequest("GET", "https://www.example.com", nil)
|
|
require.NoError(t, err)
|
|
r.AddCookie(&http.Cookie{
|
|
Name: QueryRedirectURI,
|
|
Value: "https://www.example.com/redirect",
|
|
})
|
|
|
|
redirectURI, ok := RedirectURL(r)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, "https://www.example.com/redirect", redirectURI)
|
|
})
|
|
}
|