diff options
author | tjpcc <tjp@ctrl-c.club> | 2023-01-30 11:34:13 -0700 |
---|---|---|
committer | tjpcc <tjp@ctrl-c.club> | 2023-01-30 11:36:48 -0700 |
commit | 4f6f3dcd4b8c71f5caa52864092dbde22665a645 (patch) | |
tree | 19ae4d9203774173b83c25a91d7787d88bd3aa6a /finger/request_test.go | |
parent | 9cbc5cdd467ccd8e68f0f5d1d971ab76c2946624 (diff) |
finger protocol
Diffstat (limited to 'finger/request_test.go')
-rw-r--r-- | finger/request_test.go | 68 |
1 files changed, 68 insertions, 0 deletions
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) + } + }) + } +} |