xref: /plugin/davcal/vendor/sabre/dav/tests/Sabre/DAVACL/AllowAccessTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
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