1<?php 2 3namespace Sabre\VObject; 4 5use PHPUnit\Framework\TestCase; 6 7class DocumentTest extends TestCase 8{ 9 public function testGetDocumentType() 10 { 11 $doc = new MockDocument(); 12 $this->assertEquals(Document::UNKNOWN, $doc->getDocumentType()); 13 } 14 15 public function testConstruct() 16 { 17 $doc = new MockDocument('VLIST'); 18 $this->assertEquals('VLIST', $doc->name); 19 } 20 21 public function testCreateComponent() 22 { 23 $vcal = new Component\VCalendar([], false); 24 25 $event = $vcal->createComponent('VEVENT'); 26 27 $this->assertInstanceOf('Sabre\VObject\Component\VEvent', $event); 28 $vcal->add($event); 29 30 $prop = $vcal->createProperty('X-PROP', '1234256', ['X-PARAM' => '3']); 31 $this->assertInstanceOf('Sabre\VObject\Property', $prop); 32 33 $event->add($prop); 34 35 unset( 36 $event->DTSTAMP, 37 $event->UID 38 ); 39 40 $out = $vcal->serialize(); 41 $this->assertEquals("BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nX-PROP;X-PARAM=3:1234256\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n", $out); 42 } 43 44 public function testCreate() 45 { 46 $vcal = new Component\VCalendar([], false); 47 48 $event = $vcal->create('VEVENT'); 49 $this->assertInstanceOf('Sabre\VObject\Component\VEvent', $event); 50 51 $prop = $vcal->create('CALSCALE'); 52 $this->assertInstanceOf('Sabre\VObject\Property\Text', $prop); 53 } 54 55 public function testGetClassNameForPropertyValue() 56 { 57 $vcal = new Component\VCalendar([], false); 58 $this->assertEquals('Sabre\\VObject\\Property\\Text', $vcal->getClassNameForPropertyValue('TEXT')); 59 $this->assertNull($vcal->getClassNameForPropertyValue('FOO')); 60 } 61 62 public function testDestroy() 63 { 64 $vcal = new Component\VCalendar([], false); 65 $event = $vcal->createComponent('VEVENT'); 66 67 $this->assertInstanceOf('Sabre\VObject\Component\VEvent', $event); 68 $vcal->add($event); 69 70 $prop = $vcal->createProperty('X-PROP', '1234256', ['X-PARAM' => '3']); 71 72 $event->add($prop); 73 74 $this->assertEquals($event, $prop->parent); 75 76 $vcal->destroy(); 77 78 $this->assertNull($prop->parent); 79 } 80} 81 82class MockDocument extends Document 83{ 84} 85