1 #!/bin/sh 2 3 THIS_DIR=`dirname $0` 4 5 TEMPLATES="$THIS_DIR/templates" 6 PERSON_SCRIPT="$THIS_DIR/../imip_person.py" 7 RESOURCE_SCRIPT="$THIS_DIR/../imip_resource.py" 8 SHOWMAIL="$THIS_DIR/../tools/showmail.py" 9 STORE=/tmp/store 10 STATIC=/tmp/static 11 PREFS=/tmp/prefs 12 ARGS="-S $STORE -P $STATIC -p $PREFS -d" 13 USER="mailto:resource-room-sauna@example.com" 14 SENDER="mailto:paul.boddie@example.com" 15 RIVALSENDER="mailto:vincent.vole@example.com" 16 FBFILE="$STORE/$USER/freebusy" 17 FBOFFERFILE="$STORE/$USER/freebusy-offers" 18 FBSENDERFILE="$STORE/$SENDER/freebusy" 19 FBSENDEROTHERFILE="$STORE/$SENDER/freebusy-other/$USER" 20 FBRIVALSENDERFILE="$STORE/$RIVALSENDER/freebusy" 21 TAB=`printf '\t'` 22 23 OUTGOING_SCRIPT="$THIS_DIR/../imip_person_outgoing.py" 24 25 ERROR=err.tmp 26 27 rm -r $STORE 28 rm -r $STATIC 29 rm -r $PREFS 30 rm $ERROR 31 rm out*.tmp 32 33 mkdir -p "$PREFS/$USER" 34 echo 'Europe/Oslo' > "$PREFS/$USER/TZID" 35 echo 'share' > "$PREFS/$USER/freebusy_sharing" 36 echo '10,12,14,16,18:0,15,30,45' > "$PREFS/$USER/permitted_times" 37 echo '60' > "$PREFS/$USER/freebusy_offers" 38 39 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 40 | "$SHOWMAIL" \ 41 > out0.tmp 42 43 grep -q 'METHOD:REPLY' out0.tmp \ 44 && ! grep -q '^FREEBUSY' out0.tmp \ 45 && echo "Success" \ 46 || echo "Failed" 47 48 # Attempt to schedule an event. 49 50 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR 51 52 grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 53 && echo "Success" \ 54 || echo "Failed" 55 56 # Present the request to the resource. 57 58 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR \ 59 | "$SHOWMAIL" \ 60 > out1.tmp 61 62 grep -q 'METHOD:COUNTER' out1.tmp \ 63 && grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' out1.tmp \ 64 && echo "Success" \ 65 || echo "Failed" 66 67 ! [ -e "$FBFILE" ] \ 68 || ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBFILE" \ 69 && echo "Success" \ 70 || echo "Failed" 71 72 grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \ 73 && echo "Success" \ 74 || echo "Failed" 75 76 # Present the response to the organiser. 77 78 "$PERSON_SCRIPT" $ARGS < out1.tmp 2>> $ERROR \ 79 | tee out2r.tmp \ 80 | "$SHOWMAIL" \ 81 > out2.tmp 82 83 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDEROTHERFILE" \ 84 && echo "Success" \ 85 || echo "Failed" 86 87 grep -q 'ATTENDEE;PARTSTAT=DECLINED' "$STORE/$SENDER/objects/event13@example.com" \ 88 && echo "Success" \ 89 || echo "Failed" 90 91 # Attempt to schedule an event in the proposed period. 92 93 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR 94 95 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \ 96 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \ 97 && echo "Success" \ 98 || echo "Failed" 99 100 # Present the request to the resource. 101 102 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR \ 103 | "$SHOWMAIL" \ 104 > out3.tmp 105 106 grep -q 'METHOD:REPLY' out3.tmp \ 107 && grep -q 'ATTENDEE;PARTSTAT=DECLINED' out3.tmp \ 108 && echo "Success" \ 109 || echo "Failed" 110 111 # Present the response to the organiser. 112 113 "$PERSON_SCRIPT" $ARGS < out3.tmp 2>> $ERROR \ 114 | tee out4r.tmp \ 115 | "$SHOWMAIL" \ 116 > out4.tmp 117 118 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \ 119 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBRIVALSENDERFILE" \ 120 && echo "Success" \ 121 || echo "Failed" 122 123 grep -q 'ATTENDEE;PARTSTAT=DECLINED' "$STORE/$RIVALSENDER/objects/event18@example.com" \ 124 && echo "Success" \ 125 || echo "Failed" 126 127 # Check the free/busy state of the resource so far. 128 129 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 130 | "$SHOWMAIL" \ 131 > out5.tmp 132 133 grep -q 'METHOD:REPLY' out5.tmp \ 134 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out5.tmp \ 135 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out5.tmp \ 136 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out5.tmp \ 137 && echo "Success" \ 138 || echo "Failed" 139 140 # Attempt to schedule again in response to the counter-proposal. 141 142 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR 143 144 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 145 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 146 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 147 && echo "Success" \ 148 || echo "Failed" 149 150 # Present the request to the resource. 151 152 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR \ 153 | "$SHOWMAIL" \ 154 > out6.tmp 155 156 grep -q 'METHOD:REPLY' out6.tmp \ 157 && grep -q 'ATTENDEE;PARTSTAT=ACCEPTED' out6.tmp \ 158 && echo "Success" \ 159 || echo "Failed" 160 161 grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBFILE" \ 162 && echo "Success" \ 163 || echo "Failed" 164 165 ! grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBOFFERFILE" \ 166 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBOFFERFILE" \ 167 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBOFFERFILE" \ 168 && echo "Success" \ 169 || echo "Failed" 170 171 # Present the response to the organiser. 172 173 "$PERSON_SCRIPT" $ARGS < out6.tmp 2>> $ERROR \ 174 | tee out7r.tmp \ 175 | "$SHOWMAIL" \ 176 > out7.tmp 177 178 grep -q "^20141126T150000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 179 && ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 180 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 181 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "$FBSENDERFILE" \ 182 && echo "Success" \ 183 || echo "Failed" 184 185 # Check the free/busy state of the resource again. 186 187 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 188 | "$SHOWMAIL" \ 189 > out6.tmp 190 191 grep -q 'METHOD:REPLY' out6.tmp \ 192 && grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T150000Z/20141126T154500Z' out6.tmp \ 193 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out6.tmp \ 194 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out6.tmp \ 195 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out6.tmp \ 196 && echo "Success" \ 197 || echo "Failed"