use NULL value in load_path_suffix to NOT load any files
[oweals/gnunet.git] / src / identity / test_plugin_rest_identity.sh
1 #!/usr/bin/bash
2
3 #First, start gnunet-arm and the rest-service.
4 #Exit 0 means success, exit 1 means failed test
5
6 identity_link="http://localhost:7776/identity"
7 wrong_link="http://localhost:7776/identityandmore"
8
9
10 curl_get () {
11     #$1 is link
12     #$2 is grep
13     cache="$(curl -v "$1" 2>&1 | grep "$2")"
14     #echo $cache
15     if [ "" == "$cache" ]
16     then
17         exit 1
18     fi
19 }
20
21 curl_post () {
22     #$1 is link
23     #$2 is data
24     #$3 is grep
25     cache="$(curl -v -X "POST" "$1" --data "$2" 2>&1 | grep "$3")"
26     #echo $cache
27     if [ "" == "$cache" ]
28     then
29         exit 1
30     fi
31 }
32
33 curl_delete () {
34     #$1 is link
35     #$2 is grep
36     cache="$(curl -v -X "DELETE" "$1" 2>&1 | grep "$2")"
37     #echo $cache
38     if [ "" == "$cache" ]
39     then
40         exit 1
41     fi
42 }
43
44 curl_put () {
45     #$1 is link
46     #$2 is data
47     #$3 is grep
48     cache="$(curl -v -X "PUT" "$1" --data "$2" 2>&1 | grep "$3")"
49     #echo $cache
50     if [ "" == "$cache" ]
51     then
52         exit 1
53     fi
54 }
55
56 #Test GET
57 test="$(gnunet-identity -d)"
58 #if no identity exists
59 if [ "" == "$test" ]
60 then
61     curl_get "$identity_link/all" "error"
62     gnunet-identity -C "test_plugin_rest_identity"
63     name="$(gnunet-identity -d | awk 'NR==1{print $1}')"
64     public="$(gnunet-identity -d | awk 'NR==1{print $3}')"
65     
66     curl_get "${identity_link}/name/$name" "$public"
67     curl_get "${identity_link}/name/$public" "error"
68     curl_get "${identity_link}/name/" "error"
69     
70     curl_get "${identity_link}/pubkey/$public" "$name"
71     curl_get "${identity_link}/pubkey/$name" "error"
72     curl_get "${identity_link}/pubkey/" "error"
73     
74     gnunet-identity -D "test_plugin_rest_identity"
75 else
76     name="$(gnunet-identity -d | awk 'NR==1{print $1}')"
77     public="$(gnunet-identity -d | awk 'NR==1{print $3}')"
78     
79     curl_get "${identity_link}/name/$name" "$public"
80     curl_get "${identity_link}/name/$public" "error"
81     curl_get "${identity_link}/name/" "error"
82     
83     curl_get "${identity_link}/pubkey/$public" "$name"
84     curl_get "${identity_link}/pubkey/$name" "error"
85     curl_get "${identity_link}/pubkey/" "error"
86 fi
87
88 #Test POST
89 gnunet-identity -D "test_plugin_rest_identity" > /dev/null 2>&1
90 gnunet-identity -D "test_plugin_rest_identity1" > /dev/null 2>&1
91
92 curl_post "${identity_link}" '{"name":"test_plugin_rest_identity"}' "HTTP/1.1 201 Created"
93 curl_post "${identity_link}" '{"name":"test_plugin_rest_identity"}' "HTTP/1.1 409"
94 curl_post "${identity_link}" '{"name":"Test_plugin_rest_identity"}' "HTTP/1.1 409"
95 curl_post "${identity_link}" '{}' "error"
96 curl_post "${identity_link}" '' "error"
97 curl_post "${identity_link}" '{"name":""}' "error"
98 curl_post "${identity_link}" '{"name":123}' "error"
99 curl_post "${identity_link}" '{"name":[]}' "error"
100 curl_post "${identity_link}" '{"name1":"test_plugin_rest_identity"}' "error"
101 curl_post "${identity_link}" '{"other":""}' "error"
102 curl_post "${identity_link}" '{"name":"test_plugin_rest_identity1", "other":"test_plugin_rest_identity2"}' "error"
103
104 #Test PUT
105 name="$(gnunet-identity -d | grep "test_plugin_rest_identity" | awk 'NR==1{print $1}')"
106 public="$(gnunet-identity -d | grep "test_plugin_rest_identity" | awk 'NR==1{print $3}')"
107
108 curl_put "${identity_link}/pubkey/$public" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 204"
109 curl_put "${identity_link}/pubkey/$public" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 409"
110 curl_put "${identity_link}/pubkey/${public}xx" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 404"
111 curl_put "${identity_link}/pubkey/" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 404"
112 curl_put "${identity_link}/pubke" '{"newname":"test_plugin_rest_identity1"}' "error"
113 curl_put "${identity_link}" '{"newname":"test_plugin_rest_identity1","other":"sdfdsf"}' "error"
114 curl_put "${identity_link}/pubkey/$name" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 404"
115 curl_put "${identity_link}/name/test_plugin_rest_identity1" '{"newname":"test_plugin_rest_identity"}' "HTTP/1.1 204"
116 curl_put "${identity_link}/pubkey/$public" '{"newnam":"test_plugin_rest_identity"}' "error"
117 curl_put "${identity_link}/name/test_plugin_rest_identity" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 204"
118 curl_put "${identity_link}/name/test_plugin_rest_identity1" '{"newname":"TEST_plugin_rest_identity1"}' "HTTP/1.1 409"
119 curl_put "${identity_link}/name/test_plugin_rest_identity1" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 409"
120 curl_put "${identity_link}/name/test_plugin_rest_identityxxx" '{"newname":"test_plugin_rest_identity"}' "HTTP/1.1 404"
121 curl_put "${identity_link}/name/test_plugin_rest_identity1" '{"newname":"test_plugin_rest_identity"}' "HTTP/1.1 204"
122 curl_put "${identity_link}/name/test_plugin_rest_identity" '{"newnam":"test_plugin_rest_identityfail"}' "error"
123
124 #Test subsystem
125 curl_put "${identity_link}/subsystem/test_plugin_rest_identity" '{"subsystem":"namestore"}' "HTTP/1.1 204"
126 curl_put "${identity_link}/subsystem/test_plugin_rest_identity" '{"subsystem":"namestore"}' "HTTP/1.1 204"
127 curl_get "${identity_link}/subsystem/namestore" "test_plugin_rest_identity"
128 public="$(gnunet-identity -d | grep "test_plugin_rest_identity" | awk 'NR==1{print $3}')"
129 curl_put "${identity_link}/subsystem/$public" '{"subsystem":"namestore"}' "HTTP/1.1 404"
130 curl_post "${identity_link}" '{"name":"test_plugin_rest_identity1"}' "HTTP/1.1 201 Created"
131 curl_get "${identity_link}/subsystem/test_plugin_rest_identity_no_subsystem" "error"
132 curl_put "${identity_link}/subsystem/test_plugin_rest_identity1" '{"subsystem":"test_plugin_rest_identity_no_subsystem"}' "HTTP/1.1 204"
133 curl_get "${identity_link}/subsystem/test_plugin_rest_identity_no_subsystem" "test_plugin_rest_identity1"
134
135 curl_put "${identity_link}/subsystem/test_plugin_rest_identity1" '{"subsyste":"test_plugin_rest_identity_no_subsystem"}' "error"
136 curl_put "${identity_link}/subsystem/test_plugin_rest_identity1" '{"subsystem":"test_plugin_rest_identity_no_subsystem"}' "HTTP/1.1 204"
137
138 #Test DELETE
139 curl_delete "${identity_link}/name/test_plugin_rest_identity" "HTTP/1.1 204"
140 curl_get "${identity_link}/name/test_plugin_rest_identity" "error"
141 curl_delete "${identity_link}/name/TEST_plugin_rest_identity1" "HTTP/1.1 204"
142 curl_delete "${identity_link}/name/test_plugin_rest_identity1" "HTTP/1.1 404"
143 curl_get "${identity_link}/name/test_plugin_rest_identity1" "error"
144 curl_delete "${identity_link}/name/test_plugin_rest_identity_not_found" "HTTP/1.1 404"
145 curl_post "${identity_link}" '{"name":"test_plugin_rest_identity1"}' "HTTP/1.1 201 Created"
146 public="$(gnunet-identity -d | grep "test_plugin_rest_identity1" | awk 'NR==1{print $3}')"
147 curl_delete "${identity_link}/pubkey/$public" "HTTP/1.1 204"
148 curl_delete "${identity_link}/pubke/$public" "error"
149 curl_delete "${identity_link}/pubkey/${public}other=232" "HTTP/1.1 404"
150
151 #Test wrong_link
152 curl_get "$wrong_link" "HTTP/1.1 404"
153 curl_post "$wrong_link" '{"name":"test_plugin_rest_identity"}' "HTTP/1.1 404"
154 curl_put "$wrong_link/name/test_plugin_rest_identity" '{"newname":"test_plugin_rest_identity1"}' "HTTP/1.1 404"
155 curl_delete "$wrong_link/name/test_plugin_rest_identity1" "HTTP/1.1 404"
156
157 exit 0;