Mercurial > hg > rc1
comparison vendor/sabre/vobject/tests/VObject/ITip/BrokerProcessReplyTest.php @ 7:430dbd5346f7
vendor sabre as distributed
| author | Charlie Root |
|---|---|
| date | Sat, 13 Jan 2018 09:06:10 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 6:cec75ba50afc | 7:430dbd5346f7 |
|---|---|
| 1 <?php | |
| 2 | |
| 3 namespace Sabre\VObject\ITip; | |
| 4 | |
| 5 class BrokerProcessReplyTest extends BrokerTester { | |
| 6 | |
| 7 function testReplyNoOriginal() { | |
| 8 | |
| 9 $itip = <<<ICS | |
| 10 BEGIN:VCALENDAR | |
| 11 VERSION:2.0 | |
| 12 METHOD:REPLY | |
| 13 BEGIN:VEVENT | |
| 14 SEQUENCE:2 | |
| 15 UID:foobar | |
| 16 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 17 ORGANIZER:mailto:bar@example.org | |
| 18 END:VEVENT | |
| 19 END:VCALENDAR | |
| 20 ICS; | |
| 21 | |
| 22 $old = null; | |
| 23 $expected = null; | |
| 24 | |
| 25 $result = $this->process($itip, $old, $expected); | |
| 26 | |
| 27 } | |
| 28 | |
| 29 function testReplyAccept() { | |
| 30 | |
| 31 $itip = <<<ICS | |
| 32 BEGIN:VCALENDAR | |
| 33 VERSION:2.0 | |
| 34 METHOD:REPLY | |
| 35 BEGIN:VEVENT | |
| 36 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 37 ORGANIZER:mailto:bar@example.org | |
| 38 SEQUENCE:2 | |
| 39 UID:foobar | |
| 40 END:VEVENT | |
| 41 END:VCALENDAR | |
| 42 ICS; | |
| 43 | |
| 44 $old = <<<ICS | |
| 45 BEGIN:VCALENDAR | |
| 46 VERSION:2.0 | |
| 47 BEGIN:VEVENT | |
| 48 SEQUENCE:2 | |
| 49 UID:foobar | |
| 50 ATTENDEE:mailto:foo@example.org | |
| 51 ORGANIZER:mailto:bar@example.org | |
| 52 END:VEVENT | |
| 53 END:VCALENDAR | |
| 54 ICS; | |
| 55 | |
| 56 $expected = <<<ICS | |
| 57 BEGIN:VCALENDAR | |
| 58 VERSION:2.0 | |
| 59 BEGIN:VEVENT | |
| 60 SEQUENCE:2 | |
| 61 UID:foobar | |
| 62 ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:foo@example.org | |
| 63 ORGANIZER:mailto:bar@example.org | |
| 64 END:VEVENT | |
| 65 END:VCALENDAR | |
| 66 ICS; | |
| 67 | |
| 68 $result = $this->process($itip, $old, $expected); | |
| 69 | |
| 70 } | |
| 71 | |
| 72 function testReplyRequestStatus() { | |
| 73 | |
| 74 $itip = <<<ICS | |
| 75 BEGIN:VCALENDAR | |
| 76 VERSION:2.0 | |
| 77 METHOD:REPLY | |
| 78 BEGIN:VEVENT | |
| 79 UID:foobar | |
| 80 REQUEST-STATUS:2.3;foo-bar! | |
| 81 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 82 ORGANIZER:mailto:bar@example.org | |
| 83 SEQUENCE:2 | |
| 84 UID:foobar | |
| 85 END:VEVENT | |
| 86 END:VCALENDAR | |
| 87 ICS; | |
| 88 | |
| 89 $old = <<<ICS | |
| 90 BEGIN:VCALENDAR | |
| 91 VERSION:2.0 | |
| 92 BEGIN:VEVENT | |
| 93 UID:foobar | |
| 94 SEQUENCE:2 | |
| 95 ATTENDEE:mailto:foo@example.org | |
| 96 ORGANIZER:mailto:bar@example.org | |
| 97 END:VEVENT | |
| 98 END:VCALENDAR | |
| 99 ICS; | |
| 100 | |
| 101 $expected = <<<ICS | |
| 102 BEGIN:VCALENDAR | |
| 103 VERSION:2.0 | |
| 104 BEGIN:VEVENT | |
| 105 UID:foobar | |
| 106 SEQUENCE:2 | |
| 107 ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.3:mailto:foo@example.org | |
| 108 ORGANIZER:mailto:bar@example.org | |
| 109 END:VEVENT | |
| 110 END:VCALENDAR | |
| 111 ICS; | |
| 112 | |
| 113 $result = $this->process($itip, $old, $expected); | |
| 114 | |
| 115 } | |
| 116 | |
| 117 | |
| 118 function testReplyPartyCrasher() { | |
| 119 | |
| 120 $itip = <<<ICS | |
| 121 BEGIN:VCALENDAR | |
| 122 VERSION:2.0 | |
| 123 METHOD:REPLY | |
| 124 BEGIN:VEVENT | |
| 125 ATTENDEE;PARTSTAT=ACCEPTED:mailto:crasher@example.org | |
| 126 ORGANIZER:mailto:bar@example.org | |
| 127 SEQUENCE:2 | |
| 128 UID:foobar | |
| 129 END:VEVENT | |
| 130 END:VCALENDAR | |
| 131 ICS; | |
| 132 | |
| 133 $old = <<<ICS | |
| 134 BEGIN:VCALENDAR | |
| 135 VERSION:2.0 | |
| 136 BEGIN:VEVENT | |
| 137 SEQUENCE:2 | |
| 138 UID:foobar | |
| 139 ATTENDEE:mailto:foo@example.org | |
| 140 ORGANIZER:mailto:bar@example.org | |
| 141 END:VEVENT | |
| 142 END:VCALENDAR | |
| 143 ICS; | |
| 144 | |
| 145 $expected = <<<ICS | |
| 146 BEGIN:VCALENDAR | |
| 147 VERSION:2.0 | |
| 148 BEGIN:VEVENT | |
| 149 SEQUENCE:2 | |
| 150 UID:foobar | |
| 151 ATTENDEE:mailto:foo@example.org | |
| 152 ORGANIZER:mailto:bar@example.org | |
| 153 ATTENDEE;PARTSTAT=ACCEPTED:mailto:crasher@example.org | |
| 154 END:VEVENT | |
| 155 END:VCALENDAR | |
| 156 ICS; | |
| 157 | |
| 158 $result = $this->process($itip, $old, $expected); | |
| 159 | |
| 160 } | |
| 161 | |
| 162 function testReplyNewException() { | |
| 163 | |
| 164 // This is a reply to 1 instance of a recurring event. This should | |
| 165 // automatically create an exception. | |
| 166 $itip = <<<ICS | |
| 167 BEGIN:VCALENDAR | |
| 168 VERSION:2.0 | |
| 169 METHOD:REPLY | |
| 170 BEGIN:VEVENT | |
| 171 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 172 ORGANIZER:mailto:bar@example.org | |
| 173 SEQUENCE:2 | |
| 174 RECURRENCE-ID:20140725T000000Z | |
| 175 UID:foobar | |
| 176 END:VEVENT | |
| 177 END:VCALENDAR | |
| 178 ICS; | |
| 179 | |
| 180 $old = <<<ICS | |
| 181 BEGIN:VCALENDAR | |
| 182 VERSION:2.0 | |
| 183 BEGIN:VEVENT | |
| 184 SEQUENCE:2 | |
| 185 UID:foobar | |
| 186 RRULE:FREQ=DAILY | |
| 187 DTSTART:20140724T000000Z | |
| 188 ATTENDEE:mailto:foo@example.org | |
| 189 ORGANIZER:mailto:bar@example.org | |
| 190 END:VEVENT | |
| 191 END:VCALENDAR | |
| 192 ICS; | |
| 193 | |
| 194 $expected = <<<ICS | |
| 195 BEGIN:VCALENDAR | |
| 196 VERSION:2.0 | |
| 197 BEGIN:VEVENT | |
| 198 SEQUENCE:2 | |
| 199 UID:foobar | |
| 200 RRULE:FREQ=DAILY | |
| 201 DTSTART:20140724T000000Z | |
| 202 ATTENDEE:mailto:foo@example.org | |
| 203 ORGANIZER:mailto:bar@example.org | |
| 204 END:VEVENT | |
| 205 BEGIN:VEVENT | |
| 206 SEQUENCE:2 | |
| 207 UID:foobar | |
| 208 DTSTART:20140725T000000Z | |
| 209 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 210 ORGANIZER:mailto:bar@example.org | |
| 211 RECURRENCE-ID:20140725T000000Z | |
| 212 END:VEVENT | |
| 213 END:VCALENDAR | |
| 214 ICS; | |
| 215 | |
| 216 $result = $this->process($itip, $old, $expected); | |
| 217 | |
| 218 } | |
| 219 | |
| 220 function testReplyNewExceptionTz() { | |
| 221 | |
| 222 // This is a reply to 1 instance of a recurring event. This should | |
| 223 // automatically create an exception. | |
| 224 $itip = <<<ICS | |
| 225 BEGIN:VCALENDAR | |
| 226 VERSION:2.0 | |
| 227 METHOD:REPLY | |
| 228 BEGIN:VEVENT | |
| 229 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 230 ORGANIZER:mailto:bar@example.org | |
| 231 SEQUENCE:2 | |
| 232 RECURRENCE-ID;TZID=America/Toronto:20140725T000000 | |
| 233 UID:foobar | |
| 234 END:VEVENT | |
| 235 END:VCALENDAR | |
| 236 ICS; | |
| 237 | |
| 238 $old = <<<ICS | |
| 239 BEGIN:VCALENDAR | |
| 240 VERSION:2.0 | |
| 241 BEGIN:VEVENT | |
| 242 SEQUENCE:2 | |
| 243 UID:foobar | |
| 244 RRULE:FREQ=DAILY | |
| 245 DTSTART;TZID=America/Toronto:20140724T000000 | |
| 246 ATTENDEE:mailto:foo@example.org | |
| 247 ORGANIZER:mailto:bar@example.org | |
| 248 END:VEVENT | |
| 249 END:VCALENDAR | |
| 250 ICS; | |
| 251 | |
| 252 $expected = <<<ICS | |
| 253 BEGIN:VCALENDAR | |
| 254 VERSION:2.0 | |
| 255 BEGIN:VEVENT | |
| 256 SEQUENCE:2 | |
| 257 UID:foobar | |
| 258 RRULE:FREQ=DAILY | |
| 259 DTSTART;TZID=America/Toronto:20140724T000000 | |
| 260 ATTENDEE:mailto:foo@example.org | |
| 261 ORGANIZER:mailto:bar@example.org | |
| 262 END:VEVENT | |
| 263 BEGIN:VEVENT | |
| 264 SEQUENCE:2 | |
| 265 UID:foobar | |
| 266 DTSTART;TZID=America/Toronto:20140725T000000 | |
| 267 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 268 ORGANIZER:mailto:bar@example.org | |
| 269 RECURRENCE-ID;TZID=America/Toronto:20140725T000000 | |
| 270 END:VEVENT | |
| 271 END:VCALENDAR | |
| 272 ICS; | |
| 273 | |
| 274 $result = $this->process($itip, $old, $expected); | |
| 275 | |
| 276 } | |
| 277 | |
| 278 function testReplyPartyCrashCreateExcepton() { | |
| 279 | |
| 280 // IN this test there's a recurring event that has an exception. The | |
| 281 // exception is missing the attendee. | |
| 282 // | |
| 283 // The attendee party crashes the instance, so it should show up in the | |
| 284 // resulting object. | |
| 285 $itip = <<<ICS | |
| 286 BEGIN:VCALENDAR | |
| 287 VERSION:2.0 | |
| 288 METHOD:REPLY | |
| 289 BEGIN:VEVENT | |
| 290 ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org | |
| 291 ORGANIZER:mailto:bar@example.org | |
| 292 SEQUENCE:2 | |
| 293 RECURRENCE-ID:20140725T000000Z | |
| 294 UID:foobar | |
| 295 END:VEVENT | |
| 296 END:VCALENDAR | |
| 297 ICS; | |
| 298 | |
| 299 $old = <<<ICS | |
| 300 BEGIN:VCALENDAR | |
| 301 VERSION:2.0 | |
| 302 BEGIN:VEVENT | |
| 303 SEQUENCE:2 | |
| 304 UID:foobar | |
| 305 RRULE:FREQ=DAILY | |
| 306 DTSTART:20140724T000000Z | |
| 307 ORGANIZER:mailto:bar@example.org | |
| 308 END:VEVENT | |
| 309 END:VCALENDAR | |
| 310 ICS; | |
| 311 | |
| 312 $expected = <<<ICS | |
| 313 BEGIN:VCALENDAR | |
| 314 VERSION:2.0 | |
| 315 BEGIN:VEVENT | |
| 316 SEQUENCE:2 | |
| 317 UID:foobar | |
| 318 RRULE:FREQ=DAILY | |
| 319 DTSTART:20140724T000000Z | |
| 320 ORGANIZER:mailto:bar@example.org | |
| 321 END:VEVENT | |
| 322 BEGIN:VEVENT | |
| 323 SEQUENCE:2 | |
| 324 UID:foobar | |
| 325 DTSTART:20140725T000000Z | |
| 326 ORGANIZER:mailto:bar@example.org | |
| 327 RECURRENCE-ID:20140725T000000Z | |
| 328 ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org | |
| 329 END:VEVENT | |
| 330 END:VCALENDAR | |
| 331 ICS; | |
| 332 | |
| 333 $result = $this->process($itip, $old, $expected); | |
| 334 | |
| 335 } | |
| 336 | |
| 337 function testReplyNewExceptionNoMasterEvent() { | |
| 338 | |
| 339 /** | |
| 340 * This iTip message would normally create a new exception, but the | |
| 341 * server is not able to create this new instance, because there's no | |
| 342 * master event to clone from. | |
| 343 * | |
| 344 * This test checks if the message is ignored. | |
| 345 */ | |
| 346 $itip = <<<ICS | |
| 347 BEGIN:VCALENDAR | |
| 348 VERSION:2.0 | |
| 349 METHOD:REPLY | |
| 350 BEGIN:VEVENT | |
| 351 ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org | |
| 352 ORGANIZER:mailto:bar@example.org | |
| 353 SEQUENCE:2 | |
| 354 RECURRENCE-ID:20140725T000000Z | |
| 355 UID:foobar | |
| 356 END:VEVENT | |
| 357 END:VCALENDAR | |
| 358 ICS; | |
| 359 | |
| 360 $old = <<<ICS | |
| 361 BEGIN:VCALENDAR | |
| 362 VERSION:2.0 | |
| 363 BEGIN:VEVENT | |
| 364 SEQUENCE:2 | |
| 365 UID:foobar | |
| 366 RRULE:FREQ=DAILY | |
| 367 DTSTART:20140724T000000Z | |
| 368 RECURRENCE-ID:20140724T000000Z | |
| 369 ORGANIZER:mailto:bar@example.org | |
| 370 END:VEVENT | |
| 371 END:VCALENDAR | |
| 372 ICS; | |
| 373 | |
| 374 $expected = null; | |
| 375 $result = $this->process($itip, $old, $expected); | |
| 376 | |
| 377 } | |
| 378 | |
| 379 /** | |
| 380 * @depends testReplyAccept | |
| 381 */ | |
| 382 function testReplyAcceptUpdateRSVP() { | |
| 383 | |
| 384 $itip = <<<ICS | |
| 385 BEGIN:VCALENDAR | |
| 386 VERSION:2.0 | |
| 387 METHOD:REPLY | |
| 388 BEGIN:VEVENT | |
| 389 ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org | |
| 390 ORGANIZER:mailto:bar@example.org | |
| 391 SEQUENCE:2 | |
| 392 UID:foobar | |
| 393 END:VEVENT | |
| 394 END:VCALENDAR | |
| 395 ICS; | |
| 396 | |
| 397 $old = <<<ICS | |
| 398 BEGIN:VCALENDAR | |
| 399 VERSION:2.0 | |
| 400 BEGIN:VEVENT | |
| 401 SEQUENCE:2 | |
| 402 UID:foobar | |
| 403 ATTENDEE;RSVP=TRUE:mailto:foo@example.org | |
| 404 ORGANIZER:mailto:bar@example.org | |
| 405 END:VEVENT | |
| 406 END:VCALENDAR | |
| 407 ICS; | |
| 408 | |
| 409 $expected = <<<ICS | |
| 410 BEGIN:VCALENDAR | |
| 411 VERSION:2.0 | |
| 412 BEGIN:VEVENT | |
| 413 SEQUENCE:2 | |
| 414 UID:foobar | |
| 415 ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:foo@example.org | |
| 416 ORGANIZER:mailto:bar@example.org | |
| 417 END:VEVENT | |
| 418 END:VCALENDAR | |
| 419 ICS; | |
| 420 | |
| 421 $result = $this->process($itip, $old, $expected); | |
| 422 | |
| 423 } | |
| 424 | |
| 425 } |
