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 Boehlerclass AllowAccessTest extends \PHPUnit_Framework_TestCase { 9*a1a3b679SAndreas Boehler 10*a1a3b679SAndreas Boehler /** 11*a1a3b679SAndreas Boehler * @var DAV\Server 12*a1a3b679SAndreas Boehler */ 13*a1a3b679SAndreas Boehler protected $server; 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler function setUp() { 16*a1a3b679SAndreas Boehler 17*a1a3b679SAndreas Boehler $nodes = array( 18*a1a3b679SAndreas Boehler new DAV\SimpleCollection('testdir'), 19*a1a3b679SAndreas Boehler ); 20*a1a3b679SAndreas Boehler 21*a1a3b679SAndreas Boehler $this->server = new DAV\Server($nodes); 22*a1a3b679SAndreas Boehler $aclPlugin = new Plugin(); 23*a1a3b679SAndreas Boehler $aclPlugin->allowAccessToNodesWithoutACL = true; 24*a1a3b679SAndreas Boehler $this->server->addPlugin($aclPlugin); 25*a1a3b679SAndreas Boehler 26*a1a3b679SAndreas Boehler } 27*a1a3b679SAndreas Boehler 28*a1a3b679SAndreas Boehler function testGet() { 29*a1a3b679SAndreas Boehler 30*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('GET'); 31*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 32*a1a3b679SAndreas Boehler 33*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 34*a1a3b679SAndreas Boehler 35*a1a3b679SAndreas Boehler } 36*a1a3b679SAndreas Boehler 37*a1a3b679SAndreas Boehler function testGetDoesntExist() { 38*a1a3b679SAndreas Boehler 39*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('GET'); 40*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/foo'); 41*a1a3b679SAndreas Boehler 42*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 43*a1a3b679SAndreas Boehler 44*a1a3b679SAndreas Boehler } 45*a1a3b679SAndreas Boehler 46*a1a3b679SAndreas Boehler function testHEAD() { 47*a1a3b679SAndreas Boehler 48*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('HEAD'); 49*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 50*a1a3b679SAndreas Boehler 51*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 52*a1a3b679SAndreas Boehler 53*a1a3b679SAndreas Boehler } 54*a1a3b679SAndreas Boehler 55*a1a3b679SAndreas Boehler function testOPTIONS() { 56*a1a3b679SAndreas Boehler 57*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('OPTIONS'); 58*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 59*a1a3b679SAndreas Boehler 60*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 61*a1a3b679SAndreas Boehler 62*a1a3b679SAndreas Boehler } 63*a1a3b679SAndreas Boehler 64*a1a3b679SAndreas Boehler function testPUT() { 65*a1a3b679SAndreas Boehler 66*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('PUT'); 67*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 68*a1a3b679SAndreas Boehler 69*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 70*a1a3b679SAndreas Boehler 71*a1a3b679SAndreas Boehler } 72*a1a3b679SAndreas Boehler 73*a1a3b679SAndreas Boehler function testACL() { 74*a1a3b679SAndreas Boehler 75*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('ACL'); 76*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 77*a1a3b679SAndreas Boehler 78*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 79*a1a3b679SAndreas Boehler 80*a1a3b679SAndreas Boehler } 81*a1a3b679SAndreas Boehler 82*a1a3b679SAndreas Boehler function testPROPPATCH() { 83*a1a3b679SAndreas Boehler 84*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('PROPPATCH'); 85*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 86*a1a3b679SAndreas Boehler 87*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 88*a1a3b679SAndreas Boehler 89*a1a3b679SAndreas Boehler } 90*a1a3b679SAndreas Boehler 91*a1a3b679SAndreas Boehler function testCOPY() { 92*a1a3b679SAndreas Boehler 93*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('COPY'); 94*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 95*a1a3b679SAndreas Boehler 96*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 97*a1a3b679SAndreas Boehler 98*a1a3b679SAndreas Boehler } 99*a1a3b679SAndreas Boehler 100*a1a3b679SAndreas Boehler function testMOVE() { 101*a1a3b679SAndreas Boehler 102*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('MOVE'); 103*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 104*a1a3b679SAndreas Boehler 105*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 106*a1a3b679SAndreas Boehler 107*a1a3b679SAndreas Boehler } 108*a1a3b679SAndreas Boehler 109*a1a3b679SAndreas Boehler function testLOCK() { 110*a1a3b679SAndreas Boehler 111*a1a3b679SAndreas Boehler $this->server->httpRequest->setMethod('LOCK'); 112*a1a3b679SAndreas Boehler $this->server->httpRequest->setUrl('/testdir'); 113*a1a3b679SAndreas Boehler 114*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeMethod', [$this->server->httpRequest, $this->server->httpResponse])); 115*a1a3b679SAndreas Boehler 116*a1a3b679SAndreas Boehler } 117*a1a3b679SAndreas Boehler 118*a1a3b679SAndreas Boehler function testBeforeBind() { 119*a1a3b679SAndreas Boehler 120*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeBind', ['testdir/file'])); 121*a1a3b679SAndreas Boehler 122*a1a3b679SAndreas Boehler } 123*a1a3b679SAndreas Boehler 124*a1a3b679SAndreas Boehler 125*a1a3b679SAndreas Boehler function testBeforeUnbind() { 126*a1a3b679SAndreas Boehler 127*a1a3b679SAndreas Boehler $this->assertTrue($this->server->emit('beforeUnbind', ['testdir'])); 128*a1a3b679SAndreas Boehler 129*a1a3b679SAndreas Boehler } 130*a1a3b679SAndreas Boehler 131*a1a3b679SAndreas Boehler} 132