-Merge branch 'master' of ssh://gnunet.org/gnunet into gsoc2018/rest_api
[oweals/gnunet.git] / src / identity / test_plugin_identity_rest.sh
1 #!/usr/bin/bash
2
3 #First, start gnunet-arm and the rest-service. Make sure, no identity exists
4
5 link_to_api="http://localhost:7776/identity"
6 wrong_link="http://localhost:7776/idenmmmy"
7
8 #Test GET (multiple identities) for error when no identity exists
9
10 echo "No test for subsystem available"
11 echo "The next test case can be ignored if you have already added identities"
12 cache="$(curl --silent "$link_to_api" | grep "error")"
13 if [ "" == "$cache" ]
14 then
15     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for GET request when missing identity\n"
16 else
17     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for GET request when missing identity\n"
18 fi
19
20 #Test POST success code, error response code and error json
21 echo "The next test case can be ignored if you have already added an identity with the name Test"
22 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"name\":\"Test\"}" 2>&1 | grep "HTTP/1.1 201")"
23 if [ "" == "$cache" ]
24 then
25     echo -n -e "[\033[0;31m FAILURE\033[0m ] Error for good POST request\n"
26 else
27     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Success for good POST request\n"
28 fi
29
30 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"name\":\"Test\"}" 2>&1 | grep "HTTP/1.1 409")"
31 if [ "" == "$cache" ]
32 then
33     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for duplicate name POST request\n"
34 else
35     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for duplicate name POST request\n"
36 fi
37
38 cache="$(curl -v -X "POST" "$link_to_api" 2>&1 | grep "error")"
39 if [ "" == "$cache" ]
40 then
41     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for no data POST request\n"
42 else
43     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for no data POST request\n"
44 fi
45
46 cache="$(curl -v -X "POST" "$link_to_api" --data "wrong" 2>&1 | grep "error")"
47 if [ "" == "$cache" ]
48 then
49     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong data POST request\n"
50 else
51     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong data POST request\n"
52 fi
53
54 cache="$(curl -v -X "POST" "$link_to_api" --data "[{}]" 2>&1 | grep "error")"
55 if [ "" == "$cache" ]
56 then
57     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for json array input POST request\n"
58 else
59     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for json array input POST request\n"
60 fi
61
62 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"name\":\"Test\",\"other\":\"Test\"}" 2>&1 | grep "error")"
63 if [ "" == "$cache" ]
64 then
65     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for multi element json POST request\n"
66 else
67     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for multi element json POST request\n"
68 fi
69
70 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"nam\":\"Test\"}" 2>&1 | grep "error")"
71 if [ "" == "$cache" ]
72 then
73     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong json POST request\n"
74 else
75     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong json POST request\n"
76 fi
77
78 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"name\":123}" 2>&1 | grep "error")"
79 if [ "" == "$cache" ]
80 then
81     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong json type POST request\n"
82 else
83     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong json type POST request\n"
84 fi
85
86 cache="$(curl -v -X "POST" "$link_to_api" --data "{\"name\":""}" 2>&1 | grep "error")"
87 if [ "" == "$cache" ]
88 then
89     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for no name POST request\n"
90 else
91     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for no name POST request\n"
92 fi
93
94
95 #Test GET (multiple identities) for success and error json
96 cache="$(curl --silent "$link_to_api" | grep "error")"
97 if [ "" == "$cache" ]
98 then
99     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Success for good GET request (multiple identities)\n"
100 else
101     echo -n -e "[\033[0;31m FAILURE\033[0m ] Error for good GET request (multiple identities)\n"
102 fi
103
104
105 id="$(gnunet-identity -d | grep "Test - " | sed  "s/Test - //g")"
106 #Test GET (one identity) for success and error json
107 cache="$(curl --silent "${link_to_api}/$id" | grep "error")"
108 if [ "" == "$cache" ]
109 then
110     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Success for good GET request (one identity)\n"
111 else
112     echo -n -e "[\033[0;31m FAILURE\033[0m ] Error for good GET request (one identity)\n"
113 fi
114
115
116 #Test DELETE success code, error response code and error json
117 echo "Next tests for DELETE will probably fail when POST fails"
118 cache="$(curl -v -X "DELETE" "${link_to_api}/$id" 2>&1 | grep "HTTP/1.1 404")"
119 if [ "" == "$cache" ]
120 then
121     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Success for good DELETE request\n"
122 else
123     echo -n -e "[\033[0;31m FAILURE\033[0m ] Error for good DELETE request\n"
124 fi
125
126 curl --silent -X "POST" "$link_to_api" --data "{\"name\":\"Test\"}"
127 id="$(gnunet-identity -d | grep "Test - " | sed  "s/Test - //g")"
128
129 cache="$(curl -v -X "DELETE" "${link_to_api}/df1" 2>&1 | grep "HTTP/1.1 404")"
130 if [ "" == "$cache" ]
131 then
132     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong DELETE request\n"
133 else
134     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong DELETE request\n"
135 fi
136
137 #Test PUT success code, error response codes and error json
138 cache="$(curl -v -X "PUT" "${link_to_api}/$id" --data "{\"newname\":\"NewTest\"}" 2>&1 | grep "HTTP/1.1 204")"
139 if [ "" == "$cache" ]
140 then
141     echo -n -e "[\033[0;31m FAILURE\033[0m ] Error for good PUT request\n"
142 else
143     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Success for good PUT request\n"
144 fi
145
146 cache="$(curl -v -X "PUT" "${link_to_api}/${id}1" --data "{\"newname\":\"NewNewTest\"}" 2>&1 | grep "HTTP/1.1 404")"
147 if [ "" == "$cache" ]
148 then
149     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong identity PUT request\n"
150 else
151     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong identity PUT request\n"
152 fi
153
154 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "{\"newname\":\"NewTest\"}" 2>&1 | grep "error")"
155 if [ "" == "$cache" ]
156 then
157     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for duplicate name PUT request\n"
158 else
159     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for duplicate name PUT request\n"
160 fi
161
162 cache="$(curl -v -X "PUT" "$link_to_api/$id" 2>&1 | grep "error")"
163 if [ "" == "$cache" ]
164 then
165     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for no data PUT request\n"
166 else
167     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for no data PUT request\n"
168 fi
169
170 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "wrong" 2>&1 | grep "error")"
171 if [ "" == "$cache" ]
172 then
173     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong data PUT request\n"
174 else
175     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong data PUT request\n"
176 fi
177
178 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "[{}]" 2>&1 | grep "error")"
179 if [ "" == "$cache" ]
180 then
181     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for json array input PUT request\n"
182 else
183     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for json array input PUT request\n"
184 fi
185
186 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "{\"newname\":\"Test\",\"other\":\"Test\"}" 2>&1 | grep "error")"
187 if [ "" == "$cache" ]
188 then
189     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for multi element json PUT request\n"
190 else
191     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for multi element json PUT request\n"
192 fi
193
194 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "{\"newnam\":\"Test\"}" 2>&1 | grep "error")"
195 if [ "" == "$cache" ]
196 then
197     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong json PUT request\n"
198 else
199     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong json PUT request\n"
200 fi
201
202 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "{\"newname\":123}" 2>&1 | grep "error")"
203 if [ "" == "$cache" ]
204 then
205     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong json type PUT request\n"
206 else
207     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong json type PUT request\n"
208 fi
209
210 cache="$(curl -v -X "PUT" "$link_to_api/$id" --data "{\"newname\":""}" 2>&1 | grep "error")"
211 if [ "" == "$cache" ]
212 then
213     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for no name PUT request\n"
214 else
215     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for no name PUT request\n"
216 fi
217 #TODO Missing subsystem test
218
219 #Missing OPTIONS success - nothing can really go wrong here
220
221 #Test wrong url
222 cache="$(curl -v "$wrong_link" 2>&1 | grep "HTTP/1.1 404")"
223 if [ "" == "$cache" ]
224 then
225     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong url GET request \n"
226 else
227     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong url GET request \n"
228 fi
229
230 cache="$(curl -X "PUT" -v "$wrong_link/$id" --data "{\"newname\":\"Testing\"}" 2>&1 | grep "HTTP/1.1 404")"
231 if [ "" == "$cache" ]
232 then
233     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong url GET request \n"
234 else
235     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong url GET request \n"
236 fi
237
238 cache="$(curl -X "POST" -v "$wrong_link/$id" --data "{\"name\":\"Test\"}" 2>&1 | grep "HTTP/1.1 404")"
239 if [ "" == "$cache" ]
240 then
241     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong url POST request \n"
242 else
243     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong url POST request \n"
244 fi
245
246 cache="$(curl -X "DELETE" -v "${wrong_link}/$id" 2>&1 | grep "HTTP/1.1 404")"
247 if [ "" == "$cache" ]
248 then
249     echo -n -e "[\033[0;31m FAILURE\033[0m ] Success for wrong url DELETE request \n"
250 else
251     echo -n -e "[\033[0;32m SUCCESS\033[0m ] Error for wrong url DELETE request \n"
252 fi