51 lines
991 B
Go
51 lines
991 B
Go
|
package hawser
|
||
|
|
||
|
import (
|
||
|
"io/ioutil"
|
||
|
"net/http"
|
||
|
"net/http/httptest"
|
||
|
"os"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestDownload(t *testing.T) {
|
||
|
mux := http.NewServeMux()
|
||
|
server := httptest.NewServer(mux)
|
||
|
tmp := tempdir(t)
|
||
|
defer server.Close()
|
||
|
defer os.RemoveAll(tmp)
|
||
|
|
||
|
mux.HandleFunc("/media/objects/oid", func(w http.ResponseWriter, r *http.Request) {
|
||
|
if r.Method != "GET" {
|
||
|
w.WriteHeader(405)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
head := w.Header()
|
||
|
head.Set("Content-Type", "application/octet-stream")
|
||
|
head.Set("Content-Length", "4")
|
||
|
w.WriteHeader(200)
|
||
|
w.Write([]byte("test"))
|
||
|
})
|
||
|
|
||
|
Config.SetConfig("hawser.url", server.URL+"/media")
|
||
|
reader, size, wErr := Download("whatever/oid")
|
||
|
if wErr != nil {
|
||
|
t.Fatalf("unexpected error: %s", wErr)
|
||
|
}
|
||
|
defer reader.Close()
|
||
|
|
||
|
if size != 4 {
|
||
|
t.Errorf("unexpected size: %d", size)
|
||
|
}
|
||
|
|
||
|
by, err := ioutil.ReadAll(reader)
|
||
|
if err != nil {
|
||
|
t.Fatalf("unexpected error: %s", err)
|
||
|
}
|
||
|
|
||
|
if body := string(by); body != "test" {
|
||
|
t.Errorf("unexpected body: %s", body)
|
||
|
}
|
||
|
}
|