adds test class for calendar caldav client
[tine20] / tests / tine20 / Calendar / Import / CalDAVTest.php
1 <?php
2 /**
3  * Tine 2.0 - http://www.tine20.org
4  * 
5  * @package     Calendar
6  * @license     http://www.gnu.org/licenses/agpl.html
7  * @copyright   Copyright (c) 2014 Metaways Infosystems GmbH (http://www.metaways.de)
8  * @author      Philipp Schüle <p.schuele@metaways.de>
9  * 
10  */
11
12 /**
13  * Test class for Calendar_Import_CalDAV
14  */
15 class Calendar_Import_CalDAVTest extends Calendar_TestCase
16 {
17     /**
18      * unit in test
19      *
20      * @var Calendar_Import_CalDav_Client
21      */
22     protected $_uit = null;
23     
24     /**
25      * lazy init of uit
26      *
27      * @return Calendar_Import_CalDav_Client
28      */
29     protected function _getUit()
30     {
31         if ($this->_uit === null) {
32             $caldavClientOptions = array(
33                 'baseUri' => 'localhost',
34                 'userName' => Tinebase_Core::getUser()->accountLoginName,
35                 'password' => Zend_Registry::get('testConfig')->password, // TODO use credential cache?
36             );
37             $this->_uit = new Calendar_Import_CalDAV_ClientMock($caldavClientOptions, 'MacOSX');
38             $this->_uit->setVerifyPeer(false);
39         }
40         
41         return $this->_uit;
42     }
43     
44     /**
45      * test import of a single container/calendar of current user
46      * 
47      * @todo uuid needs to be changed as we need different uuids for tasks + events
48      */
49     public function testImportCalendars()
50     {
51         $this->_getUit()->importAllCalendars();
52         $calendarUuid = sha1('/calendars/__uids__/0AA03A3B-F7B6-459A-AB3E-4726E53637D0/calendar/');
53         $importedCalendar = Tinebase_Container::getInstance()->getByProperty($calendarUuid, 'uuid');
54         
55         $this->assertEquals('calendar', $importedCalendar->name);
56         $this->assertEquals('Calendar_Model_Event', $importedCalendar->model, print_r($importedCalendar->toArray(), true));
57         $this->assertEquals( Tinebase_Core::getUser()->getId(), $importedCalendar->owner_id, print_r($importedCalendar->toArray(), true));
58     }
59     
60     public function testImportEvents()
61     {
62         $this->markTestIncomplete('TODO: finish test');
63         $this->_getUit()->importAllCalendarData();
64         // @todo add assertions
65     }
66     
67     public function testUpdateEvents()
68     {
69         $this->markTestIncomplete('TODO: finish test');
70         $this->testImport();
71         // @todo change some events
72         $this->_getUit()->updateAllCalendarData();
73         // @todo add assertions
74     }
75 }