2020-09-17 22:46:24 -05:00
|
|
|
package integration
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/caddyserver/caddy/v2/caddytest"
|
|
|
|
)
|
|
|
|
|
2020-12-10 16:36:46 -05:00
|
|
|
func TestAutoHTTPtoHTTPSRedirectsImplicitPort(t *testing.T) {
|
|
|
|
tester := caddytest.NewTester(t)
|
|
|
|
tester.InitServer(`
|
|
|
|
{
|
|
|
|
http_port 9080
|
|
|
|
https_port 9443
|
|
|
|
}
|
|
|
|
localhost
|
|
|
|
respond "Yahaha! You found me!"
|
|
|
|
`, "caddyfile")
|
|
|
|
|
|
|
|
tester.AssertRedirect("http://localhost:9080/", "https://localhost/", http.StatusPermanentRedirect)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAutoHTTPtoHTTPSRedirectsExplicitPortSameAsHTTPSPort(t *testing.T) {
|
2020-09-17 22:46:24 -05:00
|
|
|
tester := caddytest.NewTester(t)
|
|
|
|
tester.InitServer(`
|
|
|
|
{
|
|
|
|
http_port 9080
|
|
|
|
https_port 9443
|
|
|
|
}
|
|
|
|
localhost:9443
|
|
|
|
respond "Yahaha! You found me!"
|
|
|
|
`, "caddyfile")
|
|
|
|
|
|
|
|
tester.AssertRedirect("http://localhost:9080/", "https://localhost/", http.StatusPermanentRedirect)
|
|
|
|
}
|
2020-12-10 16:36:46 -05:00
|
|
|
|
|
|
|
func TestAutoHTTPtoHTTPSRedirectsExplicitPortDifferentFromHTTPSPort(t *testing.T) {
|
|
|
|
tester := caddytest.NewTester(t)
|
|
|
|
tester.InitServer(`
|
|
|
|
{
|
|
|
|
http_port 9080
|
|
|
|
https_port 9443
|
|
|
|
}
|
|
|
|
localhost:1234
|
|
|
|
respond "Yahaha! You found me!"
|
|
|
|
`, "caddyfile")
|
|
|
|
|
|
|
|
tester.AssertRedirect("http://localhost:9080/", "https://localhost:1234/", http.StatusPermanentRedirect)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAutoHTTPRedirectsWithHTTPListenerFirstInAddresses(t *testing.T) {
|
|
|
|
tester := caddytest.NewTester(t)
|
|
|
|
tester.InitServer(`
|
|
|
|
{
|
|
|
|
"apps": {
|
|
|
|
"http": {
|
|
|
|
"http_port": 9080,
|
|
|
|
"https_port": 9443,
|
|
|
|
"servers": {
|
|
|
|
"ingress_server": {
|
|
|
|
"listen": [
|
|
|
|
":9080",
|
|
|
|
":9443"
|
|
|
|
],
|
|
|
|
"routes": [
|
|
|
|
{
|
|
|
|
"match": [
|
|
|
|
{
|
|
|
|
"host": ["localhost"]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
`, "json")
|
|
|
|
tester.AssertRedirect("http://localhost:9080/", "https://localhost/", http.StatusPermanentRedirect)
|
|
|
|
}
|