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