1 #!/bin/sh 2 3 . "`dirname \"$0\"`/common.sh" 4 5 USER="mailto:resource-room-sauna@example.com" 6 SENDER="mailto:paul.boddie@example.com" 7 RIVALSENDER="mailto:vincent.vole@example.com" 8 9 mkdir -p "$PREFS/$USER" 10 echo 'Europe/Oslo' > "$PREFS/$USER/TZID" 11 echo 'share' > "$PREFS/$USER/freebusy_sharing" 12 echo 'schedule_corrected_in_freebusy' > "$PREFS/$USER/scheduling_function" 13 echo '10,12,14,16,18:0,15,30,45' > "$PREFS/$USER/permitted_times" 14 echo 'PT60S' > "$PREFS/$USER/freebusy_offers" 15 16 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 17 | "$SHOWMAIL" \ 18 > out0.tmp 19 20 grep -q 'METHOD:REPLY' out0.tmp \ 21 && ! grep -q '^FREEBUSY' out0.tmp \ 22 && echo "Success" \ 23 || echo "Failed" 24 25 # Attempt to schedule an event. 26 27 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR 28 29 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "freebusy" \ 30 | tee out0f.tmp \ 31 | grep -q "^20141126T151000Z${TAB}20141126T154500Z" \ 32 && echo "Success" \ 33 || echo "Failed" 34 35 # Present the request to the resource. 36 37 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-bad.txt" 2>> $ERROR \ 38 | tee out1r.tmp \ 39 | "$SHOWMAIL" \ 40 > out1.tmp 41 42 grep -q 'METHOD:COUNTER' out1.tmp \ 43 && grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' out1.tmp \ 44 && echo "Success" \ 45 || echo "Failed" 46 47 "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ 48 > out1f.tmp 49 50 ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "out1f.tmp" \ 51 && echo "Success" \ 52 || echo "Failed" 53 54 "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_offers" \ 55 | tee out1o.tmp \ 56 | grep -q "^20141126T151500Z${TAB}20141126T154500Z" \ 57 && echo "Success" \ 58 || echo "Failed" 59 60 # Present the response to the organiser. 61 62 "$PERSON_SCRIPT" $ARGS < out1r.tmp 2>> $ERROR \ 63 | tee out2r.tmp \ 64 | "$SHOWMAIL" \ 65 > out2.tmp 66 67 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "freebusy_other" "$USER" \ 68 > out2f.tmp 69 70 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "out2f.tmp" \ 71 && echo "Success" \ 72 || echo "Failed" 73 74 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "object" "event13@example.com" \ 75 | tee out2O.tmp \ 76 | grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161000' \ 77 && echo "Success" \ 78 || echo "Failed" 79 80 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "countered_object" "event13@example.com" "$USER" \ 81 | tee out2C.tmp \ 82 | grep -q 'DTSTART;TZID=Europe/Oslo.*:20141126T161500' \ 83 && echo "Success" \ 84 || echo "Failed" 85 86 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "requests" \ 87 | tee out2r.tmp \ 88 | grep -q 'event13@example.com' \ 89 && echo "Success" \ 90 || echo "Failed" 91 92 # Attempt to schedule an event in the proposed period. 93 94 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR 95 96 "$LIST_SCRIPT" $LIST_ARGS "$RIVALSENDER" "freebusy" \ 97 > out2R.tmp 98 99 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "out2R.tmp" \ 100 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "out2R.tmp" \ 101 && echo "Success" \ 102 || echo "Failed" 103 104 # Present the request to the resource. 105 106 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-rival.txt" 2>> $ERROR \ 107 | "$SHOWMAIL" \ 108 > out3.tmp 109 110 grep -q 'METHOD:REPLY' out3.tmp \ 111 && grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' out3.tmp \ 112 && echo "Success" \ 113 || echo "Failed" 114 115 # Present the response to the organiser. 116 117 "$PERSON_SCRIPT" $ARGS < out3.tmp 2>> $ERROR \ 118 | tee out4r.tmp \ 119 | "$SHOWMAIL" \ 120 > out4.tmp 121 122 "$LIST_SCRIPT" $LIST_ARGS "$RIVALSENDER" "freebusy" \ 123 > out4R.tmp 124 125 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "out4R.tmp" \ 126 && grep -q "^20141126T153000Z${TAB}20141126T154500Z" "out4R.tmp" \ 127 && echo "Success" \ 128 || echo "Failed" 129 130 "$LIST_SCRIPT" $LIST_ARGS "$RIVALSENDER" "object" "event18@example.com" \ 131 | tee out4O.tmp \ 132 | grep -q 'ATTENDEE.*;PARTSTAT=DECLINED' \ 133 && echo "Success" \ 134 || echo "Failed" 135 136 # Check the free/busy state of the resource so far. 137 138 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 139 | "$SHOWMAIL" \ 140 > out5.tmp 141 142 grep -q 'METHOD:REPLY' out5.tmp \ 143 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out5.tmp \ 144 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out5.tmp \ 145 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out5.tmp \ 146 && echo "Success" \ 147 || echo "Failed" 148 149 # Attempt to schedule again in response to the counter-proposal. 150 151 "$OUTGOING_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR 152 153 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "freebusy" \ 154 > out5f.tmp 155 156 ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "out5f.tmp" \ 157 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "out5f.tmp" \ 158 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "out5f.tmp" \ 159 && echo "Success" \ 160 || echo "Failed" 161 162 [ ! -e "$STORE/$SENDER/counters/objects/event13@example.com/$USER" ] \ 163 && echo "Success" \ 164 || echo "Failed" 165 166 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "requests" \ 167 > out5r.tmp 168 169 ! grep -q 'event13@example.com' "out5r.tmp" \ 170 && echo "Success" \ 171 || echo "Failed" 172 173 # Present the request to the resource. 174 175 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/event-request-sauna-good.txt" 2>> $ERROR \ 176 | "$SHOWMAIL" \ 177 > out6.tmp 178 179 grep -q 'METHOD:REPLY' out6.tmp \ 180 && grep -q 'ATTENDEE.*;PARTSTAT=ACCEPTED' out6.tmp \ 181 && echo "Success" \ 182 || echo "Failed" 183 184 "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy" \ 185 | tee out6f.tmp \ 186 | grep -q "^20141126T150000Z${TAB}20141126T154500Z" \ 187 && echo "Success" \ 188 || echo "Failed" 189 190 "$LIST_SCRIPT" $LIST_ARGS "$USER" "freebusy_offers" \ 191 > out6o.tmp 192 193 ! grep -q "^20141126T150000Z${TAB}20141126T154500Z" "out6o.tmp" \ 194 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "out6o.tmp" \ 195 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "out6o.tmp" \ 196 && echo "Success" \ 197 || echo "Failed" 198 199 # Present the response to the organiser. 200 201 "$PERSON_SCRIPT" $ARGS < out6.tmp 2>> $ERROR \ 202 | tee out7r.tmp \ 203 | "$SHOWMAIL" \ 204 > out7.tmp 205 206 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "freebusy" \ 207 > out7f.tmp 208 209 grep -q "^20141126T150000Z${TAB}20141126T154500Z" "out7f.tmp" \ 210 && ! grep -q "^20141126T151000Z${TAB}20141126T154500Z" "out7f.tmp" \ 211 && ! grep -q "^20141126T151500Z${TAB}20141126T154500Z" "out7f.tmp" \ 212 && ! grep -q "^20141126T153000Z${TAB}20141126T154500Z" "out7f.tmp" \ 213 && echo "Success" \ 214 || echo "Failed" 215 216 [ ! -e "$STORE/$SENDER/counters/objects/event13@example.com/$USER" ] \ 217 && echo "Success" \ 218 || echo "Failed" 219 220 "$LIST_SCRIPT" $LIST_ARGS "$SENDER" "requests" \ 221 > out7r.tmp 222 223 ! grep -q 'event13@example.com' "out7r.tmp" \ 224 && echo "Success" \ 225 || echo "Failed" 226 227 # Check the free/busy state of the resource again. 228 229 "$RESOURCE_SCRIPT" $ARGS < "$TEMPLATES/fb-request-sauna-all.txt" 2>> $ERROR \ 230 | "$SHOWMAIL" \ 231 > out6.tmp 232 233 grep -q 'METHOD:REPLY' out6.tmp \ 234 && grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T150000Z/20141126T154500Z' out6.tmp \ 235 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151000Z/20141126T154500Z' out6.tmp \ 236 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T151500Z/20141126T154500Z' out6.tmp \ 237 && ! grep -q 'FREEBUSY;FBTYPE=BUSY:20141126T153000Z/20141126T154500Z' out6.tmp \ 238 && echo "Success" \ 239 || echo "Failed"