From 4f6f3dcd4b8c71f5caa52864092dbde22665a645 Mon Sep 17 00:00:00 2001 From: tjpcc Date: Mon, 30 Jan 2023 11:34:13 -0700 Subject: finger protocol --- finger/request_test.go | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 finger/request_test.go (limited to 'finger/request_test.go') diff --git a/finger/request_test.go b/finger/request_test.go new file mode 100644 index 0000000..4b7fcbd --- /dev/null +++ b/finger/request_test.go @@ -0,0 +1,68 @@ +package finger_test + +import ( + "bytes" + "io" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "tildegit.org/tjp/gus/finger" +) + +func TestParseRequest(t *testing.T) { + tests := []struct { + source string + host string + path string + err error + }{ + { + source: "/W tjp\r\n", + host: "", + path: "/tjp", + }, + { + source: "tjp@host.com\r\n", + host: "host.com", + path: "/tjp", + }, + { + source: "tjp@forwarder.com@host.com\r\n", + err: finger.ForwardingDenied, + }, + { + source: "tjp\r\n", + host: "", + path: "/tjp", + }, + { + source: "\r\n", + host: "", + path: "/", + }, + { + source: "/W\r\n", + host: "", + path: "/", + }, + { + source: "tjp", + err: io.EOF, + }, + } + + for _, test := range tests { + t.Run(test.source, func(t *testing.T) { + request, err := finger.ParseRequest(bytes.NewBufferString(test.source)) + require.Equal(t, test.err, err) + + if err == nil { + assert.Equal(t, "finger", request.Scheme) + assert.Equal(t, test.host, request.Host) + assert.Equal(t, test.path, request.Path) + } + }) + } +} -- cgit v1.2.3