mirror of
https://github.com/yusing/godoxy.git
synced 2026-03-18 23:44:40 +01:00
103 lines
2.4 KiB
Go
103 lines
2.4 KiB
Go
package proxy
|
|
|
|
// import (
|
|
// "net/http"
|
|
// "net/url"
|
|
// "os"
|
|
// "reflect"
|
|
// "testing"
|
|
// "time"
|
|
// )
|
|
|
|
// var proxy Entry
|
|
// var proxyUrl, _ = url.Parse("http://127.0.0.1:8181")
|
|
// var proxyServer = NewServer(ServerOptions{
|
|
// Name: "proxy",
|
|
// HTTPAddr: ":8080",
|
|
// Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
// NewReverseProxy(proxyUrl, &http.Transport{}, &proxy).ServeHTTP(w, r)
|
|
// }),
|
|
// })
|
|
|
|
// var testServer = NewServer(ServerOptions{
|
|
// Name: "test",
|
|
// HTTPAddr: ":8181",
|
|
// Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
// h := r.Header
|
|
// for k, vv := range h {
|
|
// for _, v := range vv {
|
|
// w.Header().Add(k, v)
|
|
// }
|
|
// }
|
|
// w.WriteHeader(http.StatusOK)
|
|
// }),
|
|
// })
|
|
|
|
// var httpClient = http.DefaultClient
|
|
|
|
// func TestMain(m *testing.M) {
|
|
// proxyServer.Start()
|
|
// testServer.Start()
|
|
// time.Sleep(100 * time.Millisecond)
|
|
// code := m.Run()
|
|
// proxyServer.Stop()
|
|
// testServer.Stop()
|
|
// os.Exit(code)
|
|
// }
|
|
|
|
// func TestSetHeader(t *testing.T) {
|
|
// hWant := http.Header{"X-Test": []string{"foo", "bar"}, "X-Test2": []string{"baz"}}
|
|
// proxy = Entry{
|
|
// Alias: "test",
|
|
// Scheme: "http",
|
|
// Host: "127.0.0.1",
|
|
// Port: "8181",
|
|
// SetHeaders: hWant,
|
|
// }
|
|
// req, err := http.NewRequest("HEAD", "http://127.0.0.1:8080", nil)
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// resp, err := httpClient.Do(req)
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// hGot := resp.Header
|
|
// t.Log("headers: ", hGot)
|
|
// for k, v := range hWant {
|
|
// if !reflect.DeepEqual(hGot[k], v) {
|
|
// t.Errorf("header %s: expected %v, got %v", k, v, hGot[k])
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func TestHideHeader(t *testing.T) {
|
|
// hHide := []string{"X-Test", "X-Test2"}
|
|
// proxy = Entry{
|
|
// Alias: "test",
|
|
// Scheme: "http",
|
|
// Host: "127.0.0.1",
|
|
// Port: "8181",
|
|
// HideHeaders: hHide,
|
|
// }
|
|
// req, err := http.NewRequest("HEAD", "http://127.0.0.1:8080", nil)
|
|
// for _, k := range hHide {
|
|
// req.Header.Set(k, "foo")
|
|
// }
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// resp, err := httpClient.Do(req)
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// hGot := resp.Header
|
|
// t.Log("headers: ", hGot)
|
|
// for _, v := range hHide {
|
|
// _, ok := hGot[v]
|
|
// if ok {
|
|
// t.Errorf("header %s: expected hidden, got %v", v, hGot[v])
|
|
// }
|
|
// }
|
|
// }
|