diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-11 11:53:31 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-11 11:53:31 +0100 |
commit | 0f3e36fdfd1c57f5212c495d59b0e5964df8a4ac (patch) | |
tree | 83e5af893f29ffa91459a77417edce15c4f99c46 /tests | |
parent | cfaee93552b519b8e017e63fd5a82b1e5c9f951b (diff) | |
download | nextcloud-server-0f3e36fdfd1c57f5212c495d59b0e5964df8a4ac.tar.gz nextcloud-server-0f3e36fdfd1c57f5212c495d59b0e5964df8a4ac.zip |
Adding a more meaningful message for sabre dav exception - fixes #14516
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/connector/sabre/exceptionloggerplugin.php | 71 | ||||
-rw-r--r-- | tests/lib/connector/sabre/file.php | 3 |
2 files changed, 71 insertions, 3 deletions
diff --git a/tests/lib/connector/sabre/exceptionloggerplugin.php b/tests/lib/connector/sabre/exceptionloggerplugin.php new file mode 100644 index 00000000000..0662ba029d9 --- /dev/null +++ b/tests/lib/connector/sabre/exceptionloggerplugin.php @@ -0,0 +1,71 @@ +<?php + +/** + * Copyright (c) 2015 Thomas Müller <deepdiver@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Connector\Sabre; + +use OC\Connector\Sabre\Exception\InvalidPath; +use OC\Connector\Sabre\ExceptionLoggerPlugin as PluginToTest; +use OC\Log; +use OCP\ILogger; +use PHPUnit_Framework_MockObject_MockObject; +use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Server; +use Test\TestCase; + +class TestLogger extends Log { + public $message; + public $level; + + public function __construct($logger = null) { + //disable original constructor + } + + public function log($level, $message, array $context = array()) { + $this->level = $level; + $this->message = $message; + } +} + +class ExceptionLoggerPlugin extends TestCase { + + /** @var Server */ + private $server; + + /** @var PluginToTest */ + private $plugin; + + /** @var TestLogger | PHPUnit_Framework_MockObject_MockObject */ + private $logger; + + private function init() { + $this->server = new Server(); + $this->logger = new TestLogger(); + $this->plugin = new PluginToTest('unit-test', $this->logger); + $this->plugin->initialize($this->server); + } + + /** + * @dataProvider providesExceptions + */ + public function testLogging($expectedLogLevel, $expectedMessage, $exception) { + $this->init(); + $this->plugin->logException($exception); + + $this->assertEquals($expectedLogLevel, $this->logger->level); + $this->assertStringStartsWith('Exception: {"Message":"' . $expectedMessage, $this->logger->message); + } + + public function providesExceptions() { + return [ + [0, 'HTTP\/1.1 404 Not Found', new NotFound()], + [4, 'HTTP\/1.1 400 This path leads to nowhere', new InvalidPath('This path leads to nowhere')] + ]; + } + +} diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php index f2812e390ac..74e289c1751 100644 --- a/tests/lib/connector/sabre/file.php +++ b/tests/lib/connector/sabre/file.php @@ -8,9 +8,6 @@ namespace Test\Connector\Sabre; - -use OC_Connector_Sabre_File; - class File extends \Test\TestCase { /** |