1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\DAVACL; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehleruse Sabre\DAV; 6*a1a3b679SAndreas Boehleruse Sabre\HTTP; 7*a1a3b679SAndreas Boehler 8*a1a3b679SAndreas Boehler 9*a1a3b679SAndreas Boehlerrequire_once 'Sabre/DAVACL/MockPrincipal.php'; 10*a1a3b679SAndreas Boehler 11*a1a3b679SAndreas Boehlerclass PluginUpdatePropertiesTest extends \PHPUnit_Framework_TestCase { 12*a1a3b679SAndreas Boehler 13*a1a3b679SAndreas Boehler function testUpdatePropertiesPassthrough() { 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler $tree = array( 16*a1a3b679SAndreas Boehler new DAV\SimpleCollection('foo'), 17*a1a3b679SAndreas Boehler ); 18*a1a3b679SAndreas Boehler $server = new DAV\Server($tree); 19*a1a3b679SAndreas Boehler $server->addPlugin(new Plugin()); 20*a1a3b679SAndreas Boehler 21*a1a3b679SAndreas Boehler $result = $server->updateProperties('foo', array( 22*a1a3b679SAndreas Boehler '{DAV:}foo' => 'bar', 23*a1a3b679SAndreas Boehler )); 24*a1a3b679SAndreas Boehler 25*a1a3b679SAndreas Boehler $expected = array( 26*a1a3b679SAndreas Boehler '{DAV:}foo' => 403, 27*a1a3b679SAndreas Boehler ); 28*a1a3b679SAndreas Boehler 29*a1a3b679SAndreas Boehler $this->assertEquals($expected, $result); 30*a1a3b679SAndreas Boehler 31*a1a3b679SAndreas Boehler } 32*a1a3b679SAndreas Boehler 33*a1a3b679SAndreas Boehler function testRemoveGroupMembers() { 34*a1a3b679SAndreas Boehler 35*a1a3b679SAndreas Boehler $tree = array( 36*a1a3b679SAndreas Boehler new MockPrincipal('foo','foo'), 37*a1a3b679SAndreas Boehler ); 38*a1a3b679SAndreas Boehler $server = new DAV\Server($tree); 39*a1a3b679SAndreas Boehler $server->addPlugin(new Plugin()); 40*a1a3b679SAndreas Boehler 41*a1a3b679SAndreas Boehler $result = $server->updateProperties('foo', array( 42*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => null, 43*a1a3b679SAndreas Boehler )); 44*a1a3b679SAndreas Boehler 45*a1a3b679SAndreas Boehler $expected = array( 46*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => 204 47*a1a3b679SAndreas Boehler ); 48*a1a3b679SAndreas Boehler 49*a1a3b679SAndreas Boehler $this->assertEquals($expected, $result); 50*a1a3b679SAndreas Boehler $this->assertEquals(array(),$tree[0]->getGroupMemberSet()); 51*a1a3b679SAndreas Boehler 52*a1a3b679SAndreas Boehler } 53*a1a3b679SAndreas Boehler 54*a1a3b679SAndreas Boehler function testSetGroupMembers() { 55*a1a3b679SAndreas Boehler 56*a1a3b679SAndreas Boehler $tree = [ 57*a1a3b679SAndreas Boehler new MockPrincipal('foo','foo'), 58*a1a3b679SAndreas Boehler ]; 59*a1a3b679SAndreas Boehler $server = new DAV\Server($tree); 60*a1a3b679SAndreas Boehler $server->addPlugin(new Plugin()); 61*a1a3b679SAndreas Boehler 62*a1a3b679SAndreas Boehler $result = $server->updateProperties('foo', [ 63*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => new DAV\Xml\Property\Href(['/bar','/baz'], true), 64*a1a3b679SAndreas Boehler ]); 65*a1a3b679SAndreas Boehler 66*a1a3b679SAndreas Boehler $expected = [ 67*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => 200 68*a1a3b679SAndreas Boehler ]; 69*a1a3b679SAndreas Boehler 70*a1a3b679SAndreas Boehler $this->assertEquals($expected, $result); 71*a1a3b679SAndreas Boehler $this->assertEquals(['bar', 'baz'],$tree[0]->getGroupMemberSet()); 72*a1a3b679SAndreas Boehler 73*a1a3b679SAndreas Boehler } 74*a1a3b679SAndreas Boehler 75*a1a3b679SAndreas Boehler /** 76*a1a3b679SAndreas Boehler * @expectedException Sabre\DAV\Exception 77*a1a3b679SAndreas Boehler */ 78*a1a3b679SAndreas Boehler function testSetBadValue() { 79*a1a3b679SAndreas Boehler 80*a1a3b679SAndreas Boehler $tree = array( 81*a1a3b679SAndreas Boehler new MockPrincipal('foo','foo'), 82*a1a3b679SAndreas Boehler ); 83*a1a3b679SAndreas Boehler $server = new DAV\Server($tree); 84*a1a3b679SAndreas Boehler $server->addPlugin(new Plugin()); 85*a1a3b679SAndreas Boehler 86*a1a3b679SAndreas Boehler $result = $server->updateProperties('foo', array( 87*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => new \StdClass(), 88*a1a3b679SAndreas Boehler )); 89*a1a3b679SAndreas Boehler 90*a1a3b679SAndreas Boehler } 91*a1a3b679SAndreas Boehler 92*a1a3b679SAndreas Boehler function testSetBadNode() { 93*a1a3b679SAndreas Boehler 94*a1a3b679SAndreas Boehler $tree = [ 95*a1a3b679SAndreas Boehler new DAV\SimpleCollection('foo'), 96*a1a3b679SAndreas Boehler ]; 97*a1a3b679SAndreas Boehler $server = new DAV\Server($tree); 98*a1a3b679SAndreas Boehler $server->addPlugin(new Plugin()); 99*a1a3b679SAndreas Boehler 100*a1a3b679SAndreas Boehler $result = $server->updateProperties('foo', [ 101*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => new DAV\Xml\Property\Href(['/bar','/baz'],false), 102*a1a3b679SAndreas Boehler ]); 103*a1a3b679SAndreas Boehler 104*a1a3b679SAndreas Boehler $expected = [ 105*a1a3b679SAndreas Boehler '{DAV:}group-member-set' => 403, 106*a1a3b679SAndreas Boehler ]; 107*a1a3b679SAndreas Boehler 108*a1a3b679SAndreas Boehler $this->assertEquals($expected, $result); 109*a1a3b679SAndreas Boehler 110*a1a3b679SAndreas Boehler } 111*a1a3b679SAndreas Boehler} 112