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