7
|
1 <?php
|
|
2
|
|
3 namespace Sabre\VObject\ITip;
|
|
4
|
|
5 use Sabre\VObject\Reader;
|
|
6
|
|
7 /**
|
|
8 * Utilities for testing the broker
|
|
9 *
|
|
10 * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/).
|
|
11 * @author Evert Pot (http://evertpot.com/)
|
|
12 * @license http://sabre.io/license/ Modified BSD License
|
|
13 */
|
|
14 abstract class BrokerTester extends \PHPUnit_Framework_TestCase {
|
|
15
|
|
16 function parse($oldMessage, $newMessage, $expected = array(), $currentUser = 'mailto:one@example.org') {
|
|
17
|
|
18 $broker = new Broker();
|
|
19 $result = $broker->parseEvent($newMessage, $currentUser, $oldMessage);
|
|
20
|
|
21 $this->assertEquals(count($expected), count($result));
|
|
22
|
|
23 foreach($expected as $index=>$ex) {
|
|
24
|
|
25 $message = $result[$index];
|
|
26
|
|
27 foreach($ex as $key=>$val) {
|
|
28
|
|
29 if ($key==='message') {
|
|
30 $this->assertEquals(
|
|
31 str_replace("\n", "\r\n", $val),
|
|
32 rtrim($message->message->serialize(), "\r\n")
|
|
33 );
|
|
34 } else {
|
|
35 $this->assertEquals($val, $message->$key);
|
|
36 }
|
|
37
|
|
38 }
|
|
39
|
|
40 }
|
|
41
|
|
42 }
|
|
43
|
|
44 function process($input, $existingObject = null, $expected = false) {
|
|
45
|
|
46 $version = \Sabre\VObject\Version::VERSION;
|
|
47
|
|
48 $vcal = Reader::read($input);
|
|
49
|
|
50 foreach($vcal->getComponents() as $mainComponent) {
|
|
51 break;
|
|
52 }
|
|
53
|
|
54 $message = new Message();
|
|
55 $message->message = $vcal;
|
|
56 $message->method = isset($vcal->METHOD)?$vcal->METHOD->getValue():null;
|
|
57 $message->component = $mainComponent->name;
|
|
58 $message->uid = $mainComponent->uid->getValue();
|
|
59 $message->sequence = isset($vcal->VEVENT[0])?(string)$vcal->VEVENT[0]->SEQUENCE:null;
|
|
60
|
|
61 if ($message->method === 'REPLY') {
|
|
62
|
|
63 $message->sender = $mainComponent->ATTENDEE->getValue();
|
|
64 $message->senderName = isset($mainComponent->ATTENDEE['CN'])?$mainComponent->ATTENDEE['CN']->getValue():null;
|
|
65 $message->recipient = $mainComponent->ORGANIZER->getValue();
|
|
66 $message->recipientName = isset($mainComponent->ORGANIZER['CN'])?$mainComponent->ORGANIZER['CN']:null;
|
|
67
|
|
68 }
|
|
69
|
|
70 $broker = new Broker();
|
|
71
|
|
72 if (is_string($existingObject)) {
|
|
73 $existingObject = str_replace(
|
|
74 '%foo%',
|
|
75 "VERSION:2.0\nPRODID:-//Sabre//Sabre VObject $version//EN\nCALSCALE:GREGORIAN",
|
|
76 $existingObject
|
|
77 );
|
|
78 $existingObject = Reader::read($existingObject);
|
|
79 }
|
|
80
|
|
81 $result = $broker->processMessage($message, $existingObject);
|
|
82
|
|
83 if (is_string($expected)) {
|
|
84 $expected = str_replace(
|
|
85 '%foo%',
|
|
86 "VERSION:2.0\nPRODID:-//Sabre//Sabre VObject $version//EN\nCALSCALE:GREGORIAN",
|
|
87 $expected
|
|
88 );
|
|
89 $expected = str_replace("\n", "\r\n", $expected);
|
|
90
|
|
91 }
|
|
92 if ($result instanceof \Sabre\VObject\Component\VCalendar) {
|
|
93 $result = $result->serialize();
|
|
94 $result = rtrim($result,"\r\n");
|
|
95 }
|
|
96
|
|
97 $this->assertEquals(
|
|
98 $expected,
|
|
99 $result
|
|
100 );
|
|
101
|
|
102 }
|
|
103 }
|