1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/tests/test_resource_invitation_constraints_quota_recurring_limits.sh Mon Feb 08 23:26:28 2016 +0100
1.3 @@ -0,0 +1,240 @@
1.4 +#!/bin/sh
1.5 +
1.6 +. "`dirname \"$0\"`/common.sh"
1.7 +
1.8 +USER1="mailto:resource-car-porsche911@example.com"
1.9 +USER2="mailto:resource-car-fiat500@example.com"
1.10 +SENDER1="mailto:paul.boddie@example.com"
1.11 +SENDER2="mailto:vincent.vole@example.com"
1.12 +SENDERADDRESS1="paul.boddie@example.com"
1.13 +SENDERADDRESS2="vincent.vole@example.com"
1.14 +FBFILE1="$STORE/$USER1/freebusy"
1.15 +FBFILE2="$STORE/$USER2/freebusy"
1.16 +FBSENDERFILE1="$STORE/$SENDER1/freebusy"
1.17 +FBSENDERFILE2="$STORE/$SENDER2/freebusy"
1.18 +QUOTA=cars
1.19 +JOURNALFILE1="$JOURNAL/$QUOTA/journal/$SENDER1"
1.20 +JOURNALFILE2="$JOURNAL/$QUOTA/journal/$SENDER2"
1.21 +
1.22 +mkdir -p "$PREFS/$USER1"
1.23 +echo 'Europe/Oslo' > "$PREFS/$USER1/TZID"
1.24 +echo 'share' > "$PREFS/$USER1/freebusy_sharing"
1.25 +cat > "$PREFS/$USER1/scheduling_function" <<EOF
1.26 +schedule_in_freebusy
1.27 +check_quota $QUOTA
1.28 +EOF
1.29 +cat > "$PREFS/$USER1/confirmation_function" <<EOF
1.30 +add_to_quota $QUOTA
1.31 +EOF
1.32 +cat > "$PREFS/$USER1/retraction_function" <<EOF
1.33 +remove_from_quota $QUOTA
1.34 +EOF
1.35 +
1.36 +mkdir -p "$PREFS/$USER2"
1.37 +echo 'Europe/Oslo' > "$PREFS/$USER2/TZID"
1.38 +echo 'share' > "$PREFS/$USER2/freebusy_sharing"
1.39 +cat > "$PREFS/$USER2/scheduling_function" <<EOF
1.40 +schedule_in_freebusy
1.41 +check_quota $QUOTA
1.42 +EOF
1.43 +cat > "$PREFS/$USER2/confirmation_function" <<EOF
1.44 +add_to_quota $QUOTA
1.45 +EOF
1.46 +cat > "$PREFS/$USER2/retraction_function" <<EOF
1.47 +remove_from_quota $QUOTA
1.48 +EOF
1.49 +
1.50 +mkdir -p "$JOURNAL/$QUOTA"
1.51 +cat > "$JOURNAL/$QUOTA/limits" <<EOF
1.52 +mailto:vincent.vole@example.com PT10H
1.53 +* PT5H
1.54 +EOF
1.55 +
1.56 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-car-all.txt" 2>> $ERROR \
1.57 +| "$SHOWMAIL" \
1.58 +> out0.tmp
1.59 +
1.60 + grep -q 'METHOD:REPLY' out0.tmp \
1.61 +&& ! grep -q '^FREEBUSY' out0.tmp \
1.62 +&& echo "Success" \
1.63 +|| echo "Failed"
1.64 +
1.65 +# Attempt to schedule an event.
1.66 +
1.67 +"$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-cars-recurring.txt" 2>> $ERROR
1.68 +
1.69 + grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBSENDERFILE1" \
1.70 +&& grep -q "^20141206T150000Z${TAB}20141206T160000Z" "$FBSENDERFILE1" \
1.71 +&& echo "Success" \
1.72 +|| echo "Failed"
1.73 +
1.74 +# Present the request to the resource.
1.75 +
1.76 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-cars-recurring.txt" 2>> $ERROR \
1.77 +| tee out1r.tmp \
1.78 +| "$SHOWMAIL" \
1.79 +> out1.tmp
1.80 +
1.81 + grep -q 'METHOD:REPLY' out1.tmp \
1.82 +&& grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out1.tmp \
1.83 +&& echo "Success" \
1.84 +|| echo "Failed"
1.85 +
1.86 + ( ! [ -e "$FBFILE1" ] \
1.87 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE1" \
1.88 + && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "$FBFILE1" )) \
1.89 +&& ( ! [ -e "$FBFILE2" ] \
1.90 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE2" \
1.91 + && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "$FBFILE2" )) \
1.92 +&& echo "Success" \
1.93 +|| echo "Failed"
1.94 +
1.95 +# Check the quota (event is not confirmed).
1.96 +
1.97 + ! [ -e "$JOURNALFILE1" ] \
1.98 +|| ! grep -q "event25@example.com" "$JOURNALFILE1" \
1.99 +&& echo "Success" \
1.100 +|| echo "Failed"
1.101 +
1.102 +# Modify the event and attempt to schedule it again.
1.103 +
1.104 + sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \
1.105 +| "$OUTGOING_SCRIPT" $ARGS 2>> $ERROR
1.106 +
1.107 + grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBSENDERFILE1" \
1.108 +&& grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBSENDERFILE1" \
1.109 +&& echo "Success" \
1.110 +|| echo "Failed"
1.111 +
1.112 +# Present the request to the resource.
1.113 +
1.114 + sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \
1.115 +| "$RESOURCE_SCRIPT" $ARGS 2>> $ERROR \
1.116 +| tee out2r.tmp \
1.117 +| "$SHOWMAIL" \
1.118 +> out2.tmp
1.119 +
1.120 +# Since the email module used by showmail.py cannot stop after reading a single
1.121 +# message, the second message is obtained.
1.122 +
1.123 + grep -n '^From ' out2r.tmp \
1.124 +| tail -n 1 \
1.125 +| cut -d ':' -f 1 \
1.126 +| xargs -I{} tail -n +'{}' out2r.tmp \
1.127 +| "$SHOWMAIL" \
1.128 +>> out2.tmp
1.129 +
1.130 + grep -q 'METHOD:REPLY' out2.tmp \
1.131 +&& grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' out2.tmp \
1.132 +&& grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out2.tmp \
1.133 +&& echo "Success" \
1.134 +|| echo "Failed"
1.135 +
1.136 + (( ! [ -e "$FBFILE1" ] \
1.137 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE1" \
1.138 + && ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE1" )) \
1.139 + && [ -e "$FBFILE2" ] \
1.140 + && grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE2" \
1.141 + && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE2" ) \
1.142 +|| (( ! [ -e "$FBFILE2" ] \
1.143 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE2" \
1.144 + && ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE2" )) \
1.145 + && [ -e "$FBFILE1" ] \
1.146 + && grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE1" \
1.147 + && grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE1" ) \
1.148 +&& echo "Success" \
1.149 +|| echo "Failed"
1.150 +
1.151 +# Check the quota (event is confirmed for one resource).
1.152 +
1.153 + ! [ -e "$JOURNALFILE1" ] \
1.154 +|| grep -q "event25@example.com" "$JOURNALFILE1" \
1.155 +&& echo "Success" \
1.156 +|| echo "Failed"
1.157 +
1.158 +# Cancel the event.
1.159 +
1.160 +"$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-cancel-cars-recurring.txt" 2>> $ERROR
1.161 +
1.162 + ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBSENDERFILE1" \
1.163 +&& ! grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBSENDERFILE1" \
1.164 +&& echo "Success" \
1.165 +|| echo "Failed"
1.166 +
1.167 +# Present the request to the resource.
1.168 +
1.169 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-cancel-cars-recurring.txt" 2>> $ERROR \
1.170 +| tee out3r.tmp \
1.171 +| "$SHOWMAIL" \
1.172 +> out3.tmp
1.173 +
1.174 + ! grep -q 'METHOD:REPLY' out3.tmp \
1.175 +&& echo "Success" \
1.176 +|| echo "Failed"
1.177 +
1.178 + ( ! [ -e "$FBFILE1" ] \
1.179 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE1" \
1.180 + && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "$FBFILE1" )) \
1.181 +&& ( ! [ -e "$FBFILE2" ] \
1.182 + || ( ! grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE2" \
1.183 + && ! grep -q "^20141206T150000Z${TAB}20141206T160000Z" "$FBFILE2" )) \
1.184 +&& echo "Success" \
1.185 +|| echo "Failed"
1.186 +
1.187 +# Check the quota (event is retracted).
1.188 +
1.189 + ! [ -e "$JOURNALFILE1" ] \
1.190 +|| [ `grep "event25@example.com" "$JOURNALFILE1" | wc -l` = '2' ] \
1.191 +&& echo "Success" \
1.192 +|| echo "Failed"
1.193 +
1.194 +# Modify the event and attempt to schedule it again.
1.195 +
1.196 + sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \
1.197 +| sed "s/$SENDERADDRESS1/$SENDERADDRESS2/;" \
1.198 +| "$OUTGOING_SCRIPT" $ARGS 2>> $ERROR
1.199 +
1.200 + grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBSENDERFILE2" \
1.201 +&& grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBSENDERFILE2" \
1.202 +&& echo "Success" \
1.203 +|| echo "Failed"
1.204 +
1.205 +# Present the request to the resource.
1.206 +
1.207 + sed 's/FREQ=DAILY/FREQ=DAILY;COUNT=5/;' "$TEMPLATES/event-request-cars-recurring.txt" \
1.208 +| sed "s/$SENDERADDRESS1/$SENDERADDRESS2/;" \
1.209 +| "$RESOURCE_SCRIPT" $ARGS 2>> $ERROR \
1.210 +| tee out4r.tmp \
1.211 +| "$SHOWMAIL" \
1.212 +> out4.tmp
1.213 +
1.214 +# Since the email module used by showmail.py cannot stop after reading a single
1.215 +# message, the second message is obtained.
1.216 +
1.217 + grep -n '^From ' out4r.tmp \
1.218 +| tail -n 1 \
1.219 +| cut -d ':' -f 1 \
1.220 +| xargs -I{} tail -n +'{}' out4r.tmp \
1.221 +| "$SHOWMAIL" \
1.222 +>> out4.tmp
1.223 +
1.224 + grep -q 'METHOD:REPLY' out4.tmp \
1.225 +&& [ `grep 'ATTENDEE.*;PARTSTAT=ACCEPTED' out4.tmp | wc -l` = '2' ] \
1.226 +&& echo "Success" \
1.227 +|| echo "Failed"
1.228 +
1.229 + [ -e "$FBFILE1" ] \
1.230 +&& grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE1" \
1.231 +&& grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE1" \
1.232 +&& [ -e "$FBFILE2" ] \
1.233 +&& grep -q "^20141126T150000Z${TAB}20141126T160000Z" "$FBFILE2" \
1.234 +&& grep -q "^20141130T150000Z${TAB}20141130T160000Z" "$FBFILE2" \
1.235 +&& echo "Success" \
1.236 +|| echo "Failed"
1.237 +
1.238 +# Check the quota (event is confirmed for both resources).
1.239 +
1.240 + [ -e "$JOURNALFILE2" ] \
1.241 +&& [ `grep "event25@example.com" "$JOURNALFILE2" | wc -l` = '1' ] \
1.242 +&& echo "Success" \
1.243 +|| echo "Failed"