diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-05-18 11:28:47 +0200 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2015-05-18 11:28:47 +0200 |
commit | 7ee3f99a4ae70a68a5fe8e93c6e611b3aa0929f7 (patch) | |
tree | 55d54854c6362b503169ed9aa152d93d1ae2ca0f | |
parent | d15471abd4751057e534dec086c5164bd848a82f (diff) | |
parent | 54ef09886755b2af35c44a97d000997c93697af8 (diff) | |
download | nextcloud-server-7ee3f99a4ae70a68a5fe8e93c6e611b3aa0929f7.tar.gz nextcloud-server-7ee3f99a4ae70a68a5fe8e93c6e611b3aa0929f7.zip |
Merge pull request #16364 from owncloud/add-warning-webdav
Add notice that WebDAV interface is not intended for browsers
-rw-r--r-- | lib/private/connector/sabre/dummygetresponseplugin.php | 18 | ||||
-rw-r--r-- | tests/lib/connector/sabre/DummyGetResponsePluginTest.php | 65 |
2 files changed, 80 insertions, 3 deletions
diff --git a/lib/private/connector/sabre/dummygetresponseplugin.php b/lib/private/connector/sabre/dummygetresponseplugin.php index 7d57f6021fa..6057236b635 100644 --- a/lib/private/connector/sabre/dummygetresponseplugin.php +++ b/lib/private/connector/sabre/dummygetresponseplugin.php @@ -20,6 +20,8 @@ */ namespace OC\Connector\Sabre; +use Sabre\HTTP\ResponseInterface; +use Sabre\HTTP\RequestInterface; /** * Class DummyGetResponsePlugin is a plugin used to not show a "Not implemented" @@ -42,15 +44,25 @@ class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin { * @param \Sabre\DAV\Server $server * @return void */ - function initialize(\Sabre\DAV\Server $server) { + function initialize(\Sabre\DAV\Server $server) { $this->server = $server; - $this->server->on('method:GET', [$this,'httpGet'], 200); + $this->server->on('method:GET', [$this, 'httpGet'], 200); } /** + * @param RequestInterface $request + * @param ResponseInterface $response * @return false */ - function httpGet() { + function httpGet(RequestInterface $request, ResponseInterface $response) { + $string = 'This is the WebDAV interface. It can only be accessed by ' . + 'WebDAV clients such as the ownCloud desktop sync client.'; + $stream = fopen('php://memory','r+'); + fwrite($stream, $string); + rewind($stream); + + $response->setBody($stream); + return false; } } diff --git a/tests/lib/connector/sabre/DummyGetResponsePluginTest.php b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php new file mode 100644 index 00000000000..fa8f0694625 --- /dev/null +++ b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php @@ -0,0 +1,65 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace Test\Connector\Sabre; + +use OC\Connector\Sabre\DummyGetResponsePlugin; +use Test\TestCase; + +/** + * Class DummyGetResponsePluginTest + * + * @package Test\Connector\Sabre + */ +class DummyGetResponsePluginTest extends TestCase { + /** @var DummyGetResponsePlugin */ + private $dummyGetResponsePlugin; + + public function setUp() { + parent::setUp(); + + $this->dummyGetResponsePlugin = new DummyGetResponsePlugin(); + } + + public function testInitialize() { + /** @var \Sabre\DAV\Server $server */ + $server = $this->getMock('\Sabre\DAV\Server'); + $server + ->expects($this->once()) + ->method('on') + ->with('method:GET', [$this->dummyGetResponsePlugin, 'httpGet'], 200); + + $this->dummyGetResponsePlugin->initialize($server); + } + + + public function testHttpGet() { + /** @var \Sabre\HTTP\RequestInterface $request */ + $request = $this->getMock('\Sabre\HTTP\RequestInterface'); + /** @var \Sabre\HTTP\ResponseInterface $response */ + $response = $server = $this->getMock('\Sabre\HTTP\ResponseInterface'); + $response + ->expects($this->once()) + ->method('setBody'); + + $this->assertSame(false, $this->dummyGetResponsePlugin->httpGet($request, $response)); + } +} |