mirror of
https://github.com/gofiber/fiber.git
synced 2025-05-31 11:52:41 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
4135a48b7d
105
ctx_test.go
105
ctx_test.go
@ -7,11 +7,13 @@ package fiber
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@ -210,7 +212,57 @@ func Test_Cookies(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
func Test_FormFile(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) {
|
func Test_FormValue(t *testing.T) {
|
||||||
app := New()
|
app := New()
|
||||||
@ -596,7 +648,56 @@ func Test_Route(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
func Test_SaveFile(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) {
|
func Test_Secure(t *testing.T) {
|
||||||
app := New()
|
app := New()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user