MCPcopy Index your code
hub / github.com/labstack/echo / TestBindMultipartFormFiles

Function TestBindMultipartFormFiles

bind_test.go:1466–1527  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1464}
1465
1466func TestBindMultipartFormFiles(t *testing.T) {
1467 file1 := createTestFormFile("file", "file1.txt")
1468 file11 := createTestFormFile("file", "file11.txt")
1469 file2 := createTestFormFile("file2", "file2.txt")
1470 filesA := createTestFormFile("files", "filesA.txt")
1471 filesB := createTestFormFile("files", "filesB.txt")
1472
1473 t.Run("nok, can not bind to multipart file struct", func(t *testing.T) {
1474 var target struct {
1475 File multipart.FileHeader `form:"file"`
1476 }
1477 err := bindMultipartFiles(t, &target, file1, file2) // file2 should be ignored
1478
1479 assert.EqualError(t, err, `code=400, message=Bad Request, err=binding to multipart.FileHeader struct is not supported, use pointer to struct`)
1480 })
1481
1482 t.Run("ok, bind single multipart file to pointer to multipart file", func(t *testing.T) {
1483 var target struct {
1484 File *multipart.FileHeader `form:"file"`
1485 }
1486 err := bindMultipartFiles(t, &target, file1, file2) // file2 should be ignored
1487
1488 assert.NoError(t, err)
1489 assertMultipartFileHeader(t, target.File, file1)
1490 })
1491
1492 t.Run("ok, bind multiple multipart files to pointer to multipart file", func(t *testing.T) {
1493 var target struct {
1494 File *multipart.FileHeader `form:"file"`
1495 }
1496 err := bindMultipartFiles(t, &target, file1, file11)
1497
1498 assert.NoError(t, err)
1499 assertMultipartFileHeader(t, target.File, file1) // should choose first one
1500 })
1501
1502 t.Run("ok, bind multiple multipart files to slice of multipart file", func(t *testing.T) {
1503 var target struct {
1504 Files []multipart.FileHeader `form:"files"`
1505 }
1506 err := bindMultipartFiles(t, &target, filesA, filesB, file1)
1507
1508 assert.NoError(t, err)
1509
1510 assert.Len(t, target.Files, 2)
1511 assertMultipartFileHeader(t, &target.Files[0], filesA)
1512 assertMultipartFileHeader(t, &target.Files[1], filesB)
1513 })
1514
1515 t.Run("ok, bind multiple multipart files to slice of pointer to multipart file", func(t *testing.T) {
1516 var target struct {
1517 Files []*multipart.FileHeader `form:"files"`
1518 }
1519 err := bindMultipartFiles(t, &target, filesA, filesB, file1)
1520
1521 assert.NoError(t, err)
1522
1523 assert.Len(t, target.Files, 2)

Callers

nothing calls this directly

Calls 3

createTestFormFileFunction · 0.85
bindMultipartFilesFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…