From 6567bbee7b3d374d7e92d289e5a8cca072232809 Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Fri, 15 Sep 2017 09:54:30 -0700 Subject: [PATCH] Add redirection test for service using request host. Transport has no scheme and host. --- .../apimachinery/pkg/util/proxy/transport_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go b/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go index f32bcf69edc..e5450078403 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go @@ -53,6 +53,9 @@ func TestProxyTransport(t *testing.T) { Host: "foo.com", PathPrepend: "/proxy/node/node1:10250", } + emptyHostAndSchemeTransport := &Transport{ + PathPrepend: "/proxy/node/node1:10250", + } type Item struct { input string sourceURL string @@ -62,6 +65,7 @@ func TestProxyTransport(t *testing.T) { forwardedURI string redirect string redirectWant string + reqHost string } table := map[string]Item{ @@ -158,6 +162,14 @@ func TestProxyTransport(t *testing.T) { redirectWant: "http://example.com/redirected/target/", forwardedURI: "/proxy/node/node1:10250/redirect", }, + "redirect abs use reqHost no host no scheme": { + sourceURL: "http://mynode.com/redirect", + transport: emptyHostAndSchemeTransport, + redirect: "http://10.0.0.1:8001/redirected/target/", + redirectWant: "http://10.0.0.1:8001/proxy/node/node1:10250/redirected/target/", + forwardedURI: "/proxy/node/node1:10250/redirect", + reqHost: "10.0.0.1:8001", + }, "source contains the redirect already": { input: `
kubelet.loggoogle.log
`, sourceURL: "http://foo.com/logs/log.log", @@ -233,6 +245,9 @@ func TestProxyTransport(t *testing.T) { t.Errorf("%v: Unexpected error: %v", name, err) return } + if item.reqHost != "" { + req.Host = item.reqHost + } resp, err := item.transport.RoundTrip(req) if err != nil { t.Errorf("%v: Unexpected error: %v", name, err)