From 2bdce020909ab4737a2cd74ffa8767f1a61509f7 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sat, 8 Jun 2019 21:02:10 -0400 Subject: [PATCH] fix tests --- go.mod | 5 ++--- go.sum | 2 ++ gopher.go | 31 +++++++++++++++++++++++++------ gopher_test.go | 2 +- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 8ee0fd4..e78b1a3 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,7 @@ -module github.com/prologic/go-gopher +module within.website/gopher require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prologic/go-gopher v0.0.0-20181230133552-0c68ed5f58b0 github.com/stretchr/testify v1.2.2 golang.org/x/net v0.0.0-20181220203305-927f97764cc3 within.website/ln v0.6.0 diff --git a/go.sum b/go.sum index 42c267e..3837f2b 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prologic/go-gopher v0.0.0-20181230133552-0c68ed5f58b0 h1:10LO/S8HVjIuEHsHea//Cena1Ztgy23f/e8HFC0w5ow= +github.com/prologic/go-gopher v0.0.0-20181230133552-0c68ed5f58b0/go.mod h1:LiuwIXz4es4YIUOD6yRv8mES9n9dFbe4z0+TcrLkhXg= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/gopher.go b/gopher.go index 7bfe4c1..89c866a 100644 --- a/gopher.go +++ b/gopher.go @@ -209,6 +209,25 @@ func ParseItem(line string) (item *Item, err error) { return } +// MarshalJSON serializes an Item into a JSON structure +func (i Item) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + Type string `json:"type"` + Description string `json:"description"` + Selector string `json:"selector"` + Host string `json:"host"` + Port int `json:"port"` + Extras []string `json:"extras"` + }{ + Type: string(i.Type), + Description: i.Description, + Selector: i.Selector, + Host: i.Host, + Port: i.Port, + Extras: i.Extras, + }) +} + // MarshalText serializes an Item into an array of bytes func (i Item) MarshalText() ([]byte, error) { b := []byte{} @@ -1004,7 +1023,7 @@ type ResponseWriter interface { WriteInfo(msg string) error // WriteItem writes an item - WriteItem(i *Item) error + WriteItem(i Item) error } // A response represents the server side of a Gopher response. @@ -1044,7 +1063,7 @@ func (w *response) WriteError(err string) error { return e } - i := &Item{ + i := Item{ Type: ERROR, Description: err, Host: "error.host", @@ -1064,7 +1083,7 @@ func (w *response) WriteInfo(msg string) error { return e } - i := &Item{ + i := Item{ Type: INFO, Description: msg, Host: "error.host", @@ -1074,7 +1093,7 @@ func (w *response) WriteInfo(msg string) error { return w.WriteItem(i) } -func (w *response) WriteItem(i *Item) error { +func (w *response) WriteItem(i Item) error { if w.rt == 0 { w.rt = 2 } @@ -1247,7 +1266,7 @@ func dirList(w ResponseWriter, r *Request, f File, fs FileSystem) { Error(w, "Error reading directory") return } - w.WriteItem(&Item{ + w.WriteItem(Item{ Type: DIRECTORY, Description: file.Name(), Selector: pathname, @@ -1266,7 +1285,7 @@ func dirList(w ResponseWriter, r *Request, f File, fs FileSystem) { itemtype := GetItemType(path.Join(fullpath, file.Name())) - w.WriteItem(&Item{ + w.WriteItem(Item{ Type: itemtype, Description: file.Name(), Selector: pathname, diff --git a/gopher_test.go b/gopher_test.go index a0a6f62..1b71207 100644 --- a/gopher_test.go +++ b/gopher_test.go @@ -6,8 +6,8 @@ import ( "os" "testing" - "github.com/prologic/go-gopher" "github.com/stretchr/testify/assert" + "within.website/gopher" ) func hello(w gopher.ResponseWriter, r *gopher.Request) {