github.com/avenga/couper@v1.12.2/server/cookies_test.go (about) 1 package server_test 2 3 import ( 4 "net" 5 "net/http" 6 "net/http/httptest" 7 "testing" 8 "time" 9 10 "github.com/avenga/couper/internal/test" 11 ) 12 13 func TestCookies_IntegrationStrip(t *testing.T) { 14 helper := test.New(t) 15 seenCh := make(chan struct{}, 1) 16 17 origin := httptest.NewUnstartedServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { 18 rw.Header().Set("Set-Cookie", "n=v; Path=path; Secure") 19 rw.WriteHeader(http.StatusOK) 20 21 seenCh <- struct{}{} 22 close(seenCh) 23 })) 24 25 ln, err := net.Listen("tcp4", testProxyAddr[7:]) 26 helper.Must(err) 27 origin.Listener = ln 28 origin.Start() 29 defer origin.Close() 30 31 confPath := "testdata/settings/01_couper.hcl" 32 shutdown, _ := newCouper(confPath, test.New(t)) 33 defer shutdown() 34 35 req, err := http.NewRequest(http.MethodGet, "http://anyserver:8080", nil) 36 helper.Must(err) 37 38 res, err := newClient().Do(req) 39 helper.Must(err) 40 41 if v := res.Header.Get("Set-Cookie"); v != "n=v; Path=path" { 42 t.Errorf("Unexpected Set-Cookie header given: %s", v) 43 } 44 45 timer := time.NewTimer(time.Second) 46 defer timer.Stop() 47 48 select { 49 case <-timer.C: 50 t.Error("Origin request failed") 51 case <-seenCh: 52 } 53 }