xref: /plugin/davcal/vendor/sabre/dav/tests/Sabre/DAV/ServerPluginTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\DAV;
4*a1a3b679SAndreas Boehleruse Sabre\HTTP;
5*a1a3b679SAndreas Boehler
6*a1a3b679SAndreas Boehlerrequire_once 'Sabre/DAV/AbstractServer.php';
7*a1a3b679SAndreas Boehlerrequire_once 'Sabre/DAV/TestPlugin.php';
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehlerclass ServerPluginTest extends AbstractServer {
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehler    /**
12*a1a3b679SAndreas Boehler     * @var Sabre\DAV\TestPlugin
13*a1a3b679SAndreas Boehler     */
14*a1a3b679SAndreas Boehler    protected $testPlugin;
15*a1a3b679SAndreas Boehler
16*a1a3b679SAndreas Boehler    function setUp() {
17*a1a3b679SAndreas Boehler
18*a1a3b679SAndreas Boehler        parent::setUp();
19*a1a3b679SAndreas Boehler
20*a1a3b679SAndreas Boehler        $testPlugin = new TestPlugin();
21*a1a3b679SAndreas Boehler        $this->server->addPlugin($testPlugin);
22*a1a3b679SAndreas Boehler        $this->testPlugin = $testPlugin;
23*a1a3b679SAndreas Boehler
24*a1a3b679SAndreas Boehler    }
25*a1a3b679SAndreas Boehler
26*a1a3b679SAndreas Boehler    /**
27*a1a3b679SAndreas Boehler     */
28*a1a3b679SAndreas Boehler    function testBaseClass() {
29*a1a3b679SAndreas Boehler
30*a1a3b679SAndreas Boehler        $p = new ServerPluginMock();
31*a1a3b679SAndreas Boehler        $this->assertEquals([],$p->getFeatures());
32*a1a3b679SAndreas Boehler        $this->assertEquals([],$p->getHTTPMethods(''));
33*a1a3b679SAndreas Boehler        $this->assertEquals(
34*a1a3b679SAndreas Boehler            [
35*a1a3b679SAndreas Boehler                'name' => 'Sabre\DAV\ServerPluginMock',
36*a1a3b679SAndreas Boehler                'description' => null,
37*a1a3b679SAndreas Boehler                'link' => null
38*a1a3b679SAndreas Boehler            ], $p->getPluginInfo()
39*a1a3b679SAndreas Boehler        );
40*a1a3b679SAndreas Boehler
41*a1a3b679SAndreas Boehler    }
42*a1a3b679SAndreas Boehler
43*a1a3b679SAndreas Boehler    function testOptions() {
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler        $serverVars = array(
46*a1a3b679SAndreas Boehler            'REQUEST_URI'    => '/',
47*a1a3b679SAndreas Boehler            'REQUEST_METHOD' => 'OPTIONS',
48*a1a3b679SAndreas Boehler        );
49*a1a3b679SAndreas Boehler
50*a1a3b679SAndreas Boehler        $request = HTTP\Sapi::createFromServerArray($serverVars);
51*a1a3b679SAndreas Boehler        $this->server->httpRequest = ($request);
52*a1a3b679SAndreas Boehler        $this->server->exec();
53*a1a3b679SAndreas Boehler
54*a1a3b679SAndreas Boehler        $this->assertEquals(array(
55*a1a3b679SAndreas Boehler            'DAV'             => ['1, 3, extended-mkcol, drinking'],
56*a1a3b679SAndreas Boehler            'MS-Author-Via'   => ['DAV'],
57*a1a3b679SAndreas Boehler            'Allow'           => ['OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT, BEER, WINE'],
58*a1a3b679SAndreas Boehler            'Accept-Ranges'   => ['bytes'],
59*a1a3b679SAndreas Boehler            'Content-Length'  => ['0'],
60*a1a3b679SAndreas Boehler            'X-Sabre-Version' => [Version::VERSION],
61*a1a3b679SAndreas Boehler        ),$this->response->getHeaders());
62*a1a3b679SAndreas Boehler
63*a1a3b679SAndreas Boehler        $this->assertEquals(200, $this->response->status);
64*a1a3b679SAndreas Boehler        $this->assertEquals('', $this->response->body);
65*a1a3b679SAndreas Boehler        $this->assertEquals('OPTIONS',$this->testPlugin->beforeMethod);
66*a1a3b679SAndreas Boehler
67*a1a3b679SAndreas Boehler
68*a1a3b679SAndreas Boehler    }
69*a1a3b679SAndreas Boehler
70*a1a3b679SAndreas Boehler    function testGetPlugin() {
71*a1a3b679SAndreas Boehler
72*a1a3b679SAndreas Boehler        $this->assertEquals($this->testPlugin,$this->server->getPlugin(get_class($this->testPlugin)));
73*a1a3b679SAndreas Boehler
74*a1a3b679SAndreas Boehler    }
75*a1a3b679SAndreas Boehler
76*a1a3b679SAndreas Boehler    function testUnknownPlugin() {
77*a1a3b679SAndreas Boehler
78*a1a3b679SAndreas Boehler        $this->assertNull($this->server->getPlugin('SomeRandomClassName'));
79*a1a3b679SAndreas Boehler
80*a1a3b679SAndreas Boehler    }
81*a1a3b679SAndreas Boehler
82*a1a3b679SAndreas Boehler    function testGetSupportedReportSet() {
83*a1a3b679SAndreas Boehler
84*a1a3b679SAndreas Boehler        $this->assertEquals(array(), $this->testPlugin->getSupportedReportSet('/'));
85*a1a3b679SAndreas Boehler
86*a1a3b679SAndreas Boehler    }
87*a1a3b679SAndreas Boehler
88*a1a3b679SAndreas Boehler    function testGetPlugins() {
89*a1a3b679SAndreas Boehler
90*a1a3b679SAndreas Boehler        $this->assertEquals(
91*a1a3b679SAndreas Boehler            array(
92*a1a3b679SAndreas Boehler                get_class($this->testPlugin) => $this->testPlugin,
93*a1a3b679SAndreas Boehler                'core' => $this->server->getPlugin('core'),
94*a1a3b679SAndreas Boehler            ),
95*a1a3b679SAndreas Boehler            $this->server->getPlugins()
96*a1a3b679SAndreas Boehler        );
97*a1a3b679SAndreas Boehler
98*a1a3b679SAndreas Boehler    }
99*a1a3b679SAndreas Boehler
100*a1a3b679SAndreas Boehler
101*a1a3b679SAndreas Boehler}
102*a1a3b679SAndreas Boehler
103*a1a3b679SAndreas Boehlerclass ServerPluginMock extends ServerPlugin {
104*a1a3b679SAndreas Boehler
105*a1a3b679SAndreas Boehler    function initialize(Server $s) { }
106*a1a3b679SAndreas Boehler
107*a1a3b679SAndreas Boehler}
108