MCPcopy
hub / github.com/valyala/fasthttp / TestSaveMultipartFile

Function TestSaveMultipartFile

server_test.go:322–377  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

320}
321
322func TestSaveMultipartFile(t *testing.T) {
323 t.Parallel()
324
325 filea := "This is a test file."
326 fileb := strings.Repeat("test", 64)
327
328 mr := multipart.NewReader(strings.NewReader(""+
329 "--foo\r\n"+
330 "Content-Disposition: form-data; name=\"filea\"; filename=\"filea.txt\"\r\n"+
331 "Content-Type: text/plain\r\n"+
332 "\r\n"+
333 filea+"\r\n"+
334 "--foo\r\n"+
335 "Content-Disposition: form-data; name=\"fileb\"; filename=\"fileb.txt\"\r\n"+
336 "Content-Type: text/plain\r\n"+
337 "\r\n"+
338 fileb+"\r\n"+
339 "--foo--\r\n",
340 ), "foo")
341
342 f, err := mr.ReadForm(64)
343 if err != nil {
344 t.Fatal(err)
345 }
346
347 if err := SaveMultipartFile(f.File["filea"][0], "filea.txt"); err != nil {
348 t.Fatal(err)
349 }
350 defer os.Remove("filea.txt")
351
352 if c, err := os.ReadFile("filea.txt"); err != nil {
353 t.Fatal(err)
354 } else if string(c) != filea {
355 t.Fatalf("filea changed expected %q got %q", filea, c)
356 }
357
358 // Make sure fileb was saved to a file.
359 if ff, err := f.File["fileb"][0].Open(); err != nil {
360 t.Fatal("expected FileHeader.Open to work")
361 } else if _, ok := ff.(*os.File); !ok {
362 t.Fatal("expected fileb to be an os.File")
363 } else {
364 ff.Close()
365 }
366
367 if err := SaveMultipartFile(f.File["fileb"][0], "fileb.txt"); err != nil {
368 t.Fatal(err)
369 }
370 defer os.Remove("fileb.txt")
371
372 if c, err := os.ReadFile("fileb.txt"); err != nil {
373 t.Fatal(err)
374 } else if string(c) != fileb {
375 t.Fatalf("fileb changed expected %q got %q", fileb, c)
376 }
377}
378
379func TestServerName(t *testing.T) {

Callers

nothing calls this directly

Calls 5

SaveMultipartFileFunction · 0.85
NewReaderMethod · 0.80
RemoveMethod · 0.80
OpenMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…