12func TestNewReverseProxy(t *testing.T) {
13 backend := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
15 hostname, _, _ := net.SplitHostPort(r.Host)
16 w.Write([]byte(hostname))
20 backendURL, _ := url.Parse(backend.URL)
21 backendHostname := "upstream.127.0.0.1.xip.io"
22 _, backendPort, _ := net.SplitHostPort(backendURL.Host)
23 backendHost := net.JoinHostPort(backendHostname, backendPort)
24 proxyURL, _ := url.Parse(backendURL.Scheme + "://" + backendHost + "/")
26 proxyHandler := NewReverseProxy(proxyURL)
27 setProxyUpstreamHostHeader(proxyHandler, proxyURL)
28 frontend := httptest.NewServer(proxyHandler)
29 defer frontend.Close()
31 getReq, _ := http.NewRequest("GET", frontend.URL, nil)
32 res, _ := http.DefaultClient.Do(getReq)
33 bodyBytes, _ := ioutil.ReadAll(res.Body)
34 if g, e := string(bodyBytes), backendHostname; g != e {
35 t.Errorf("got body %q; expected %q", g, e)
39func TestEncodedSlashes(t *testing.T) {
41 backend := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
47 b, _ := url.Parse(backend.URL)
48 proxyHandler := NewReverseProxy(b)
49 setProxyDirector(proxyHandler)
50 frontend := httptest.NewServer(proxyHandler)
51 defer frontend.Close()
53 f, _ := url.Parse(frontend.URL)
54 encodedPath := "/a%2Fb/"
55 getReq := &http.Request{URL: &url.URL{Scheme: "http", Host: f.Host, Opaque: encodedPath}}
56 _, err := http.DefaultClient.Do(getReq)
58 t.Fatalf("err %s", err)
60 expected := backend.URL + encodedPath
62 t.Errorf("got bad request %q expected %q", seen, expected)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list