diff options
author | Georg Ehrke <developer@georgehrke.com> | 2014-12-20 22:44:41 +0100 |
---|---|---|
committer | Georg Ehrke <developer@georgehrke.com> | 2015-01-07 14:55:53 +0100 |
commit | f579f2bd948ca73a1af720e19517af9bdde11748 (patch) | |
tree | 08c7259d72d8db413895e215b774df83539a938c /tests/settings | |
parent | 510488ad3e24110c435423860e9afbc58020ed66 (diff) | |
download | nextcloud-server-f579f2bd948ca73a1af720e19517af9bdde11748.tar.gz nextcloud-server-f579f2bd948ca73a1af720e19517af9bdde11748.zip |
add Download logfile button to admin settings
add logSettingsController
add download logfile button
move getEntries to LogSettingsController
move set log level to logsettingscontroller.php
add warning if logfile is bigger than 100MB
add unit test for set log level
fix typecasting, add new line at EoF
show log and logfile download only if log_type is set to owncloud
add unit test for getFilenameForDownload
Diffstat (limited to 'tests/settings')
-rw-r--r-- | tests/settings/controller/logsettingscontrollertest.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/settings/controller/logsettingscontrollertest.php b/tests/settings/controller/logsettingscontrollertest.php new file mode 100644 index 00000000000..e80acfa75b5 --- /dev/null +++ b/tests/settings/controller/logsettingscontrollertest.php @@ -0,0 +1,79 @@ +<?php +/** + * @author Georg Ehrke + * @copyright 2014 Georg Ehrke <georg@ownCloud.com> + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace Test\Settings\Controller; + +use \OC\Settings\Application; + +/** + * @package OC\Settings\Controller + */ +class LogSettingsControllerTest extends \Test\TestCase { + + /** @var \OCP\AppFramework\IAppContainer */ + private $container; + + /** @var LogSettingsController */ + private $logSettingsController; + + protected function setUp() { + $app = new Application(); + $this->container = $app->getContainer(); + $this->container['Config'] = $this->getMockBuilder('\OCP\IConfig') + ->disableOriginalConstructor()->getMock(); + $this->container['AppName'] = 'settings'; + $this->logSettingsController = $this->container['LogSettingsController']; + } + + /** + * @dataProvider logLevelData + */ + public function testSetLogLevel($level, $inRange) { + if ($inRange) { + $this->container['Config'] + ->expects($this->once()) + ->method('setSystemValue') + ->with('loglevel', $level); + } + + $response = $this->logSettingsController->setLogLevel($level)->getData(); + + if ($inRange) { + $expectedResponse = ['level' => $level]; + } else { + $expectedResponse = ['message' => 'log-level out of allowed range']; + } + + $this->assertSame($expectedResponse, $response); + } + + public function logLevelData() { + return [ + [-1, false], + [0, true], + [1, true], + [2, true], + [3, true], + [4, true], + [5, false], + ]; + } + + public function testGetFilenameForDownload() { + $timestamp = 42; + $this->container['Config'] + ->expects($this->once()) + ->method('getSystemValue') + ->with('instanceid') + ->will($this->returnValue('0xF')); + $filename = \Test_Helper::invokePrivate($this->logSettingsController, 'getFilenameForDownload', [$timestamp]); + + $this->assertSame('ownCloud-0xF-42.log', $filename); + } +} |