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  }