1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\VObject; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehlerclass ParameterTest extends \PHPUnit_Framework_TestCase { 6*a1a3b679SAndreas Boehler 7*a1a3b679SAndreas Boehler function testSetup() { 8*a1a3b679SAndreas Boehler 9*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 10*a1a3b679SAndreas Boehler 11*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name','value'); 12*a1a3b679SAndreas Boehler $this->assertEquals('NAME',$param->name); 13*a1a3b679SAndreas Boehler $this->assertEquals('value',$param->getValue()); 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler } 16*a1a3b679SAndreas Boehler 17*a1a3b679SAndreas Boehler function testSetupNameLess() { 18*a1a3b679SAndreas Boehler 19*a1a3b679SAndreas Boehler $card = new Component\VCard(); 20*a1a3b679SAndreas Boehler 21*a1a3b679SAndreas Boehler $param = new Parameter($card, null,'URL'); 22*a1a3b679SAndreas Boehler $this->assertEquals('VALUE',$param->name); 23*a1a3b679SAndreas Boehler $this->assertEquals('URL',$param->getValue()); 24*a1a3b679SAndreas Boehler $this->assertTrue($param->noName); 25*a1a3b679SAndreas Boehler 26*a1a3b679SAndreas Boehler } 27*a1a3b679SAndreas Boehler 28*a1a3b679SAndreas Boehler function testModify() { 29*a1a3b679SAndreas Boehler 30*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 31*a1a3b679SAndreas Boehler 32*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', null); 33*a1a3b679SAndreas Boehler $param->addValue(1); 34*a1a3b679SAndreas Boehler $this->assertEquals(array(1), $param->getParts()); 35*a1a3b679SAndreas Boehler 36*a1a3b679SAndreas Boehler $param->setParts(array(1,2)); 37*a1a3b679SAndreas Boehler $this->assertEquals(array(1,2), $param->getParts()); 38*a1a3b679SAndreas Boehler 39*a1a3b679SAndreas Boehler $param->addValue(3); 40*a1a3b679SAndreas Boehler $this->assertEquals(array(1,2,3), $param->getParts()); 41*a1a3b679SAndreas Boehler 42*a1a3b679SAndreas Boehler $param->setValue(4); 43*a1a3b679SAndreas Boehler $param->addValue(5); 44*a1a3b679SAndreas Boehler $this->assertEquals(array(4,5), $param->getParts()); 45*a1a3b679SAndreas Boehler 46*a1a3b679SAndreas Boehler } 47*a1a3b679SAndreas Boehler 48*a1a3b679SAndreas Boehler function testCastToString() { 49*a1a3b679SAndreas Boehler 50*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 51*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', 'value'); 52*a1a3b679SAndreas Boehler $this->assertEquals('value',$param->__toString()); 53*a1a3b679SAndreas Boehler $this->assertEquals('value',(string)$param); 54*a1a3b679SAndreas Boehler 55*a1a3b679SAndreas Boehler } 56*a1a3b679SAndreas Boehler 57*a1a3b679SAndreas Boehler function testCastNullToString() { 58*a1a3b679SAndreas Boehler 59*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 60*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', null); 61*a1a3b679SAndreas Boehler $this->assertEquals('',$param->__toString()); 62*a1a3b679SAndreas Boehler $this->assertEquals('',(string)$param); 63*a1a3b679SAndreas Boehler 64*a1a3b679SAndreas Boehler } 65*a1a3b679SAndreas Boehler 66*a1a3b679SAndreas Boehler function testSerialize() { 67*a1a3b679SAndreas Boehler 68*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 69*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', 'value'); 70*a1a3b679SAndreas Boehler $this->assertEquals('NAME=value',$param->serialize()); 71*a1a3b679SAndreas Boehler 72*a1a3b679SAndreas Boehler } 73*a1a3b679SAndreas Boehler 74*a1a3b679SAndreas Boehler function testSerializeEmpty() { 75*a1a3b679SAndreas Boehler 76*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 77*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', null); 78*a1a3b679SAndreas Boehler $this->assertEquals('NAME=',$param->serialize()); 79*a1a3b679SAndreas Boehler 80*a1a3b679SAndreas Boehler } 81*a1a3b679SAndreas Boehler 82*a1a3b679SAndreas Boehler function testSerializeComplex() { 83*a1a3b679SAndreas Boehler 84*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 85*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name',array("val1", "val2;", "val3^", "val4\n", "val5\"")); 86*a1a3b679SAndreas Boehler $this->assertEquals('NAME=val1,"val2;","val3^^","val4^n","val5^\'"',$param->serialize()); 87*a1a3b679SAndreas Boehler 88*a1a3b679SAndreas Boehler } 89*a1a3b679SAndreas Boehler 90*a1a3b679SAndreas Boehler /** 91*a1a3b679SAndreas Boehler * iCal 7.0 (OSX 10.9) has major issues with the EMAIL property, when the 92*a1a3b679SAndreas Boehler * value contains a plus sign, and it's not quoted. 93*a1a3b679SAndreas Boehler * 94*a1a3b679SAndreas Boehler * So we specifically added support for that. 95*a1a3b679SAndreas Boehler */ 96*a1a3b679SAndreas Boehler function testSerializePlusSign() { 97*a1a3b679SAndreas Boehler 98*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 99*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'EMAIL',"user+something@example.org"); 100*a1a3b679SAndreas Boehler $this->assertEquals('EMAIL="user+something@example.org"',$param->serialize()); 101*a1a3b679SAndreas Boehler 102*a1a3b679SAndreas Boehler } 103*a1a3b679SAndreas Boehler 104*a1a3b679SAndreas Boehler function testIterate() { 105*a1a3b679SAndreas Boehler 106*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 107*a1a3b679SAndreas Boehler 108*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name', array(1,2,3,4)); 109*a1a3b679SAndreas Boehler $result = array(); 110*a1a3b679SAndreas Boehler 111*a1a3b679SAndreas Boehler foreach($param as $value) { 112*a1a3b679SAndreas Boehler $result[] = $value; 113*a1a3b679SAndreas Boehler } 114*a1a3b679SAndreas Boehler 115*a1a3b679SAndreas Boehler $this->assertEquals(array(1,2,3,4), $result); 116*a1a3b679SAndreas Boehler 117*a1a3b679SAndreas Boehler } 118*a1a3b679SAndreas Boehler 119*a1a3b679SAndreas Boehler function testSerializeColon() { 120*a1a3b679SAndreas Boehler 121*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 122*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name','va:lue'); 123*a1a3b679SAndreas Boehler $this->assertEquals('NAME="va:lue"',$param->serialize()); 124*a1a3b679SAndreas Boehler 125*a1a3b679SAndreas Boehler } 126*a1a3b679SAndreas Boehler 127*a1a3b679SAndreas Boehler function testSerializeSemiColon() { 128*a1a3b679SAndreas Boehler 129*a1a3b679SAndreas Boehler $cal = new Component\VCalendar(); 130*a1a3b679SAndreas Boehler $param = new Parameter($cal, 'name','va;lue'); 131*a1a3b679SAndreas Boehler $this->assertEquals('NAME="va;lue"',$param->serialize()); 132*a1a3b679SAndreas Boehler 133*a1a3b679SAndreas Boehler } 134*a1a3b679SAndreas Boehler 135*a1a3b679SAndreas Boehler} 136