示例#1
0
 function setup()
 {
     $caldavNS = '{urn:ietf:params:xml:ns:caldav}';
     $this->caldavBackend = new Backend\Mock([['id' => 1, 'uri' => 'UUID-123467', 'principaluri' => 'principals/user1', '{DAV:}displayname' => 'user1 calendar', $caldavNS . 'calendar-description' => 'Calendar description', '{http://apple.com/ns/ical/}calendar-order' => '1', '{http://apple.com/ns/ical/}calendar-color' => '#FF0000', $caldavNS . 'supported-calendar-component-set' => new Xml\Property\SupportedCalendarComponentSet(['VEVENT', 'VTODO'])], ['id' => 2, 'uri' => 'UUID-123468', 'principaluri' => 'principals/user1', '{DAV:}displayname' => 'user1 calendar2', $caldavNS . 'calendar-description' => 'Calendar description', '{http://apple.com/ns/ical/}calendar-order' => '1', '{http://apple.com/ns/ical/}calendar-color' => '#FF0000', $caldavNS . 'supported-calendar-component-set' => new Xml\Property\SupportedCalendarComponentSet(['VEVENT', 'VTODO'])]], [1 => ['UUID-2345' => ['calendardata' => TestUtil::getTestCalendarData()]]]);
     $principalBackend = new DAVACL\PrincipalBackend\Mock();
     $principalBackend->setGroupMemberSet('principals/admin/calendar-proxy-read', ['principals/user1']);
     $principalBackend->setGroupMemberSet('principals/admin/calendar-proxy-write', ['principals/user1']);
     $principalBackend->addPrincipal(['uri' => 'principals/admin/calendar-proxy-read']);
     $principalBackend->addPrincipal(['uri' => 'principals/admin/calendar-proxy-write']);
     $calendars = new CalendarRoot($principalBackend, $this->caldavBackend);
     $principals = new Principal\Collection($principalBackend);
     $root = new DAV\SimpleCollection('root');
     $root->addChild($calendars);
     $root->addChild($principals);
     $this->server = new DAV\Server($root);
     $this->server->sapi = new HTTP\SapiMock();
     $this->server->debugExceptions = true;
     $this->server->setBaseUri('/');
     $this->plugin = new Plugin();
     $this->server->addPlugin($this->plugin);
     // Adding ACL plugin
     $this->server->addPlugin(new DAVACL\Plugin());
     // Adding Auth plugin, and ensuring that we are logged in.
     $authBackend = new DAV\Auth\Backend\Mock();
     $authBackend->setPrincipal('principals/user1');
     $authPlugin = new DAV\Auth\Plugin($authBackend);
     $authPlugin->beforeMethod(new \Sabre\HTTP\Request(), new \Sabre\HTTP\Response());
     $this->server->addPlugin($authPlugin);
     // This forces a login
     $authPlugin->beforeMethod(new HTTP\Request(), new HTTP\Response());
     $this->response = new HTTP\ResponseMock();
     $this->server->httpResponse = $this->response;
 }
示例#2
0
 /**
  * @depends testAuthenticate
  */
 function testMultipleBackend()
 {
     $fakeServer = new DAV\Server(new DAV\SimpleCollection('bla'));
     $backend1 = new Backend\Mock();
     $backend2 = new Backend\Mock();
     $backend2->fail = true;
     $plugin = new Plugin();
     $plugin->addBackend($backend1);
     $plugin->addBackend($backend2);
     $fakeServer->addPlugin($plugin);
     $fakeServer->emit('beforeMethod', [new HTTP\Request(), new HTTP\Response()]);
     $this->assertEquals('principals/admin', $plugin->getCurrentPrincipal());
 }
示例#3
0
 /**
  * @depends testInit
  */
 function testPlugin()
 {
     $myRealmName = 'some_realm';
     $plugin = new Plugin(new Backend\Mock(), $myRealmName);
     $this->assertEquals($myRealmName, $plugin->getRealm());
 }