github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/webutil/http-basic-auth-handler_test.go (about) 1 package webutil 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestBasicAuthHandler(t *testing.T) { 12 13 assert := assert.New(t) 14 15 h := NewBasicAuthOneHandler("joe", "secret") 16 hl := NewDefaultHandlerList(h, http.NotFoundHandler()) 17 18 s := httptest.NewServer(hl) 19 defer s.Close() 20 21 client := s.Client() 22 23 res, err := client.Get(s.URL) 24 assert.NoError(err) 25 assert.Equal(401, res.StatusCode) 26 27 req, _ := http.NewRequest("GET", s.URL, nil) 28 req.SetBasicAuth("joe", "wrong password") 29 res, err = client.Do(req) 30 assert.NoError(err) 31 assert.Equal(401, res.StatusCode) 32 33 req, _ = http.NewRequest("GET", s.URL, nil) 34 req.SetBasicAuth("joe", "secret") 35 res, err = client.Do(req) 36 assert.NoError(err) 37 assert.Equal(404, res.StatusCode) // auth should work and it should fall through to 404 38 39 }