function testACLIntegrationNotBlocked()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('SQLite driver is not available');
     }
     $cbackend = Sabre_CalDAV_TestUtil::getBackend();
     $pbackend = new Sabre_DAVACL_MockPrincipalBackend();
     $props = array('uri' => 'UUID-123467', 'principaluri' => 'admin', 'id' => 1);
     $tree = array(new Sabre_CalDAV_Calendar($pbackend, $cbackend, $props), new Sabre_DAVACL_PrincipalCollection($pbackend));
     $p = new Sabre_CalDAV_ICSExportPlugin();
     $s = new Sabre_DAV_Server($tree);
     $s->addPlugin($p);
     $s->addPlugin(new Sabre_CalDAV_Plugin());
     $s->addPlugin(new Sabre_DAVACL_Plugin());
     $s->addPlugin(new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(), 'SabreDAV'));
     // Forcing login
     $s->getPlugin('acl')->adminPrincipals = array('principals/admin');
     $h = new Sabre_HTTP_Request(array('QUERY_STRING' => 'export', 'REQUEST_URI' => '/UUID-123467', 'REQUEST_METHOD' => 'GET'));
     $s->httpRequest = $h;
     $s->httpResponse = new Sabre_HTTP_ResponseMock();
     $s->exec();
     $this->assertEquals('HTTP/1.1 200 OK', $s->httpResponse->status, 'Invalid status received. Response body: ' . $s->httpResponse->body);
     $this->assertEquals(array('Content-Type' => 'text/calendar'), $s->httpResponse->headers);
     $obj = Sabre_VObject_Reader::read($s->httpResponse->body);
     $this->assertEquals(5, count($obj->children()));
     $this->assertEquals(1, count($obj->VERSION));
     $this->assertEquals(1, count($obj->CALSCALE));
     $this->assertEquals(1, count($obj->PRODID));
     $this->assertEquals(1, count($obj->VTIMEZONE));
     $this->assertEquals(1, count($obj->VEVENT));
 }
 function setup()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('No PDO SQLite support');
     }
     $this->caldavBackend = Sabre_CalDAV_TestUtil::getBackend();
     $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
     $principalBackend->setGroupMemberSet('principals/admin/calendar-proxy-read', array('principals/user1'));
     $principalBackend->setGroupMemberSet('principals/admin/calendar-proxy-write', array('principals/user1'));
     $principalBackend->addPrincipal(array('uri' => 'principals/admin/calendar-proxy-read'));
     $principalBackend->addPrincipal(array('uri' => 'principals/admin/calendar-proxy-write'));
     $calendars = new Sabre_CalDAV_CalendarRootNode($principalBackend, $this->caldavBackend);
     $principals = new Sabre_CalDAV_Principal_Collection($principalBackend);
     $root = new Sabre_DAV_SimpleCollection('root');
     $root->addChild($calendars);
     $root->addChild($principals);
     $objectTree = new Sabre_DAV_ObjectTree($root);
     $this->server = new Sabre_DAV_Server($objectTree);
     $this->server->debugExceptions = true;
     $this->server->setBaseUri('/');
     $this->plugin = new Sabre_CalDAV_Plugin();
     $this->server->addPlugin($this->plugin);
     $this->response = new Sabre_HTTP_ResponseMock();
     $this->server->httpResponse = $this->response;
 }
Beispiel #3
0
 function testBeforeMethod()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('SQLite driver is not available');
     }
     $cbackend = Sabre_CalDAV_TestUtil::getBackend();
     $pbackend = new Sabre_DAVACL_MockPrincipalBackend();
     $props = array('uri' => 'UUID-123467', 'principaluri' => 'admin', 'id' => 1);
     $tree = array(new Sabre_CalDAV_Calendar($pbackend, $cbackend, $props));
     $p = new Sabre_CalDAV_ICSExportPlugin();
     $s = new Sabre_DAV_Server($tree);
     $s->addPlugin($p);
     $h = new Sabre_HTTP_Request(array('QUERY_STRING' => 'export'));
     $s->httpRequest = $h;
     $s->httpResponse = new Sabre_HTTP_ResponseMock();
     $this->assertFalse($p->beforeMethod('GET', 'UUID-123467?export'));
     $this->assertEquals('HTTP/1.1 200 Ok', $s->httpResponse->status);
     $this->assertEquals(array('Content-Type' => 'text/calendar'), $s->httpResponse->headers);
     $obj = Sabre_VObject_Reader::read($s->httpResponse->body);
     $this->assertEquals(5, count($obj->children()));
     $this->assertEquals(1, count($obj->VERSION));
     $this->assertEquals(1, count($obj->CALSCALE));
     $this->assertEquals(1, count($obj->PRODID));
     $this->assertEquals(1, count($obj->VTIMEZONE));
     $this->assertEquals(1, count($obj->VEVENT));
 }
 function setup()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('SQLite driver is not available');
     }
     $this->backend = Sabre_CalDAV_TestUtil::getBackend();
     $this->principalBackend = new Sabre_DAVACL_MockPrincipalBackend('realm');
     $this->usercalendars = new Sabre_CalDAV_UserCalendars($this->principalBackend, $this->backend, 'principals/user1');
 }
Beispiel #5
0
 function setup()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('SQLite driver is not available');
     }
     $this->backend = Sabre_CalDAV_TestUtil::getBackend();
     $this->principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
     $calendars = $this->backend->getCalendarsForUser('principals/user1');
     $this->assertEquals(1, count($calendars));
     $this->calendar = new Sabre_CalDAV_Calendar($this->principalBackend, $this->backend, $calendars[0]);
 }
Beispiel #6
0
 function setup()
 {
     if (!SABRE_HASSQLITE) {
         $this->markTestSkipped('No PDO SQLite support');
     }
     $this->caldavBackend = Sabre_CalDAV_TestUtil::getBackend();
     $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
     $calendars = new Sabre_CalDAV_CalendarRootNode($principalBackend, $this->caldavBackend);
     $principals = new Sabre_DAVACL_PrincipalCollection($principalBackend);
     $root = new Sabre_DAV_SimpleDirectory('root');
     $root->addChild($calendars);
     $root->addChild($principals);
     $objectTree = new Sabre_DAV_ObjectTree($root);
     $this->server = new Sabre_DAV_Server($objectTree);
     $this->server->debugExceptions = true;
     $this->server->setBaseUri('/');
     $this->plugin = new Sabre_CalDAV_Plugin();
     $this->server->addPlugin($this->plugin);
     $this->response = new Sabre_HTTP_ResponseMock();
     $this->server->httpResponse = $this->response;
 }