fix
[oweals/gnunet.git] / src / rest-plugins / test_plugin_rest_namestore.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 namestore_link="http://localhost:7776/namestore"
7 wrong_link="http://localhost:7776/namestoreandmore"
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 subsystem default identity
57
58 #Test GET
59 gnunet-identity -D "test_plugin_rest_namestore"
60 gnunet-identity -C "test_plugin_rest_namestore"
61 test="$(gnunet-namestore -D -z "test_plugin_rest_namestore")"
62 name="test_plugin_rest_namestore"
63 public="$(gnunet-identity -d | grep "test_plugin_rest_namestore" | awk 'NR==1{print $3}')"
64 if [ "" == "$test" ]
65 then
66     #if no entries for test_plugin_rest_namestore
67     curl_get "${namestore_link}/$name" "error"
68     curl_get "${namestore_link}/" "error"
69     curl_get "${namestore_link}/$public" "error"
70 else
71     #if entries exists (that should not be possible)
72     curl_get "${namestore_link}" "HTTP/1.1 200 OK"
73     curl_get "${namestore_link}/$name" "HTTP/1.1 200 OK"
74     curl_get "${namestore_link}/" "error"
75     curl_get "${namestore_link}/$public" "error"
76 fi
77 gnunet-namestore -z $name -p -a -n "test_entry" -e "1d" -V "HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG" -t "PKEY"
78 curl_get "${namestore_link}" "HTTP/1.1 200 OK"
79 curl_get "${namestore_link}/$name" "HTTP/1.1 200 OK"
80 curl_get "${namestore_link}/" "error"
81 curl_get "${namestore_link}/$public" "error"
82 gnunet-namestore -z $name -d -n "test_entry"
83
84 #Test POST with NAME
85 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
86 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
87 #value
88 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRGxxx", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "error"
89 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
90 curl_post "${namestore_link}/$name" '{"value":"", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "error"
91 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
92 curl_post "${namestore_link}/$name" '{"value_missing":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRGxxx", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "error"
93 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
94 #time
95 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"0d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204"
96 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
97 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"10000d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204"
98 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
99 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"now","flag":0,"record_name":"test_entry"}' "error"
100 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
101 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"","flag":0,"record_name":"test_entry"}' "error"
102 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
103 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time_missing":"1d","flag":0,"record_name":"test_entry"}' "error"
104 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
105 #flag
106 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
107 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
108 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":2,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
109 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
110 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":8,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
111 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
112 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":16,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
113 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
114 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":-1,"record_name":"test_entry"}' "error"
115 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
116 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":"Test","record_name":"test_entry"}' "error"
117 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
118 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":,"record_name":"test_entry"}' "error"
119 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
120 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag_missing":0,"record_name":"test_entry"}' "error"
121 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
122 #record_name
123 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
124 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "HTTP/1.1 204 No Content"
125 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
126 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":""}' "error"
127 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
128 curl_post "${namestore_link}/$name" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name_missing":"test_entry"}' "error"
129 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
130
131 #wrong zone
132 curl_post "${namestore_link}/$public" '{"value":"HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG", "record_type":"PKEY", "expiration_time":"1d","flag":0,"record_name":"test_entry"}' "error"
133 gnunet-namestore -z $name -d -n "test_entry" > /dev/null 2>&1
134
135 #Test DELETE
136 gnunet-namestore -z $name -p -a -n "test_entry" -e "1d" -V "HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG" -t "PKEY"
137 curl_delete "${namestore_link}/$name?record_name=test_entry" "HTTP/1.1 204" 
138 curl_delete "${namestore_link}/$name?record_name=test_entry" "error" 
139 gnunet-namestore -z $name -p -a -n "test_entry" -e "1d" -V "HVX38H2CB7WJM0WCPWT9CFX6GASMYJVR65RN75SJSSKAYVYXHMRG" -t "PKEY"
140 curl_delete "${namestore_link}/$public?record_name=test_entry" "error" 
141
142
143 #Test default identity
144 #not possible without defining 
145
146 exit 0;
147