Mercurial > hg > rc1
diff vendor/sabre/vobject/tests/VObject/ParameterTest.php @ 7:430dbd5346f7
vendor sabre as distributed
| author | Charlie Root |
|---|---|
| date | Sat, 13 Jan 2018 09:06:10 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/sabre/vobject/tests/VObject/ParameterTest.php Sat Jan 13 09:06:10 2018 -0500 @@ -0,0 +1,135 @@ +<?php + +namespace Sabre\VObject; + +class ParameterTest extends \PHPUnit_Framework_TestCase { + + function testSetup() { + + $cal = new Component\VCalendar(); + + $param = new Parameter($cal, 'name','value'); + $this->assertEquals('NAME',$param->name); + $this->assertEquals('value',$param->getValue()); + + } + + function testSetupNameLess() { + + $card = new Component\VCard(); + + $param = new Parameter($card, null,'URL'); + $this->assertEquals('VALUE',$param->name); + $this->assertEquals('URL',$param->getValue()); + $this->assertTrue($param->noName); + + } + + function testModify() { + + $cal = new Component\VCalendar(); + + $param = new Parameter($cal, 'name', null); + $param->addValue(1); + $this->assertEquals(array(1), $param->getParts()); + + $param->setParts(array(1,2)); + $this->assertEquals(array(1,2), $param->getParts()); + + $param->addValue(3); + $this->assertEquals(array(1,2,3), $param->getParts()); + + $param->setValue(4); + $param->addValue(5); + $this->assertEquals(array(4,5), $param->getParts()); + + } + + function testCastToString() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name', 'value'); + $this->assertEquals('value',$param->__toString()); + $this->assertEquals('value',(string)$param); + + } + + function testCastNullToString() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name', null); + $this->assertEquals('',$param->__toString()); + $this->assertEquals('',(string)$param); + + } + + function testSerialize() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name', 'value'); + $this->assertEquals('NAME=value',$param->serialize()); + + } + + function testSerializeEmpty() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name', null); + $this->assertEquals('NAME=',$param->serialize()); + + } + + function testSerializeComplex() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name',array("val1", "val2;", "val3^", "val4\n", "val5\"")); + $this->assertEquals('NAME=val1,"val2;","val3^^","val4^n","val5^\'"',$param->serialize()); + + } + + /** + * iCal 7.0 (OSX 10.9) has major issues with the EMAIL property, when the + * value contains a plus sign, and it's not quoted. + * + * So we specifically added support for that. + */ + function testSerializePlusSign() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'EMAIL',"user+something@example.org"); + $this->assertEquals('EMAIL="user+something@example.org"',$param->serialize()); + + } + + function testIterate() { + + $cal = new Component\VCalendar(); + + $param = new Parameter($cal, 'name', array(1,2,3,4)); + $result = array(); + + foreach($param as $value) { + $result[] = $value; + } + + $this->assertEquals(array(1,2,3,4), $result); + + } + + function testSerializeColon() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name','va:lue'); + $this->assertEquals('NAME="va:lue"',$param->serialize()); + + } + + function testSerializeSemiColon() { + + $cal = new Component\VCalendar(); + $param = new Parameter($cal, 'name','va;lue'); + $this->assertEquals('NAME="va;lue"',$param->serialize()); + + } + +}
