1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/tests/test_resource_invitation_constraints_alternative.sh Mon Sep 14 19:58:51 2015 +0200
1.3 @@ -0,0 +1,170 @@
1.4 +#!/bin/sh
1.5 +
1.6 +THIS_DIR=`dirname $0`
1.7 +
1.8 +TEMPLATES="$THIS_DIR/templates"
1.9 +PERSON_SCRIPT="$THIS_DIR/../imip_person.py"
1.10 +RESOURCE_SCRIPT="$THIS_DIR/../imip_resource.py"
1.11 +SHOWMAIL="$THIS_DIR/../tools/showmail.py"
1.12 +STORE=/tmp/store
1.13 +STATIC=/tmp/static
1.14 +PREFS=/tmp/prefs
1.15 +ARGS="-S $STORE -P $STATIC -p $PREFS -d"
1.16 +USER="mailto:resource-room-sauna@example.com"
1.17 +SENDER="mailto:paul.boddie@example.com"
1.18 +RIVALSENDER="mailto:vincent.vole@example.com"
1.19 +FBFILE="$STORE/$USER/freebusy"
1.20 +FBOFFERFILE="$STORE/$USER/freebusy-offers"
1.21 +FBSENDERFILE="$STORE/$SENDER/freebusy"
1.22 +FBSENDEROTHERFILE="$STORE/$SENDER/freebusy-other/$USER"
1.23 +FBRIVALSENDERFILE="$STORE/$RIVALSENDER/freebusy"
1.24 +TAB=`printf '\t'`
1.25 +
1.26 +OUTGOING_SCRIPT="$THIS_DIR/../imip_person_outgoing.py"
1.27 +
1.28 +ERROR=err.tmp
1.29 +
1.30 +rm -r $STORE
1.31 +rm -r $STATIC
1.32 +rm -r $PREFS
1.33 +rm $ERROR
1.34 +rm out*.tmp
1.35 +
1.36 +mkdir -p "$PREFS/$USER"
1.37 +echo 'Europe/Oslo' > "$PREFS/$USER/TZID"
1.38 +echo 'share' > "$PREFS/$USER/freebusy_sharing"
1.39 +echo '10,12,14,16,18:0,15,30,45' > "$PREFS/$USER/permitted_times"
1.40 +echo '60' > "$PREFS/$USER/freebusy_offers"
1.41 +
1.42 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \
1.43 +| "$SHOWMAIL" \
1.44 +> out0.tmp
1.45 +
1.46 + grep -q 'METHOD:REPLY' out0.tmp \
1.47 +&& ! grep -q '^FREEBUSY' out0.tmp \
1.48 +&& echo "Success" \
1.49 +|| echo "Failed"
1.50 +
1.51 +# Attempt to schedule an event.
1.52 +
1.53 +"$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR
1.54 +
1.55 + grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \
1.56 +&& echo "Success" \
1.57 +|| echo "Failed"
1.58 +
1.59 +# Present the request to the resource.
1.60 +
1.61 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR \
1.62 +| "$SHOWMAIL" \
1.63 +> out1.tmp
1.64 +
1.65 + grep -q 'METHOD:COUNTER' out1.tmp \
1.66 +&& grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' out1.tmp \
1.67 +&& echo "Success" \
1.68 +|| echo "Failed"
1.69 +
1.70 + ! [ -e "$FBFILE" ] \
1.71 +|| ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBFILE" \
1.72 +&& echo "Success" \
1.73 +|| echo "Failed"
1.74 +
1.75 + grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \
1.76 +&& echo "Success" \
1.77 +|| echo "Failed"
1.78 +
1.79 +# Present the response to the organiser.
1.80 +
1.81 + "$PERSON_SCRIPT" $ARGS < out1.tmp 2>> $ERROR \
1.82 +| tee out2r.tmp \
1.83 +| "$SHOWMAIL" \
1.84 +> out2.tmp
1.85 +
1.86 + [ ! -e "$FBSENDEROTHERFILE" ] \
1.87 +|| ( ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDEROTHERFILE" \
1.88 + && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBSENDEROTHERFILE" ) \
1.89 +&& echo "Success" \
1.90 +|| echo "Failed"
1.91 +
1.92 + grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' "$STORE/$SENDER/objects/event13@example.com" \
1.93 +&& echo "Success" \
1.94 +|| echo "Failed"
1.95 +
1.96 +# Decline the counter-proposal.
1.97 +
1.98 + sed 's/COUNTER/DECLINECOUNTER/' < out1.tmp \
1.99 +| sed 's/^From: calendar/To: resource-room-sauna/' \
1.100 +| sed 's/^To: paul.boddie/From: paul.boddie/' \
1.101 +> out3.tmp
1.102 +
1.103 +"$OUTGOING_SCRIPT" $ARGS < out3.tmp 2>> $ERROR
1.104 +
1.105 + "$RESOURCE_SCRIPT" $ARGS < out3.tmp 2>> $ERROR \
1.106 +| "$SHOWMAIL" \
1.107 +> out4.tmp
1.108 +
1.109 + ! [ -e "$FBFILE" ] \
1.110 +|| ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBFILE" \
1.111 +&& echo "Success" \
1.112 +|| echo "Failed"
1.113 +
1.114 + ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \
1.115 +&& echo "Success" \
1.116 +|| echo "Failed"
1.117 +
1.118 +# Attempt to schedule an event in the proposed period.
1.119 +
1.120 +"$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR
1.121 +
1.122 + ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \
1.123 +&& grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \
1.124 +&& echo "Success" \
1.125 +|| echo "Failed"
1.126 +
1.127 +# Present the request to the resource.
1.128 +
1.129 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR \
1.130 +| "$SHOWMAIL" \
1.131 +> out5.tmp
1.132 +
1.133 + grep -q 'METHOD:REPLY' out5.tmp \
1.134 +&& grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' out5.tmp \
1.135 +&& echo "Success" \
1.136 +|| echo "Failed"
1.137 +
1.138 + grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBFILE" \
1.139 +&& echo "Success" \
1.140 +|| echo "Failed"
1.141 +
1.142 + ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBOFFERFILE" \
1.143 +&& echo "Success" \
1.144 +|| echo "Failed"
1.145 +
1.146 +# Present the response to the organiser.
1.147 +
1.148 + "$PERSON_SCRIPT" $ARGS < out5.tmp 2>> $ERROR \
1.149 +| "$SHOWMAIL" \
1.150 +> out6.tmp
1.151 +
1.152 + ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \
1.153 +&& ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \
1.154 +&& grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \
1.155 +&& echo "Success" \
1.156 +|| echo "Failed"
1.157 +
1.158 + grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' "$STORE/$RIVALSENDER/objects/event18@example.com" \
1.159 +&& echo "Success" \
1.160 +|| echo "Failed"
1.161 +
1.162 +# Check the free/busy state of the resource so far.
1.163 +
1.164 + "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \
1.165 +| "$SHOWMAIL" \
1.166 +> out7.tmp
1.167 +
1.168 + grep -q 'METHOD:REPLY' out7.tmp \
1.169 +&& ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out7.tmp \
1.170 +&& ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out7.tmp \
1.171 +&& grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out7.tmp \
1.172 +&& echo "Success" \
1.173 +|| echo "Failed"