Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertJSONCall ¶
func AssertJSONCall(c *gc.C, p JSONCallParams)
AssertJSONCall asserts that when the given handler is called with the given parameters, the result is as specified.
func AssertJSONResponse ¶
func AssertJSONResponse(c *gc.C, rec *httptest.ResponseRecorder, expectStatus int, expectBody interface{})
AssertJSONResponse asserts that the given response recorder has recorded the given HTTP status, response body and content type. If expectBody is of type BodyAsserter it will be called with the response body to ensure the response is correct.
func DoRequest ¶
func DoRequest(c *gc.C, p DoRequestParams) *httptest.ResponseRecorder
DoRequest invokes a request on the given handler with the given parameters.
Types ¶
type BodyAsserter ¶
type BodyAsserter func(c *gc.C, body json.RawMessage)
BodyAsserter represents a function that can assert the correctness of a JSON reponse.
type DoRequestParams ¶
type DoRequestParams struct { // Do is used to make the HTTP request. // If it is nil, http.DefaultClient.Do will be used. // If the body reader implements io.Seeker, // req.Body will also implement that interface. Do func(req *http.Request) (*http.Response, error) // ExpectError holds the error regexp to match // against the error returned from the HTTP Do // request. If it is empty, the error is expected to be // nil. ExpectError string // Handler holds the handler to use to make the request. Handler http.Handler // Method holds the HTTP method to use for the call. // GET is assumed if this is empty. Method string // URL holds the URL to pass when making the request. URL string // JSONBody specifies a JSON value to marshal to use // as the body of the request. If this is specified, Body will // be ignored and the Content-Type header will // be set to application/json. The request // body will implement io.Seeker. JSONBody interface{} // Body holds the body to send in the request. Body io.Reader // Header specifies the HTTP headers to use when making // the request. Header http.Header // ContentLength specifies the length of the body. // It may be zero, in which case the default net/http // content-length behaviour will be used. ContentLength int64 // Username, if specified, is used for HTTP basic authentication. Username string // Password, if specified, is used for HTTP basic authentication. Password string // Cookies, if specified, are added to the request. Cookies []*http.Cookie }
DoRequestParams holds parameters for DoRequest. If left empty, some fields will automatically be filled with defaults.
type JSONCallParams ¶
type JSONCallParams struct { // Do is used to make the HTTP request. // If it is nil, http.DefaultClient.Do will be used. // If the body reader implements io.Seeker, // req.Body will also implement that interface. Do func(req *http.Request) (*http.Response, error) // ExpectError holds the error regexp to match // against the error returned from the HTTP Do // request. If it is empty, the error is expected to be // nil. ExpectError string // Handler holds the handler to use to make the request. Handler http.Handler // Method holds the HTTP method to use for the call. // GET is assumed if this is empty. Method string // URL holds the URL to pass when making the request. URL string // JSONBody specifies a JSON value to marshal to use // as the body of the request. If this is specified, Body will // be ignored and the Content-Type header will // be set to application/json. The request // body will implement io.Seeker. JSONBody interface{} // Body holds the body to send in the request. Body io.Reader // Header specifies the HTTP headers to use when making // the request. Header http.Header // ContentLength specifies the length of the body. // It may be zero, in which case the default net/http // content-length behaviour will be used. ContentLength int64 // Username, if specified, is used for HTTP basic authentication. Username string // Password, if specified, is used for HTTP basic authentication. Password string // ExpectStatus holds the expected HTTP status code. // http.StatusOK is assumed if this is zero. ExpectStatus int // ExpectBody holds the expected JSON body. // This may be a function of type BodyAsserter in which case it // will be called with the http response body to check the // result. ExpectBody interface{} // Cookies, if specified, are added to the request. Cookies []*http.Cookie }
JSONCallParams holds parameters for AssertJSONCall. If left empty, some fields will automatically be filled with defaults.