github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/http/testing/request.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package testing
     5  
     6  import (
     7  	"encoding/base64"
     8  	"net/http"
     9  
    10  	gc "gopkg.in/check.v1"
    11  )
    12  
    13  // CheckRequest verifies that the HTTP request matches the args
    14  // as an API request should.  We only check API-related request fields.
    15  func CheckRequest(c *gc.C, req *http.Request, method, user, pw, host, pth string) {
    16  	c.Check(req.Method, gc.Equals, method)
    17  
    18  	url := `https://` + host + `:\d+/environment/[-0-9a-f]+/` + pth
    19  	c.Check(req.URL.String(), gc.Matches, url)
    20  
    21  	c.Assert(req.Header, gc.HasLen, 1)
    22  	auth := base64.StdEncoding.EncodeToString([]byte(user + ":" + pw))
    23  	c.Check(req.Header.Get("Authorization"), gc.Equals, "Basic "+auth)
    24  }