1 #!/bin/sh 2 3 . "`dirname \"$0\"`/common.sh" 4 5 USER1="mailto:resource-car-porsche911@example.com" 6 USER2="mailto:resource-car-fiat500@example.com" 7 SENDER1="mailto:paul.boddie@example.com" 8 SENDER2="mailto:vincent.vole@example.com" 9 SENDERADDRESS1="paul.boddie@example.com" 10 SENDERADDRESS2="vincent.vole@example.com" 11 QUOTA=cars 12 13 mkdir -p "$PREFS/$USER1" 14 echo 'Europe/Oslo' > "$PREFS/$USER1/TZID" 15 echo 'share' > "$PREFS/$USER1/freebusy_sharing" 16 cat > "$PREFS/$USER1/scheduling_function" <<EOF 17 schedule_in_freebusy 18 check_quota $QUOTA 19 EOF 20 21 mkdir -p "$PREFS/$USER2" 22 echo 'Europe/Oslo' > "$PREFS/$USER2/TZID" 23 echo 'share' > "$PREFS/$USER2/freebusy_sharing" 24 cat > "$PREFS/$USER2/scheduling_function" <<EOF 25 schedule_in_freebusy 26 check_quota $QUOTA 27 EOF 28 29 cat <<EOF | "$SET_QUOTA_LIMITS" "$QUOTA" $SET_QUOTA_LIMITS_ARGS 30 mailto:vincent.vole@example.com PT10H 31 * PT5H 32 EOF 33 34 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-car-all.txt" 2>> $ERROR \ 35 | "$SHOWMAIL" \ 36 > out0.tmp 37 38 grep -q 'METHOD:REPLY' out0.tmp \ 39 && ! grep -q '^FREEBUSY' out0.tmp \ 40 && echo "Success" \ 41 || echo "Failed" 42 43 # Attempt to schedule an event. 44 45 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-cars-recurring.txt" 2>> $ERROR 46 47 "$LIST_SCRIPT" $LIST_ARGS "$SENDER1" "freebusy" \ 48 > out0f.tmp 49 50 grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out0f.tmp" \ 51 && grep -q "^20141206T150000Z${TAB}20141206T160000Z" "out0f.tmp" \ 52 && echo "Success" \ 53 || echo "Failed" 54 55 # Present the request to the resource. 56 57 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-cars-recurring.txt" 2>> $ERROR \ 58 | tee out1r.tmp \ 59 | "$SHOWMAIL" \ 60 > out1.tmp 61 62 grep -q 'METHOD:REPLY' out1.tmp \ 63 && grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out1.tmp \ 64 && echo "Success" \ 65 || echo "Failed" 66 67 "$LIST_SCRIPT" $LIST_ARGS "$USER1" "freebusy" \ 68 > out1f.tmp 69 70 "$LIST_SCRIPT" $LIST_ARGS "$USER2" "freebusy" \ 71 > out1f2.tmp 72 73 ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out1f.tmp" \ 74 && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "out1f.tmp" \ 75 && ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out1f2.tmp" \ 76 && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "out1f2.tmp" \ 77 && echo "Success" \ 78 || echo "Failed" 79 80 # Check the quota (event is not confirmed). 81 82 "$LIST_SCRIPT" $LIST_ARGS "$QUOTA" "entries" "$SENDER1" \ 83 > out1e.tmp 84 85 ! grep -q "event25@example.com" "out1e.tmp" \ 86 && echo "Success" \ 87 || echo "Failed" 88 89 # Modify the event and attempt to schedule it again. 90 91 sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \ 92 | "$OUTGOING_SCRIPT" $ARGS 2>> $ERROR 93 94 "$LIST_SCRIPT" $LIST_ARGS "$SENDER1" "freebusy" \ 95 > out1s.tmp 96 97 grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out1s.tmp" \ 98 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out1s.tmp" \ 99 && echo "Success" \ 100 || echo "Failed" 101 102 # Present the request to the resource. 103 104 sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \ 105 | "$RESOURCE_SCRIPT" $ARGS 2>> $ERROR \ 106 | tee out2r.tmp \ 107 | "$SHOWMAIL" \ 108 > out2.tmp 109 110 # Since the email module used by showmail.py cannot stop after reading a single 111 # message, the second message is obtained. 112 113 "$SHOWMAIL" 1 < out2r.tmp \ 114 >> out2.tmp 115 116 grep -q 'METHOD:REPLY' out2.tmp \ 117 && grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' out2.tmp \ 118 && grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out2.tmp \ 119 && echo "Success" \ 120 || echo "Failed" 121 122 "$LIST_SCRIPT" $LIST_ARGS "$USER1" "freebusy" \ 123 > out2f.tmp 124 125 "$LIST_SCRIPT" $LIST_ARGS "$USER2" "freebusy" \ 126 > out2f2.tmp 127 128 ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out2f.tmp" \ 129 && ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out2f.tmp" \ 130 && grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out2f2.tmp" \ 131 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out2f2.tmp" ) \ 132 || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out2f2.tmp" \ 133 && ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out2f2.tmp" \ 134 && grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out2f.tmp" \ 135 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out2f.tmp" ) \ 136 && echo "Success" \ 137 || echo "Failed" 138 139 # Check the quota (event is confirmed for one resource). 140 141 "$LIST_SCRIPT" $LIST_ARGS "$QUOTA" "entries" "$SENDER1" \ 142 > out2e.tmp 143 144 grep -q "event25@example.com" "out2e.tmp" \ 145 && echo "Success" \ 146 || echo "Failed" 147 148 # Cancel the event. 149 150 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-cancel-cars-recurring.txt" 2>> $ERROR 151 152 "$LIST_SCRIPT" $LIST_ARGS "$SENDER1" "freebusy" \ 153 > out2s.tmp 154 155 ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out2s.tmp" \ 156 && ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out2s.tmp" \ 157 && echo "Success" \ 158 || echo "Failed" 159 160 # Present the request to the resource. 161 162 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-cancel-cars-recurring.txt" 2>> $ERROR \ 163 | tee out3r.tmp \ 164 | "$SHOWMAIL" \ 165 > out3.tmp 166 167 ! grep -q 'METHOD:REPLY' out3.tmp \ 168 && echo "Success" \ 169 || echo "Failed" 170 171 "$LIST_SCRIPT" $LIST_ARGS "$USER1" "freebusy" \ 172 > out3f.tmp 173 174 "$LIST_SCRIPT" $LIST_ARGS "$USER2" "freebusy" \ 175 > out3f2.tmp 176 177 ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out3f.tmp" \ 178 && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "out3f.tmp" \ 179 && ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out3f2.tmp" \ 180 && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "out3f2.tmp" \ 181 && echo "Success" \ 182 || echo "Failed" 183 184 # Check the quota (event is retracted). 185 186 "$LIST_SCRIPT" $LIST_ARGS "$QUOTA" "entries" "$SENDER1" \ 187 > out3e.tmp 188 189 ! grep -q "event25@example.com" "out3e.tmp" \ 190 && echo "Success" \ 191 || echo "Failed" 192 193 # Modify the event and attempt to schedule it again. 194 195 sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \ 196 | sed "s/$SENDERADDRESS1/$SENDERADDRESS2/;" \ 197 | "$OUTGOING_SCRIPT" $ARGS 2>> $ERROR 198 199 "$LIST_SCRIPT" $LIST_ARGS "$SENDER2" "freebusy" \ 200 > out3s.tmp 201 202 grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out3s.tmp" \ 203 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out3s.tmp" \ 204 && echo "Success" \ 205 || echo "Failed" 206 207 # Present the request to the resource. 208 209 sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \ 210 | sed "s/$SENDERADDRESS1/$SENDERADDRESS2/;" \ 211 | "$RESOURCE_SCRIPT" $ARGS 2>> $ERROR \ 212 | tee out4r.tmp \ 213 | "$SHOWMAIL" \ 214 > out4.tmp 215 216 # Since the email module used by showmail.py cannot stop after reading a single 217 # message, the second message is obtained. 218 219 "$SHOWMAIL" 1 < out4r.tmp \ 220 >> out4.tmp 221 222 grep -q 'METHOD:REPLY' out4.tmp \ 223 && [ `grep 'ATTENDEE.*;PARTSTAT=ACCEPTED' out4.tmp | wc -l` = '2' ] \ 224 && echo "Success" \ 225 || echo "Failed" 226 227 "$LIST_SCRIPT" $LIST_ARGS "$USER1" "freebusy" \ 228 > out4f.tmp 229 230 "$LIST_SCRIPT" $LIST_ARGS "$USER2" "freebusy" \ 231 > out4f2.tmp 232 233 grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out4f.tmp" \ 234 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out4f.tmp" \ 235 && grep -q "^20141126T150000Z${TAB}20141126T160000Z" "out4f2.tmp" \ 236 && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "out4f2.tmp" \ 237 && echo "Success" \ 238 || echo "Failed" 239 240 # Check the quota (event is confirmed for both resources). 241 242 "$LIST_SCRIPT" $LIST_ARGS "$QUOTA" "entries" "$SENDER2" \ 243 > out4e.tmp 244 245 grep -q "event25@example.com" "out4e.tmp" \ 246 && echo "Success" \ 247 || echo "Failed"