| 165 | } |
| 166 | |
| 167 | func (s *RewriteSuite) TestSameHeaderMulti(c *C) { |
| 168 | var outURL string |
| 169 | handler := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { |
| 170 | outURL = rawURL(req) |
| 171 | w.Write([]byte("hello")) |
| 172 | }) |
| 173 | |
| 174 | rh, err := newRewriteHandler(handler, |
| 175 | &Rewrite{ |
| 176 | "^http://localhost/(foo)/(bar)$", |
| 177 | `http://localhost/$1/{{.Request.Header.Get "X-Header"}}/$2/{{.Request.Header.Get "X-Header"}}`, false, false}) |
| 178 | |
| 179 | c.Assert(rh, NotNil) |
| 180 | c.Assert(err, IsNil) |
| 181 | |
| 182 | srv := httptest.NewServer(rh) |
| 183 | defer srv.Close() |
| 184 | |
| 185 | re, _, err := testutils.Get(srv.URL+"/foo/bar", |
| 186 | testutils.Host("localhost"), testutils.Header("X-Header", "baz")) |
| 187 | |
| 188 | c.Assert(err, IsNil) |
| 189 | c.Assert(re.StatusCode, Equals, http.StatusOK) |
| 190 | c.Assert(outURL, Equals, "http://localhost/foo/baz/bar/baz") |
| 191 | } |
| 192 | |
| 193 | func (s *RewriteSuite) TestUnknownHeader(c *C) { |
| 194 | var outURL string |