3
* @author Jan Schneider <jan@horde.org>
4
* @license http://www.horde.org/licenses/apache Apache-like
7
* @subpackage UnitTests
9
class Turba_Unit_ExportTest extends Turba_TestCase
11
public static function setUpBeforeClass()
13
self::createBasicTurbaSetup(new Horde_Test_Setup());
14
parent::setUpBeforeClass();
15
setlocale(LC_MESSAGES, 'C');
18
public static function tearDownAfterClass()
20
self::tearDownBasicTurbaSetup();
21
parent::tearDownAfterClass();
22
setlocale(LC_MESSAGES, null);
25
public function setUp()
27
$this->contact = array(
28
'name' => 'Jan Schneiderö',
29
'namePrefix' => 'Mr.',
31
'middlenames' => 'K.',
32
'lastname' => 'Schneiderö',
33
'email' => 'jan@horde.org',
35
'homeAddress' => 'Schönestr. 15
37
'workStreet' => 'Hübschestr. 19',
39
'workProvince' => 'Allgäu',
40
'workPostalcode' => '33602',
41
'workCountry' => 'DK',
42
'homePhone' => '+49 521 555123',
43
'workPhone' => '+49 521 555456',
44
'cellPhone' => '+49 177 555123',
45
'fax' => '+49 521 555789',
46
'pager' => '+49 123 555789',
47
'birthday' => '1971-10-01',
48
'title' => 'Senior Developer (äöü)',
49
'role' => 'Developer (äöü)',
50
'company' => 'Horde Project',
51
'department' => 'äöü',
52
'notes' => 'A German guy (äöü)',
53
'website' => 'http://janschneider.de',
54
'timezone' => 'Europe/Berlin',
55
'latitude' => '52.516276',
56
'longitude' => '13.377778',
57
'photo' => file_get_contents(__DIR__ . '/../fixtures/az.png'),
58
'phototype' => 'image/png',
60
$this->driver = new Turba_Driver();
61
$this->object = new Turba_Object($this->driver, $this->contact);
64
public function testExportVcard21()
66
$vcard = $this->driver->tovCard($this->object, '2.1');
70
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Jan Schneider=C3=B6
71
EMAIL;INTERNET:jan@horde.org
73
X-EPOCSECONDNAME:yunosh
74
LABEL;HOME;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:Sch=C3=B6nestr. 15=0D=0A=
76
TEL;HOME;VOICE:+49 521 555123
77
TEL;WORK;VOICE:+49 521 555456
78
TEL;CELL;VOICE:+49 177 555123
79
TEL;FAX:+49 521 555789
80
TEL;PAGER:+49 123 555789
82
TITLE;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Senior Developer (=C3=A4=C3=B6=C3=BC)
83
ROLE;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Developer (=C3=A4=C3=B6=C3=BC)
84
NOTE;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:A German guy (=C3=A4=C3=B6=C3=BC)
85
URL:http://janschneider.de
86
TZ;VALUE=text:Europe/Berlin
87
GEO:13.377778,52.516276
88
PHOTO;ENCODING=b;TYPE=image/png:iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAgMAAACd/+6DAAAACVBMVEW6ABZmZmYAAACMtcxCAAAAAXRSTlMAQObYZgAAABlJREFUeAFjAIMGBiZGAQhmYYFgAUYwBgEAFWYA4dv5cHYAAAAASUVORK5CYII=
89
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Schneider=C3=B6;Jan;K.;Mr.;
90
ORG;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Horde Project;=C3=A4=C3=B6=C3=BC
91
ADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;Sch=C3=B6nestr. 15=0D=0A=
93
ADR;WORK;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;H=C3=BCbschestr. 19;K=C3=B6ln;Allg=C3=A4u;;Denmark
96
$vcard->exportvCalendar());
99
public function testExportVcard30()
101
$vcard = $this->driver->tovCard($this->object, '3.0');
106
EMAIL;TYPE=INTERNET:jan@horde.org
108
X-EPOCSECONDNAME:yunosh
109
LABEL;TYPE=HOME:Schönestr. 15\n33604 Bielefeld
110
TEL;TYPE=HOME,VOICE:+49 521 555123
111
TEL;TYPE=WORK,VOICE:+49 521 555456
112
TEL;TYPE=CELL,VOICE:+49 177 555123
113
TEL;TYPE=FAX:+49 521 555789
114
TEL;TYPE=PAGER:+49 123 555789
116
TITLE:Senior Developer (äöü)
118
NOTE:A German guy (äöü)
119
URL:http://janschneider.de
120
TZ;VALUE=text:Europe/Berlin
121
GEO:52.516276;13.377778
122
PHOTO;ENCODING=b;TYPE=image/png:iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAgMAAACd/+6
123
DAAAACVBMVEW6ABZmZmYAAACMtcxCAAAAAXRSTlMAQObYZgAAABlJREFUeAFjAIMGBiZGAQhmYY
124
FgAUYwBgEAFWYA4dv5cHYAAAAASUVORK5CYII=
125
N:Schneiderö;Jan;K.;Mr.;
126
ORG:Horde Project;äöü
127
ADR;TYPE=HOME:;;Schönestr. 15\n33604 Bielefeld;;;;
128
ADR;TYPE=WORK:;;Hübschestr. 19;Köln;Allgäu;;Denmark
131
$vcard->exportvCalendar());
134
public function testExportBug9207()
136
$driver = clone $this->driver;
137
$driver->alternativeName = 'company';
138
$driver->map['name'] = array(
139
'fields' => array('namePrefix', 'firstname', 'middlenames',
140
'lastname', 'nameSuffix'),
141
'format' => '%s %s %s %s %s');
142
$contact = $this->contact;
143
unset($contact['name']);
144
$object = new Turba_Object($driver, $contact);
145
$vcard = $this->driver->tovCard($object, '3.0');
149
EMAIL;TYPE=INTERNET:jan@horde.org
151
X-EPOCSECONDNAME:yunosh
152
LABEL;TYPE=HOME:Schönestr. 15\n33604 Bielefeld
153
TEL;TYPE=HOME,VOICE:+49 521 555123
154
TEL;TYPE=WORK,VOICE:+49 521 555456
155
TEL;TYPE=CELL,VOICE:+49 177 555123
156
TEL;TYPE=FAX:+49 521 555789
157
TEL;TYPE=PAGER:+49 123 555789
159
TITLE:Senior Developer (äöü)
161
NOTE:A German guy (äöü)
162
URL:http://janschneider.de
163
TZ;VALUE=text:Europe/Berlin
164
GEO:52.516276;13.377778
165
PHOTO;ENCODING=b;TYPE=image/png:iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAgMAAACd/+6
166
DAAAACVBMVEW6ABZmZmYAAACMtcxCAAAAAXRSTlMAQObYZgAAABlJREFUeAFjAIMGBiZGAQhmYY
167
FgAUYwBgEAFWYA4dv5cHYAAAAASUVORK5CYII=
168
N:Schneiderö;Jan;K.;Mr.;
169
FN:Mr. Jan K. Schneiderö
170
ORG:Horde Project;äöü
171
ADR;TYPE=HOME:;;Schönestr. 15\n33604 Bielefeld;;;;
172
ADR;TYPE=WORK:;;Hübschestr. 19;Köln;Allgäu;;Denmark
175
$vcard->exportvCalendar());
178
public function tearDown()