summary refs log tree commit diff stats
path: root/post_test.go
diff options
context:
space:
mode:
authorBen Morrison <ben@gbmor.dev>2019-05-22 23:35:37 -0400
committerBen Morrison <ben@gbmor.dev>2019-05-22 23:51:12 -0400
commita6c816217f09e4d462949c2631a88439886ed655 (patch)
tree4469487aa48ebc4315c080ed7b14763da88e1dfd /post_test.go
parentbce52652ceb54b325ac72cc9a173655ec0a80756 (diff)
downloadgetwtxt-a6c816217f09e4d462949c2631a88439886ed655.tar.gz
moved test init funcs to init_test, testing POST
Diffstat (limited to 'post_test.go')
-rw-r--r--post_test.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/post_test.go b/post_test.go
new file mode 100644
index 0000000..9d04c9e
--- /dev/null
+++ b/post_test.go
@@ -0,0 +1,75 @@
+package main
+
+import (
+	"net/http"
+	"net/http/httptest"
+	"net/url"
+	"strings"
+	"testing"
+)
+
+var apiPostUserCases = []struct {
+	name    string
+	nick    string
+	uri     string
+	wantErr bool
+}{
+	{
+		name:    "Known Good User",
+		nick:    "soltempore",
+		uri:     "https://enotty.dk/soltempore.txt",
+		wantErr: false,
+	},
+	{
+		name:    "Missing URI",
+		nick:    "missinguri",
+		uri:     "",
+		wantErr: true,
+	},
+	{
+		name:    "Missing Nickname",
+		nick:    "",
+		uri:     "https://example.com/twtxt.txt",
+		wantErr: true,
+	},
+	{
+		name:    "Missing URI and Nickname",
+		nick:    "",
+		uri:     "",
+		wantErr: true,
+	},
+}
+
+func Test_apiPostUser(t *testing.T) {
+	initTestConf()
+
+	for _, tt := range apiPostUserCases {
+		t.Run(tt.name, func(t *testing.T) {
+			params := url.Values{}
+			params.Set("url", tt.uri)
+			params.Set("nickname", tt.nick)
+
+			req, err := http.NewRequest("POST", "http://localhost"+testport+"/api/plain/users", strings.NewReader(params.Encode()))
+			if err != nil {
+				t.Errorf("%v\n", err)
+			}
+
+			req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
+
+			rr := httptest.NewRecorder()
+			handler := http.HandlerFunc(apiEndpointPOSTHandler)
+
+			handler.ServeHTTP(rr, req)
+
+			if !tt.wantErr {
+				if rr.Code != http.StatusOK {
+					t.Errorf("Received unexpected non-200 response: %v\n", rr.Code)
+				}
+			} else {
+				if rr.Code != http.StatusBadRequest {
+					t.Errorf("Expected 400 Bad Request, but received: %v\n", rr.Code)
+				}
+			}
+		})
+	}
+}
01:30:55 +0200 committer Anselm R. Garbe <garbeam@wmii.de> 2006-07-13 01:30:55 +0200 removed unnecessary crap' href='/acidbong/suckless/dwm/commit/wm.h?h=4.2&id=8b59083eb13c0712e04d9a5b6d7bf4af5913c442'>8b59083 ^
b9da4b0 ^
3aad922 ^
c47da14 ^




b9da4b0 ^
439e15d ^
3399650 ^
1076f2b

439e15d ^
1076f2b

8b59083 ^







650a1fb ^
8b59083 ^








1076f2b
da2bbd3 ^

3399650 ^
a05beb6 ^
896f08d ^
a05beb6 ^
2e836ec ^

a05beb6 ^
66da153 ^
1076f2b
1076f2b
1076f2b
efa7e51 ^
1076f2b

3aad922 ^



66da153 ^
3aad922 ^

366d81e ^


c47da14 ^

366d81e ^

1076f2b
9cd686c ^
3399650 ^
1076f2b
da2bbd3 ^
66da153 ^

29355bd ^
1076f2b
9cd686c ^

39677ec ^
650a1fb ^
efa7e51 ^
39677ec ^
439e15d ^
0053620 ^
3399650 ^



7fe717c ^
a05beb6 ^
2a0fc84 ^
8b59083 ^
dfd84f9 ^
2e836ec ^
29355bd ^

3399650 ^
d7e1708 ^
29355bd ^

e7fa504 ^
9e8b325 ^




d7e1708 ^
29355bd ^

16c67f3 ^
b9da4b0 ^
9e8b325 ^



c47da14 ^
9e8b325 ^
29355bd ^




8b59083 ^
d7e1708 ^
8b59083 ^
c47da14 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148