github.com/pusher/oauth2_proxy@v3.2.0+incompatible/http_test.go (about) 1 package main 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestGCPHealthcheckLiveness(t *testing.T) { 12 handler := func(w http.ResponseWriter, req *http.Request) { 13 w.Write([]byte("test")) 14 } 15 16 h := gcpHealthcheck(http.HandlerFunc(handler)) 17 rw := httptest.NewRecorder() 18 r, _ := http.NewRequest("GET", "/liveness_check", nil) 19 r.RemoteAddr = "127.0.0.1" 20 r.Host = "test-server" 21 h.ServeHTTP(rw, r) 22 23 assert.Equal(t, 200, rw.Code) 24 assert.Equal(t, "OK", rw.Body.String()) 25 } 26 27 func TestGCPHealthcheckReadiness(t *testing.T) { 28 handler := func(w http.ResponseWriter, req *http.Request) { 29 w.Write([]byte("test")) 30 } 31 32 h := gcpHealthcheck(http.HandlerFunc(handler)) 33 rw := httptest.NewRecorder() 34 r, _ := http.NewRequest("GET", "/readiness_check", nil) 35 r.RemoteAddr = "127.0.0.1" 36 r.Host = "test-server" 37 h.ServeHTTP(rw, r) 38 39 assert.Equal(t, 200, rw.Code) 40 assert.Equal(t, "OK", rw.Body.String()) 41 } 42 43 func TestGCPHealthcheckNotHealthcheck(t *testing.T) { 44 handler := func(w http.ResponseWriter, req *http.Request) { 45 w.Write([]byte("test")) 46 } 47 48 h := gcpHealthcheck(http.HandlerFunc(handler)) 49 rw := httptest.NewRecorder() 50 r, _ := http.NewRequest("GET", "/not_any_check", nil) 51 r.RemoteAddr = "127.0.0.1" 52 r.Host = "test-server" 53 h.ServeHTTP(rw, r) 54 55 assert.Equal(t, "test", rw.Body.String()) 56 } 57 58 func TestGCPHealthcheckIngress(t *testing.T) { 59 handler := func(w http.ResponseWriter, req *http.Request) { 60 w.Write([]byte("test")) 61 } 62 63 h := gcpHealthcheck(http.HandlerFunc(handler)) 64 rw := httptest.NewRecorder() 65 r, _ := http.NewRequest("GET", "/", nil) 66 r.RemoteAddr = "127.0.0.1" 67 r.Host = "test-server" 68 r.Header.Set(userAgentHeader, googleHealthCheckUserAgent) 69 h.ServeHTTP(rw, r) 70 71 assert.Equal(t, 200, rw.Code) 72 assert.Equal(t, "", rw.Body.String()) 73 } 74 75 func TestGCPHealthcheckNotIngress(t *testing.T) { 76 handler := func(w http.ResponseWriter, req *http.Request) { 77 w.Write([]byte("test")) 78 } 79 80 h := gcpHealthcheck(http.HandlerFunc(handler)) 81 rw := httptest.NewRecorder() 82 r, _ := http.NewRequest("GET", "/foo", nil) 83 r.RemoteAddr = "127.0.0.1" 84 r.Host = "test-server" 85 r.Header.Set(userAgentHeader, googleHealthCheckUserAgent) 86 h.ServeHTTP(rw, r) 87 88 assert.Equal(t, "test", rw.Body.String()) 89 } 90 91 func TestGCPHealthcheckNotIngressPut(t *testing.T) { 92 handler := func(w http.ResponseWriter, req *http.Request) { 93 w.Write([]byte("test")) 94 } 95 96 h := gcpHealthcheck(http.HandlerFunc(handler)) 97 rw := httptest.NewRecorder() 98 r, _ := http.NewRequest("PUT", "/", nil) 99 r.RemoteAddr = "127.0.0.1" 100 r.Host = "test-server" 101 r.Header.Set(userAgentHeader, googleHealthCheckUserAgent) 102 h.ServeHTTP(rw, r) 103 104 assert.Equal(t, "test", rw.Body.String()) 105 }