aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Log/FileTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Log/FileTest.php')
-rw-r--r--tests/lib/Log/FileTest.php67
1 files changed, 41 insertions, 26 deletions
diff --git a/tests/lib/Log/FileTest.php b/tests/lib/Log/FileTest.php
index 937b3c75448..3f030665fb4 100644
--- a/tests/lib/Log/FileTest.php
+++ b/tests/lib/Log/FileTest.php
@@ -1,24 +1,18 @@
<?php
+
/**
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library 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 along with this library. If not, see <http://www.gnu.org/licenses/>.
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\Log;
use OC\Log\File;
+use OC\SystemConfig;
+use OCP\IConfig;
use OCP\ILogger;
+use OCP\Server;
use Test\TestCase;
/**
@@ -33,31 +27,52 @@ class FileTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $config = \OC::$server->getSystemConfig();
- $this->restore_logfile = $config->getValue("logfile");
+ $config = Server::get(SystemConfig::class);
+ $this->restore_logfile = $config->getValue('logfile');
$this->restore_logdateformat = $config->getValue('logdateformat');
-
- $config->setValue("logfile", $config->getValue('datadirectory') . "/logtest.log");
+
+ $config->setValue('logfile', $config->getValue('datadirectory') . '/logtest.log');
$this->logFile = new File($config->getValue('datadirectory') . '/logtest.log', '', $config);
}
protected function tearDown(): void {
- $config = \OC::$server->getSystemConfig();
+ $config = Server::get(SystemConfig::class);
if (isset($this->restore_logfile)) {
- $config->getValue("logfile", $this->restore_logfile);
+ $config->getValue('logfile', $this->restore_logfile);
} else {
- $config->deleteValue("logfile");
+ $config->deleteValue('logfile');
}
if (isset($this->restore_logdateformat)) {
- $config->getValue("logdateformat", $this->restore_logdateformat);
+ $config->getValue('logdateformat', $this->restore_logdateformat);
} else {
- $config->deleteValue("logdateformat");
+ $config->deleteValue('logdateformat');
}
$this->logFile = new File($this->restore_logfile, '', $config);
parent::tearDown();
}
-
- public function testMicrosecondsLogTimestamp() {
- $config = \OC::$server->getConfig();
+
+ public function testLogging(): void {
+ $config = Server::get(IConfig::class);
+ # delete old logfile
+ unlink($config->getSystemValue('logfile'));
+
+ # set format & write log line
+ $config->setSystemValue('logdateformat', 'u');
+ $this->logFile->write('code', ['something' => 'extra', 'message' => 'Testing logging'], ILogger::ERROR);
+
+ # read log line
+ $handle = @fopen($config->getSystemValue('logfile'), 'r');
+ $line = fread($handle, 1000);
+ fclose($handle);
+
+ # check log has data content
+ $values = (array)json_decode($line, true);
+ $this->assertArrayNotHasKey('message', $values['data']);
+ $this->assertEquals('extra', $values['data']['something']);
+ $this->assertEquals('Testing logging', $values['message']);
+ }
+
+ public function testMicrosecondsLogTimestamp(): void {
+ $config = Server::get(IConfig::class);
# delete old logfile
unlink($config->getSystemValue('logfile'));
@@ -69,9 +84,9 @@ class FileTest extends TestCase {
$handle = @fopen($config->getSystemValue('logfile'), 'r');
$line = fread($handle, 1000);
fclose($handle);
-
+
# check timestamp has microseconds part
- $values = (array) json_decode($line);
+ $values = (array)json_decode($line);
$microseconds = $values['time'];
$this->assertNotEquals(0, $microseconds);
}