transfer.sh/vendor/github.com/PuerkitoBio/ghost/handlers/utils_test.go
Remco cb6e5cb0c7 Major rewrite
* use dep for vendoring
* lets encrypt
* moved web to transfer.sh-web repo
* single command install
* added first tests
2017-03-22 18:09:21 +01:00

68 lines
1.4 KiB
Go

package handlers
import (
"bytes"
"compress/gzip"
"io"
"io/ioutil"
"net/http"
"testing"
)
func assertTrue(cond bool, msg string, t *testing.T) bool {
if !cond {
t.Error(msg)
return false
}
return true
}
func assertStatus(ex, ac int, t *testing.T) {
if ex != ac {
t.Errorf("expected status code to be %d, got %d", ex, ac)
}
}
func assertBody(ex []byte, res *http.Response, t *testing.T) {
buf, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err)
}
defer res.Body.Close()
if !bytes.Equal(ex, buf) {
t.Errorf("expected body to be '%s' (%d), got '%s' (%d)", ex, len(ex), buf, len(buf))
}
}
func assertGzippedBody(ex []byte, res *http.Response, t *testing.T) {
gr, err := gzip.NewReader(res.Body)
if err != nil {
panic(err)
}
defer res.Body.Close()
buf := bytes.NewBuffer(nil)
_, err = io.Copy(buf, gr)
if err != nil {
panic(err)
}
if !bytes.Equal(ex, buf.Bytes()) {
t.Errorf("expected unzipped body to be '%s' (%d), got '%s' (%d)", ex, len(ex), buf.Bytes(), buf.Len())
}
}
func assertHeader(hName, ex string, res *http.Response, t *testing.T) {
hVal, ok := res.Header[hName]
if (!ok || len(hVal) == 0) && len(ex) > 0 {
t.Errorf("expected header %s to be %s, was not set", hName, ex)
} else if len(hVal) > 0 && hVal[0] != ex {
t.Errorf("expected header %s to be %s, got %s", hName, ex, hVal)
}
}
func assertPanic(t *testing.T) {
if err := recover(); err == nil {
t.Error("expected a panic, got none")
}
}