From 487734b9b561644052b31814b504436e5edd0c16 Mon Sep 17 00:00:00 2001 From: Kunihiko Sakamoto Date: Fri, 29 Mar 2019 11:21:55 +0900 Subject: [PATCH] go: Add basic test for bundle.go (#417) --- go/bundle/bundle_test.go | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 go/bundle/bundle_test.go diff --git a/go/bundle/bundle_test.go b/go/bundle/bundle_test.go new file mode 100644 index 00000000..7880d24c --- /dev/null +++ b/go/bundle/bundle_test.go @@ -0,0 +1,58 @@ +package bundle_test + +import ( + "bytes" + "net/http" + "net/url" + "reflect" + "testing" + + . "github.com/WICG/webpackage/go/bundle" +) + +func urlMustParse(rawurl string) *url.URL { + u, err := url.Parse(rawurl) + if err != nil { + panic(err) + } + return u +} + +func createTestBundle() *Bundle { + return &Bundle{ + Exchanges: []*Exchange{ + &Exchange{ + Request{ + URL: urlMustParse("https://bundle.example.com/"), + Header: make(http.Header), + }, + Response{ + Status: 200, + Header: http.Header{"Content-Type": []string{"text/html"}}, + Body: []byte("hello, world!"), + }, + }, + }, + } +} + +func TestWriteAndRead(t *testing.T) { + bundle := createTestBundle() + + var buf bytes.Buffer + n, err := bundle.WriteTo(&buf) + if err != nil { + t.Errorf("Bundle.WriteTo unexpectedly failed: %v", err) + } + if n != int64(buf.Len()) { + t.Errorf("Bundle.WriteTo returned %d, but wrote %d bytes", n, buf.Len()) + } + + deserialized, err := Read(&buf) + if err != nil { + t.Errorf("Bundle.Read unexpectedly failed: %v", err) + } + if !reflect.DeepEqual(deserialized, bundle) { + t.Errorf("got: %v\nwant: %v", deserialized, bundle) + } +}