summaryrefslogtreecommitdiffstats
path: root/tests/settings
diff options
context:
space:
mode:
authorGeorg Ehrke <developer@georgehrke.com>2014-12-20 22:44:41 +0100
committerGeorg Ehrke <developer@georgehrke.com>2015-01-07 14:55:53 +0100
commitf579f2bd948ca73a1af720e19517af9bdde11748 (patch)
tree08c7259d72d8db413895e215b774df83539a938c /tests/settings
parent510488ad3e24110c435423860e9afbc58020ed66 (diff)
downloadnextcloud-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.php79
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);
+ }
+}