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