URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [mime/] [multipart/] [formdata_test.go] - Rev 747
Compare with Previous | Blame | View Log
// Copyright 2011 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package multipartimport ("bytes""io""os""regexp""testing")func TestReadForm(t *testing.T) {testBody := regexp.MustCompile("\n").ReplaceAllString(message, "\r\n")b := bytes.NewBufferString(testBody)r := NewReader(b, boundary)f, err := r.ReadForm(25)if err != nil {t.Fatal("ReadForm:", err)}defer f.RemoveAll()if g, e := f.Value["texta"][0], textaValue; g != e {t.Errorf("texta value = %q, want %q", g, e)}if g, e := f.Value["textb"][0], textbValue; g != e {t.Errorf("texta value = %q, want %q", g, e)}fd := testFile(t, f.File["filea"][0], "filea.txt", fileaContents)if _, ok := fd.(*os.File); ok {t.Error("file is *os.File, should not be")}fd.Close()fd = testFile(t, f.File["fileb"][0], "fileb.txt", filebContents)if _, ok := fd.(*os.File); !ok {t.Errorf("file has unexpected underlying type %T", fd)}fd.Close()}func testFile(t *testing.T, fh *FileHeader, efn, econtent string) File {if fh.Filename != efn {t.Errorf("filename = %q, want %q", fh.Filename, efn)}f, err := fh.Open()if err != nil {t.Fatal("opening file:", err)}b := new(bytes.Buffer)_, err = io.Copy(b, f)if err != nil {t.Fatal("copying contents:", err)}if g := b.String(); g != econtent {t.Errorf("contents = %q, want %q", g, econtent)}return f}const (fileaContents = "This is a test file."filebContents = "Another test file."textaValue = "foo"textbValue = "bar"boundary = `MyBoundary`)const message = `--MyBoundaryContent-Disposition: form-data; name="filea"; filename="filea.txt"Content-Type: text/plain` + fileaContents + `--MyBoundaryContent-Disposition: form-data; name="fileb"; filename="fileb.txt"Content-Type: text/plain` + filebContents + `--MyBoundaryContent-Disposition: form-data; name="texta"` + textaValue + `--MyBoundaryContent-Disposition: form-data; name="textb"` + textbValue + `--MyBoundary--`
