xref: /plugin/davcal/vendor/sabre/vobject/tests/VObject/Property/TextTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\VObject\Property;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehleruse Sabre\VObject\Component\VCard;
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehlerclass TextTest extends \PHPUnit_Framework_TestCase {
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler    function assertVCard21serialization($propValue, $expected) {
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehler        $doc = new VCard(array(
12*a1a3b679SAndreas Boehler            'VERSION'=>'2.1',
13*a1a3b679SAndreas Boehler            'PROP' => $propValue
14*a1a3b679SAndreas Boehler        ), false);
15*a1a3b679SAndreas Boehler
16*a1a3b679SAndreas Boehler        // Adding quoted-printable, because we're testing if it gets removed
17*a1a3b679SAndreas Boehler        // automatically.
18*a1a3b679SAndreas Boehler        $doc->PROP['ENCODING'] = 'QUOTED-PRINTABLE';
19*a1a3b679SAndreas Boehler        $doc->PROP['P1'] = 'V1';
20*a1a3b679SAndreas Boehler
21*a1a3b679SAndreas Boehler
22*a1a3b679SAndreas Boehler        $output = $doc->serialize();
23*a1a3b679SAndreas Boehler
24*a1a3b679SAndreas Boehler
25*a1a3b679SAndreas Boehler        $this->assertEquals("BEGIN:VCARD\r\nVERSION:2.1\r\n$expected\r\nEND:VCARD\r\n", $output);
26*a1a3b679SAndreas Boehler
27*a1a3b679SAndreas Boehler    }
28*a1a3b679SAndreas Boehler
29*a1a3b679SAndreas Boehler    function testSerializeVCard21() {
30*a1a3b679SAndreas Boehler
31*a1a3b679SAndreas Boehler        $this->assertVCard21Serialization(
32*a1a3b679SAndreas Boehler            'f;oo',
33*a1a3b679SAndreas Boehler            'PROP;P1=V1:f;oo'
34*a1a3b679SAndreas Boehler        );
35*a1a3b679SAndreas Boehler
36*a1a3b679SAndreas Boehler    }
37*a1a3b679SAndreas Boehler
38*a1a3b679SAndreas Boehler    function testSerializeVCard21Array() {
39*a1a3b679SAndreas Boehler
40*a1a3b679SAndreas Boehler        $this->assertVCard21Serialization(
41*a1a3b679SAndreas Boehler            array('f;oo','bar'),
42*a1a3b679SAndreas Boehler            'PROP;P1=V1:f\;oo;bar'
43*a1a3b679SAndreas Boehler        );
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler    }
46*a1a3b679SAndreas Boehler    function testSerializeVCard21Fold() {
47*a1a3b679SAndreas Boehler
48*a1a3b679SAndreas Boehler        $this->assertVCard21Serialization(
49*a1a3b679SAndreas Boehler            str_repeat('x',80),
50*a1a3b679SAndreas Boehler            'PROP;P1=V1:' . str_repeat('x',64) . "\r\n " . str_repeat('x',16)
51*a1a3b679SAndreas Boehler        );
52*a1a3b679SAndreas Boehler
53*a1a3b679SAndreas Boehler    }
54*a1a3b679SAndreas Boehler
55*a1a3b679SAndreas Boehler
56*a1a3b679SAndreas Boehler
57*a1a3b679SAndreas Boehler    function testSerializeQuotedPrintable() {
58*a1a3b679SAndreas Boehler
59*a1a3b679SAndreas Boehler        $this->assertVCard21Serialization(
60*a1a3b679SAndreas Boehler            "foo\r\nbar",
61*a1a3b679SAndreas Boehler            'PROP;P1=V1;ENCODING=QUOTED-PRINTABLE:foo=0D=0Abar'
62*a1a3b679SAndreas Boehler        );
63*a1a3b679SAndreas Boehler    }
64*a1a3b679SAndreas Boehler
65*a1a3b679SAndreas Boehler    function testSerializeQuotedPrintableFold() {
66*a1a3b679SAndreas Boehler
67*a1a3b679SAndreas Boehler        $this->assertVCard21Serialization(
68*a1a3b679SAndreas Boehler            "foo\r\nbarxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
69*a1a3b679SAndreas Boehler            "PROP;P1=V1;ENCODING=QUOTED-PRINTABLE:foo=0D=0Abarxxxxxxxxxxxxxxxxxxxxxxxxxx=\r\n xxx"
70*a1a3b679SAndreas Boehler        );
71*a1a3b679SAndreas Boehler
72*a1a3b679SAndreas Boehler    }
73*a1a3b679SAndreas Boehler
74*a1a3b679SAndreas Boehler    function testValidateMinimumPropValue() {
75*a1a3b679SAndreas Boehler
76*a1a3b679SAndreas Boehler        $vcard = <<<IN
77*a1a3b679SAndreas BoehlerBEGIN:VCARD
78*a1a3b679SAndreas BoehlerVERSION:4.0
79*a1a3b679SAndreas BoehlerUID:foo
80*a1a3b679SAndreas BoehlerFN:Hi!
81*a1a3b679SAndreas BoehlerN:A
82*a1a3b679SAndreas BoehlerEND:VCARD
83*a1a3b679SAndreas BoehlerIN;
84*a1a3b679SAndreas Boehler
85*a1a3b679SAndreas Boehler        $vcard = \Sabre\VObject\Reader::read($vcard);
86*a1a3b679SAndreas Boehler        $this->assertEquals(1, count($vcard->validate()));
87*a1a3b679SAndreas Boehler
88*a1a3b679SAndreas Boehler        $this->assertEquals(1, count($vcard->N->getParts()));
89*a1a3b679SAndreas Boehler
90*a1a3b679SAndreas Boehler        $vcard->validate(\Sabre\VObject\Node::REPAIR);
91*a1a3b679SAndreas Boehler
92*a1a3b679SAndreas Boehler        $this->assertEquals(5, count($vcard->N->getParts()));
93*a1a3b679SAndreas Boehler
94*a1a3b679SAndreas Boehler    }
95*a1a3b679SAndreas Boehler
96*a1a3b679SAndreas Boehler}
97