grim/resticide

Correctly support query parameters
develop
2016-07-09, Gary Kramlich
92fb02aef02c
Correctly support query parameters
package test
import (
"net/http"
"net/url"
"time"
)
// Test is the run time version of the test
type Test struct {
Filename string
Name string
Requests []Request
Start time.Time
End time.Time
Duration time.Duration
}
// Run runs the given test
func (test *Test) Run(url *url.URL) *Result {
res := NewResult(test)
test.Start = time.Now()
for _, request := range test.Requests {
httpRequest, err := request.buildRequest(test, url)
if err != nil {
return res
}
client := &http.Client{}
resp, err := client.Do(httpRequest)
if err != nil {
res.Error = err
return res
}
defer resp.Body.Close()
res.HTTPResponse = resp
res.Passed, res.Error = request.compareResponse(resp)
}
test.End = time.Now()
test.Duration = test.End.Sub(test.Start)
return res
}