summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-05-18 11:28:47 +0200
committerMorris Jobke <hey@morrisjobke.de>2015-05-18 11:28:47 +0200
commit7ee3f99a4ae70a68a5fe8e93c6e611b3aa0929f7 (patch)
tree55d54854c6362b503169ed9aa152d93d1ae2ca0f
parentd15471abd4751057e534dec086c5164bd848a82f (diff)
parent54ef09886755b2af35c44a97d000997c93697af8 (diff)
downloadnextcloud-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.php18
-rw-r--r--tests/lib/connector/sabre/DummyGetResponsePluginTest.php65
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));
+ }
+}