paul@585 | 1 | #!/bin/sh |
paul@585 | 2 | |
paul@1024 | 3 | . "`dirname \"$0\"`/common.sh" |
paul@585 | 4 | |
paul@585 | 5 | USER="mailto:vincent.vole@example.com" |
paul@585 | 6 | SENDER="mailto:paul.boddie@example.com" |
paul@585 | 7 | |
paul@640 | 8 | mkdir -p "$PREFS/$USER" |
paul@640 | 9 | echo 'Europe/Oslo' > "$PREFS/$USER/TZID" |
paul@640 | 10 | echo 'share' > "$PREFS/$USER/freebusy_sharing" |
paul@640 | 11 | |
paul@1389 | 12 | # Present a free/busy request for all periods to the recipient. |
paul@1389 | 13 | |
paul@602 | 14 | "$PERSON_SCRIPT" $ARGS < "$TEMPLATES/fb-request-person-all.txt" 2>> $ERROR \ |
paul@585 | 15 | | "$SHOWMAIL" \ |
paul@585 | 16 | > out0.tmp |
paul@585 | 17 | |
paul@1389 | 18 | # Expect a reply with no periods. |
paul@1389 | 19 | |
paul@585 | 20 | grep -q 'METHOD:REPLY' out0.tmp \ |
paul@585 | 21 | && ! grep -q '^FREEBUSY' out0.tmp \ |
paul@585 | 22 | && echo "Success" \ |
paul@585 | 23 | || echo "Failed" |
paul@585 | 24 | |
paul@1389 | 25 | # Present a free/busy request for periods of interest to the recipient. |
paul@1389 | 26 | |
paul@602 | 27 | "$PERSON_SCRIPT" $ARGS < "$TEMPLATES/fb-request-person.txt" 2>> $ERROR \ |
paul@585 | 28 | | "$SHOWMAIL" \ |
paul@585 | 29 | > out1.tmp |
paul@585 | 30 | |
paul@1389 | 31 | # Expect a reply with no periods. |
paul@1389 | 32 | |
paul@585 | 33 | grep -q 'METHOD:REPLY' out1.tmp \ |
paul@585 | 34 | && ! grep -q '^FREEBUSY' out1.tmp \ |
paul@585 | 35 | && echo "Success" \ |
paul@585 | 36 | || echo "Failed" |
paul@585 | 37 | |
paul@1389 | 38 | # Make a new event. |
paul@1389 | 39 | |
paul@1389 | 40 | cat > event_cmd.tmp <<EOF |
paul@1389 | 41 | new |
paul@1389 | 42 | period 0 edit 20141126 16 00 00 Europe/Oslo 20141126 17 00 00 Europe/Oslo |
paul@1389 | 43 | attendance accept |
paul@1389 | 44 | attendee mailto:vincent.vole@example.com |
paul@1389 | 45 | summary Meeting at 4pm |
paul@1389 | 46 | finish |
paul@1389 | 47 | update event.tmp |
paul@1389 | 48 | publish event_self.tmp |
paul@1389 | 49 | UID event_uid.tmp |
paul@1389 | 50 | EOF |
paul@1389 | 51 | |
paul@1389 | 52 | "$TEXT_CLIENT" $ARGS -u "$SENDER" --echo \ |
paul@1389 | 53 | < event_cmd.tmp \ |
paul@1389 | 54 | > event_log.tmp |
paul@1389 | 55 | |
paul@1389 | 56 | # Obtain the event UID. |
paul@1389 | 57 | |
paul@1389 | 58 | read UID1 < event_uid.tmp |
paul@1389 | 59 | |
paul@1389 | 60 | # Register the event at the sender. |
paul@1389 | 61 | |
paul@1389 | 62 | "$OUTGOING_SCRIPT" < event.tmp $ARGS 2>> $ERROR |
paul@1389 | 63 | |
paul@1389 | 64 | # Present the event to the recipient. |
paul@1389 | 65 | |
paul@1389 | 66 | "$PERSON_SCRIPT" $ARGS < event.tmp 2>> $ERROR \ |
paul@585 | 67 | | "$SHOWMAIL" \ |
paul@585 | 68 | > out2.tmp |
paul@585 | 69 | |
paul@1389 | 70 | # Expect no reply because the recipient must handle the request. |
paul@1389 | 71 | |
paul@585 | 72 | ! grep -q 'METHOD:REPLY' out2.tmp \ |
paul@585 | 73 | && echo "Success" \ |
paul@585 | 74 | || echo "Failed" |
paul@585 | 75 | |
paul@1389 | 76 | # Expect no free/busy periods for the recipient. |
paul@1389 | 77 | |
paul@1088 | 78 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 79 | > out2f.tmp |
paul@1088 | 80 | |
paul@1389 | 81 | ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" out2f.tmp \ |
paul@585 | 82 | && echo "Success" \ |
paul@585 | 83 | || echo "Failed" |
paul@585 | 84 | |
paul@1389 | 85 | # Expect free/busy periods for the sender at the recipient. |
paul@1389 | 86 | |
paul@1088 | 87 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_other" "$SENDER" \ |
paul@1088 | 88 | > out2fo.tmp |
paul@1088 | 89 | |
paul@1389 | 90 | grep -q "^20141126T150000Z${TAB}20141126T160000Z" out2fo.tmp \ |
paul@585 | 91 | && echo "Success" \ |
paul@585 | 92 | || echo "Failed" |
paul@585 | 93 | |
paul@1389 | 94 | # Accept the invitation. |
paul@1389 | 95 | |
paul@1389 | 96 | cat > event_accept_cmd.tmp <<EOF |
paul@1389 | 97 | 0 |
paul@1389 | 98 | attendance accept |
paul@1389 | 99 | finish |
paul@1389 | 100 | update event_accept.tmp |
paul@1389 | 101 | EOF |
paul@1389 | 102 | |
paul@1389 | 103 | "$TEXT_CLIENT" $ARGS -u "$USER" -f event.tmp --echo \ |
paul@1389 | 104 | < event_accept_cmd.tmp \ |
paul@1389 | 105 | > event_accept_log.tmp |
paul@1389 | 106 | |
paul@1389 | 107 | # Register the acceptance at the recipient. |
paul@1389 | 108 | |
paul@1389 | 109 | "$OUTGOING_SCRIPT" < event_accept.tmp $ARGS 2>> $ERROR |
paul@1389 | 110 | |
paul@1389 | 111 | # Expect free/busy periods at the recipient. |
paul@585 | 112 | |
paul@1088 | 113 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 114 | > out3f.tmp |
paul@1088 | 115 | |
paul@1389 | 116 | grep -q "^20141126T150000Z${TAB}20141126T160000Z" out3f.tmp \ |
paul@585 | 117 | && echo "Success" \ |
paul@585 | 118 | || echo "Failed" |
paul@587 | 119 | |
paul@1389 | 120 | # Make another event at the same time. |
paul@1389 | 121 | |
paul@1389 | 122 | sed \ |
paul@1389 | 123 | 's/summary Meeting at 4pm/summary A conflicting meeting at 4pm/;'\ |
paul@1389 | 124 | 's/update event.tmp/update event_conflicting.tmp/;'\ |
paul@1389 | 125 | 's/UID event_uid.tmp/UID event_conflicting_uid.tmp/' event_cmd.tmp \ |
paul@1389 | 126 | > event_conflicting_cmd.tmp |
paul@1389 | 127 | |
paul@1389 | 128 | "$TEXT_CLIENT" $ARGS -u "$SENDER" --echo \ |
paul@1389 | 129 | < event_conflicting_cmd.tmp \ |
paul@1389 | 130 | > event_conflicting_log.tmp |
paul@1389 | 131 | |
paul@1389 | 132 | # Obtain the event UID. |
paul@1389 | 133 | |
paul@1389 | 134 | read UID2 < event_conflicting_uid.tmp |
paul@1389 | 135 | |
paul@1389 | 136 | # Present the event to the recipient. |
paul@1389 | 137 | |
paul@1389 | 138 | "$PERSON_SCRIPT" $ARGS < event_conflicting.tmp 2>> $ERROR \ |
paul@587 | 139 | | "$SHOWMAIL" \ |
paul@587 | 140 | > out4.tmp |
paul@587 | 141 | |
paul@1389 | 142 | # Expect no reply because the recipient must handle the request. |
paul@1389 | 143 | |
paul@587 | 144 | ! grep -q 'METHOD:REPLY' out4.tmp \ |
paul@587 | 145 | && echo "Success" \ |
paul@587 | 146 | || echo "Failed" |
paul@587 | 147 | |
paul@1389 | 148 | # Expect no free/busy periods for the recipient for this event. |
paul@1389 | 149 | |
paul@1088 | 150 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 151 | > out4f.tmp |
paul@1088 | 152 | |
paul@1389 | 153 | ! grep -q "$UID2" out4f.tmp \ |
paul@587 | 154 | && echo "Success" \ |
paul@587 | 155 | || echo "Failed" |
paul@587 | 156 | |
paul@1389 | 157 | # Expect free/busy periods for the sender at the recipient for this event. |
paul@1389 | 158 | |
paul@1088 | 159 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_other" "$SENDER" \ |
paul@1088 | 160 | > out4fo.tmp |
paul@1088 | 161 | |
paul@1389 | 162 | grep -q "$UID2" out4fo.tmp \ |
paul@587 | 163 | && echo "Success" \ |
paul@587 | 164 | || echo "Failed" |
paul@587 | 165 | |
paul@1389 | 166 | # Decline the invitation. |
paul@1389 | 167 | |
paul@1389 | 168 | cat > event_decline_cmd.tmp <<EOF |
paul@1389 | 169 | 0 |
paul@1389 | 170 | attendance decline |
paul@1389 | 171 | finish |
paul@1389 | 172 | update event_decline.tmp |
paul@1389 | 173 | EOF |
paul@1389 | 174 | |
paul@1389 | 175 | "$TEXT_CLIENT" $ARGS -u "$USER" -f event_conflicting.tmp --echo \ |
paul@1389 | 176 | < event_decline_cmd.tmp \ |
paul@1389 | 177 | > event_decline_log.tmp |
paul@1389 | 178 | |
paul@1389 | 179 | # Register the rejection at the recipient. |
paul@1389 | 180 | |
paul@1389 | 181 | "$OUTGOING_SCRIPT" < event_decline.tmp $ARGS 2>> $ERROR |
paul@1389 | 182 | |
paul@1389 | 183 | # Expect free/busy periods only for the original event, not the last one. |
paul@587 | 184 | |
paul@1088 | 185 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 186 | > out5f.tmp |
paul@1088 | 187 | |
paul@1389 | 188 | grep -q "$UID1" out5f.tmp \ |
paul@1389 | 189 | && ! grep -q "$UID2" out5f.tmp \ |
paul@587 | 190 | && echo "Success" \ |
paul@587 | 191 | || echo "Failed" |
paul@590 | 192 | |
paul@1389 | 193 | # Cancel the event for a recipient. |
paul@1389 | 194 | |
paul@1389 | 195 | cat > event_cancel_cmd.tmp <<EOF |
paul@1389 | 196 | 0 |
paul@1389 | 197 | attendee mailto:vincent.vole@example.com remove |
paul@1389 | 198 | finish |
paul@1389 | 199 | cancel event_cancel.tmp |
paul@1389 | 200 | EOF |
paul@1389 | 201 | |
paul@1389 | 202 | "$TEXT_CLIENT" $ARGS -u "$SENDER" --echo -f event.tmp \ |
paul@1389 | 203 | < event_cancel_cmd.tmp \ |
paul@1389 | 204 | > event_cancel_log.tmp |
paul@1389 | 205 | |
paul@1389 | 206 | # Present the cancellation to the recipient. |
paul@1389 | 207 | |
paul@1389 | 208 | "$PERSON_SCRIPT" $ARGS < event_cancel.tmp 2>> $ERROR \ |
paul@590 | 209 | | "$SHOWMAIL" \ |
paul@590 | 210 | > out6.tmp |
paul@590 | 211 | |
paul@1389 | 212 | # Expect no reply because the recipient must handle the request. |
paul@1389 | 213 | |
paul@590 | 214 | ! grep -q 'METHOD:REPLY' out6.tmp \ |
paul@590 | 215 | && echo "Success" \ |
paul@590 | 216 | || echo "Failed" |
paul@590 | 217 | |
paul@1389 | 218 | # Expect no free/busy periods for the recipient. |
paul@1389 | 219 | |
paul@1088 | 220 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 221 | > out6f.tmp |
paul@1088 | 222 | |
paul@1389 | 223 | ! grep -q "$UID1" out6f.tmp \ |
paul@590 | 224 | && echo "Success" \ |
paul@590 | 225 | || echo "Failed" |
paul@590 | 226 | |
paul@1389 | 227 | # Expect free/busy periods for the sender at the recipient for this event since |
paul@1389 | 228 | # only the recipient was uninvited. |
paul@1389 | 229 | |
paul@1088 | 230 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_other" "$SENDER" \ |
paul@1088 | 231 | > out6fo.tmp |
paul@1088 | 232 | |
paul@1389 | 233 | grep -q "$UID1" out6fo.tmp \ |
paul@590 | 234 | && echo "Success" \ |
paul@590 | 235 | || echo "Failed" |
paul@590 | 236 | |
paul@1389 | 237 | # Cancel the event for all recipients. |
paul@1389 | 238 | |
paul@1389 | 239 | cat > event_cancel_all_cmd.tmp <<EOF |
paul@1389 | 240 | 0 |
paul@1389 | 241 | finish |
paul@1389 | 242 | cancel event_cancel_all.tmp |
paul@1389 | 243 | EOF |
paul@1389 | 244 | |
paul@1389 | 245 | "$TEXT_CLIENT" $ARGS -u "$SENDER" --echo -f event.tmp \ |
paul@1389 | 246 | < event_cancel_all_cmd.tmp \ |
paul@1389 | 247 | > event_cancel_all_log.tmp |
paul@1389 | 248 | |
paul@1389 | 249 | # Present the cancellation to the recipient. |
paul@1389 | 250 | |
paul@1389 | 251 | "$PERSON_SCRIPT" $ARGS < "event_cancel_all.tmp" 2>> $ERROR \ |
paul@590 | 252 | | "$SHOWMAIL" \ |
paul@590 | 253 | > out7.tmp |
paul@590 | 254 | |
paul@1389 | 255 | # Expect no reply because the recipient must handle the request. |
paul@1389 | 256 | |
paul@590 | 257 | ! grep -q 'METHOD:REPLY' out7.tmp \ |
paul@590 | 258 | && echo "Success" \ |
paul@590 | 259 | || echo "Failed" |
paul@590 | 260 | |
paul@1389 | 261 | # Expect no free/busy periods for the recipient. |
paul@1389 | 262 | |
paul@1088 | 263 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 264 | > out7f.tmp |
paul@1088 | 265 | |
paul@1389 | 266 | ! grep -q "$UID1" "out7f.tmp" \ |
paul@590 | 267 | && echo "Success" \ |
paul@590 | 268 | || echo "Failed" |
paul@590 | 269 | |
paul@1389 | 270 | # Expect no free/busy periods for the sender at the recipient for this event. |
paul@1389 | 271 | |
paul@1088 | 272 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_other" "$SENDER" \ |
paul@1088 | 273 | > out7fo.tmp |
paul@1088 | 274 | |
paul@1389 | 275 | ! grep -q "$UID1" "out7fo.tmp" \ |
paul@590 | 276 | && echo "Success" \ |
paul@590 | 277 | || echo "Failed" |
paul@591 | 278 | |
paul@1389 | 279 | # Create a message from another sender that is largely a copy of the original |
paul@1389 | 280 | # event trying to organise the event using someone else's identity. |
paul@1389 | 281 | |
paul@1389 | 282 | sed \ |
paul@1389 | 283 | 's/summary Meeting at 4pm/summary A spoofed meeting at 4pm/;'\ |
paul@1389 | 284 | 's/update event.tmp/update event_spoofed.tmp/;'\ |
paul@1389 | 285 | 's/UID event_uid.tmp/UID event_spoofed_uid.tmp/' event_cmd.tmp \ |
paul@1389 | 286 | > event_spoofed_cmd.tmp |
paul@1389 | 287 | |
paul@1389 | 288 | "$TEXT_CLIENT" $ARGS -u "$SENDER" --echo \ |
paul@1389 | 289 | < event_spoofed_cmd.tmp \ |
paul@1389 | 290 | > event_spoofed_log.tmp |
paul@1389 | 291 | |
paul@1389 | 292 | # Obtain the event UID. |
paul@1389 | 293 | |
paul@1389 | 294 | read UID3 < event_spoofed_uid.tmp |
paul@1389 | 295 | |
paul@1389 | 296 | sed 's/From: paul.boddie/From: harvey.horse/' event_spoofed.tmp \ |
paul@1389 | 297 | > event_spoofed_ready.tmp |
paul@1389 | 298 | |
paul@1389 | 299 | # Present the event to the recipient. |
paul@1389 | 300 | |
paul@1389 | 301 | "$PERSON_SCRIPT" $ARGS < "event_spoofed_ready.tmp" 2>> $ERROR \ |
paul@591 | 302 | | "$SHOWMAIL" \ |
paul@591 | 303 | > out8.tmp |
paul@591 | 304 | |
paul@1389 | 305 | # Expect no reply because the recipient must handle the request. |
paul@1389 | 306 | |
paul@591 | 307 | ! grep -q 'METHOD:REPLY' out8.tmp \ |
paul@591 | 308 | && echo "Success" \ |
paul@591 | 309 | || echo "Failed" |
paul@591 | 310 | |
paul@1389 | 311 | # Expect no free/busy periods for the recipient. |
paul@1389 | 312 | |
paul@1088 | 313 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ |
paul@1088 | 314 | > out8f.tmp |
paul@1088 | 315 | |
paul@1389 | 316 | ! grep -q "$UID3" "out8f.tmp" \ |
paul@591 | 317 | && echo "Success" \ |
paul@591 | 318 | || echo "Failed" |
paul@591 | 319 | |
paul@1389 | 320 | # Expect no free/busy periods for the sender at the recipient. |
paul@1389 | 321 | |
paul@1088 | 322 | "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_other" "$SENDER" \ |
paul@1088 | 323 | > out8fo.tmp |
paul@1088 | 324 | |
paul@1389 | 325 | ! grep -q "$UID3" "out8fo.tmp" \ |
paul@591 | 326 | && echo "Success" \ |
paul@591 | 327 | || echo "Failed" |