mirror of
https://github.com/dutchcoders/transfer.sh.git
synced 2024-11-27 14:40:18 +01:00
cb6e5cb0c7
* use dep for vendoring * lets encrypt * moved web to transfer.sh-web repo * single command install * added first tests
68 lines
1.4 KiB
Go
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")
|
|
}
|
|
}
|