addPlugin($acl); $acl->unknownMethod('ACL','test'); } function testCallbackPassthru() { $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server(); $server->addPlugin($acl); $this->assertNull($acl->unknownMethod('FOO','test')); } /** /** * @expectedException Sabre_DAV_Exception_MethodNotAllowed */ function testNotSupportedByNode() { $tree = array( new Sabre_DAV_SimpleCollection('test'), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } function testSuccessSimple() { $tree = array( new Sabre_DAVACL_MockACLNode('test',array()), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $this->assertNull($acl->httpACL('test')); } /** * @expectedException Sabre_DAVACL_Exception_NotRecognizedPrincipal */ function testUnrecognizedPrincipal() { $tree = array( new Sabre_DAVACL_MockACLNode('test',array()), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notfound '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_NotRecognizedPrincipal */ function testUnrecognizedPrincipal2() { $tree = array( new Sabre_DAVACL_MockACLNode('test',array()), new Sabre_DAV_SimpleCollection('principals',array( new Sabre_DAV_SimpleCollection('notaprincipal'), )), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notaprincipal '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_NotSupportedPrivilege */ function testUnknownPrivilege() { $tree = array( new Sabre_DAVACL_MockACLNode('test',array()), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notfound '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_NoAbstract */ function testAbstractPrivilege() { $tree = array( new Sabre_DAVACL_MockACLNode('test',array()), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notfound '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_AceConflict */ function testUpdateProtectedPrivilege() { $oldACL = array( array( 'principal' => 'principals/notfound', 'privilege' => '{DAV:}write', 'protected' => true, ), ); $tree = array( new Sabre_DAVACL_MockACLNode('test',$oldACL), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notfound '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_AceConflict */ function testUpdateProtectedPrivilege2() { $oldACL = array( array( 'principal' => 'principals/notfound', 'privilege' => '{DAV:}write', 'protected' => true, ), ); $tree = array( new Sabre_DAVACL_MockACLNode('test',$oldACL), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/foo '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } /** * @expectedException Sabre_DAVACL_Exception_AceConflict */ function testUpdateProtectedPrivilege3() { $oldACL = array( array( 'principal' => 'principals/notfound', 'privilege' => '{DAV:}write', 'protected' => true, ), ); $tree = array( new Sabre_DAVACL_MockACLNode('test',$oldACL), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/notfound '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $acl->httpACL('test'); } function testSuccessComplex () { $oldACL = array( array( 'principal' => 'principals/foo', 'privilege' => '{DAV:}write', 'protected' => true, ), array( 'principal' => 'principals/bar', 'privilege' => '{DAV:}read', ), ); $tree = array( $node = new Sabre_DAVACL_MockACLNode('test',$oldACL), new Sabre_DAV_SimpleCollection('principals', array( new Sabre_DAVACL_MockPrincipal('foo','principals/foo'), new Sabre_DAVACL_MockPrincipal('baz','principals/baz'), )), ); $acl = new Sabre_DAVACL_Plugin(); $server = new Sabre_DAV_Server($tree); $server->httpRequest = new Sabre_HTTP_Request(); $body = ' /principals/foo /principals/baz '; $server->httpRequest->setBody($body); $server->addPlugin($acl); $this->assertFalse($acl->unknownMethod('ACL','test')); $this->assertEquals(array( array( 'principal' => 'principals/foo', 'privilege' => '{DAV:}write', 'protected' => true, ), array( 'principal' => 'principals/baz', 'privilege' => '{DAV:}write', 'protected' => false, ), ), $node->getACL()); } }