1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-23 23:24:14 +00:00

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Fenny 2020-04-28 14:09:10 +02:00
commit 4135a48b7d

View File

@ -7,11 +7,13 @@ package fiber
import (
"bytes"
"fmt"
"io"
"io/ioutil"
"mime/multipart"
"net/http"
"net/http/httptest"
"net/url"
"os"
"strconv"
"strings"
"testing"
@ -210,7 +212,57 @@ func Test_Cookies(t *testing.T) {
}
}
func Test_FormFile(t *testing.T) {
// TODO
app := New()
app.Post("/test", func(c *Ctx) {
expectFileName := "test"
expectFileContent := "hello world"
fh, err := c.FormFile("file")
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
if fh.Filename != expectFileName {
t.Fatalf(`%s: Expecting %s, got %s`, t.Name(), expectFileName, fh.Filename)
}
f, err := fh.Open()
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
b := new(bytes.Buffer)
_, err = io.Copy(b, f)
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
f.Close()
if b.String() != expectFileContent {
t.Fatalf(`%s: Expecting %s, got %s`, t.Name(), expectFileContent, b.String())
}
})
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
ioWriter, err := writer.CreateFormFile("file", "test")
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
_, err = ioWriter.Write([]byte("hello world"))
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
writer.Close()
req, _ := http.NewRequest("POST", "/test", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("Content-Length", strconv.Itoa(len(body.Bytes())))
resp, err := app.Test(req)
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
if resp.StatusCode != 200 {
t.Fatalf(`%s: StatusCode %v`, t.Name(), resp.StatusCode)
}
}
func Test_FormValue(t *testing.T) {
app := New()
@ -596,7 +648,56 @@ func Test_Route(t *testing.T) {
}
}
func Test_SaveFile(t *testing.T) {
// TODO
app := New()
app.Post("/test", func(c *Ctx) {
fh, err := c.FormFile("file")
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
tempFile, err := ioutil.TempFile(os.TempDir(), "test-")
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
defer os.Remove(tempFile.Name())
err = c.SaveFile(fh, tempFile.Name())
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
bs, err := ioutil.ReadFile(tempFile.Name())
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
expect := "hello world"
if string(bs) != expect {
t.Fatalf(`Expecting %s, got %s`, expect, string(bs))
}
})
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
ioWriter, err := writer.CreateFormFile("file", "test")
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
_, err = ioWriter.Write([]byte("hello world"))
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
writer.Close()
req, _ := http.NewRequest("POST", "/test", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("Content-Length", strconv.Itoa(len(body.Bytes())))
resp, err := app.Test(req)
if err != nil {
t.Fatalf(`%s: %s`, t.Name(), err)
}
if resp.StatusCode != 200 {
t.Fatalf(`%s: StatusCode %v`, t.Name(), resp.StatusCode)
}
}
func Test_Secure(t *testing.T) {
app := New()