1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
13 func TestWriter(t *testing.T) {
14 fileContents := []byte("my file contents")
19 part, err := w.CreateFormFile("myfile", "my-file.txt")
21 t.Fatalf("CreateFormFile: %v", err)
23 part.Write(fileContents)
24 err = w.WriteField("key", "val")
26 t.Fatalf("WriteField: %v", err)
28 part.Write([]byte("val"))
31 t.Fatalf("Close: %v", err)
35 t.Fatal("String: unexpected empty result")
37 if s[0] == '\r' || s[0] == '\n' {
38 t.Fatal("String: unexpected newline")
42 r := NewReader(&b, w.Boundary())
44 part, err := r.NextPart()
46 t.Fatalf("part 1: %v", err)
48 if g, e := part.FormName(), "myfile"; g != e {
49 t.Errorf("part 1: want form name %q, got %q", e, g)
51 slurp, err := ioutil.ReadAll(part)
53 t.Fatalf("part 1: ReadAll: %v", err)
55 if e, g := string(fileContents), string(slurp); e != g {
56 t.Errorf("part 1: want contents %q, got %q", e, g)
59 part, err = r.NextPart()
61 t.Fatalf("part 2: %v", err)
63 if g, e := part.FormName(), "key"; g != e {
64 t.Errorf("part 2: want form name %q, got %q", e, g)
66 slurp, err = ioutil.ReadAll(part)
68 t.Fatalf("part 2: ReadAll: %v", err)
70 if e, g := "val", string(slurp); e != g {
71 t.Errorf("part 2: want contents %q, got %q", e, g)
74 part, err = r.NextPart()
75 if part != nil || err == nil {
76 t.Fatalf("expected end of parts; got %v, %v", part, err)