MCPcopy
hub / github.com/gofiber/fiber / Test_Ctx_FormFile

Function Test_Ctx_FormFile

ctx_test.go:2365–2412  ·  view source on GitHub ↗

go test -run Test_Ctx_FormFile

(t *testing.T)

Source from the content-addressed store, hash-verified

2363
2364// go test -run Test_Ctx_FormFile
2365func Test_Ctx_FormFile(t *testing.T) {
2366 // TODO: We should clean this up
2367 t.Parallel()
2368 app := New()
2369
2370 app.Post("/test", func(c Ctx) error {
2371 fh, err := c.FormFile("file")
2372 require.NoError(t, err)
2373 require.Equal(t, "test", fh.Filename)
2374
2375 f, err := fh.Open()
2376 require.NoError(t, err)
2377 defer func() {
2378 require.NoError(t, f.Close())
2379 }()
2380
2381 b := new(bytes.Buffer)
2382 _, err = io.Copy(b, f)
2383 require.NoError(t, err)
2384 require.Equal(t, "hello world", b.String())
2385 return nil
2386 })
2387
2388 body := &bytes.Buffer{}
2389 writer := multipart.NewWriter(body)
2390
2391 ioWriter, err := writer.CreateFormFile("file", "test")
2392 require.NoError(t, err)
2393
2394 _, err = ioWriter.Write([]byte("hello world"))
2395 require.NoError(t, err)
2396 require.NoError(t, writer.Close())
2397
2398 req := httptest.NewRequest(MethodPost, "/test", body)
2399 req.Header.Set(HeaderContentType, writer.FormDataContentType())
2400 req.Header.Set(HeaderContentLength, strconv.Itoa(len(body.Bytes())))
2401
2402 resp, err := app.Test(req)
2403 require.NoError(t, err, "app.Test(req)")
2404 defer func() { require.NoError(t, resp.Body.Close()) }()
2405 require.Equal(t, StatusOK, resp.StatusCode, "Status code")
2406
2407 respBody, err := io.ReadAll(resp.Body)
2408 require.NoError(t, err, "io.ReadAll(resp.Body)")
2409 require.Empty(t, respBody)
2410 require.Empty(t, resp.Header.Get(HeaderContentType))
2411 require.Equal(t, int64(0), resp.ContentLength)
2412}
2413
2414// go test -run Test_Ctx_FormValue
2415func Test_Ctx_FormValue(t *testing.T) {

Callers

nothing calls this directly

Calls 10

BytesMethod · 0.95
TestMethod · 0.80
NewFunction · 0.70
PostMethod · 0.65
FormFileMethod · 0.65
CloseMethod · 0.65
StringMethod · 0.65
WriteMethod · 0.65
SetMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected