Fix unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
bf74c4f21b
commit
f464f2313f
|
@ -28,6 +28,7 @@
|
||||||
namespace OCA\Settings\Settings\Admin;
|
namespace OCA\Settings\Settings\Admin;
|
||||||
|
|
||||||
use OCP\AppFramework\Http\TemplateResponse;
|
use OCP\AppFramework\Http\TemplateResponse;
|
||||||
|
use OCP\AppFramework\Utility\ITimeFactory;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\Settings\ISettings;
|
use OCP\Settings\ISettings;
|
||||||
|
@ -36,12 +37,16 @@ class Server implements ISettings {
|
||||||
|
|
||||||
/** @var IDBConnection */
|
/** @var IDBConnection */
|
||||||
private $connection;
|
private $connection;
|
||||||
|
/** @var ITimeFactory */
|
||||||
|
private $timeFactory;
|
||||||
/** @var IConfig */
|
/** @var IConfig */
|
||||||
private $config;
|
private $config;
|
||||||
|
|
||||||
public function __construct(IDBConnection $connection,
|
public function __construct(IDBConnection $connection,
|
||||||
|
ITimeFactory $timeFactory,
|
||||||
IConfig $config) {
|
IConfig $config) {
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
|
$this->timeFactory = $timeFactory;
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +54,20 @@ class Server implements ISettings {
|
||||||
* @return TemplateResponse
|
* @return TemplateResponse
|
||||||
*/
|
*/
|
||||||
public function getForm() {
|
public function getForm() {
|
||||||
|
$parameters = [
|
||||||
|
// Background jobs
|
||||||
|
'backgroundjobs_mode' => $this->config->getAppValue('core', 'backgroundjobs_mode', 'ajax'),
|
||||||
|
'lastcron' => $this->config->getAppValue('core', 'lastcron', false),
|
||||||
|
'cronMaxAge' => $this->cronMaxAge(),
|
||||||
|
'cronErrors' => $this->config->getAppValue('core', 'cronErrors'),
|
||||||
|
'cli_based_cron_possible' => function_exists('posix_getpwuid'),
|
||||||
|
'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '',
|
||||||
|
];
|
||||||
|
|
||||||
|
return new TemplateResponse('settings', 'settings/admin/server', $parameters, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function cronMaxAge(): int {
|
||||||
$query = $this->connection->getQueryBuilder();
|
$query = $this->connection->getQueryBuilder();
|
||||||
$query->select('last_checked')
|
$query->select('last_checked')
|
||||||
->from('jobs')
|
->from('jobs')
|
||||||
|
@ -59,21 +78,11 @@ class Server implements ISettings {
|
||||||
if ($row = $result->fetch()) {
|
if ($row = $result->fetch()) {
|
||||||
$maxAge = (int) $row['last_checked'];
|
$maxAge = (int) $row['last_checked'];
|
||||||
} else {
|
} else {
|
||||||
$maxAge = time();
|
$maxAge = $this->timeFactory->getTime();
|
||||||
}
|
}
|
||||||
$result->closeCursor();
|
$result->closeCursor();
|
||||||
|
|
||||||
$parameters = [
|
return $maxAge;
|
||||||
// Background jobs
|
|
||||||
'backgroundjobs_mode' => $this->config->getAppValue('core', 'backgroundjobs_mode', 'ajax'),
|
|
||||||
'lastcron' => $this->config->getAppValue('core', 'lastcron', false),
|
|
||||||
'cronMaxAge' => $maxAge,
|
|
||||||
'cronErrors' => $this->config->getAppValue('core', 'cronErrors'),
|
|
||||||
'cli_based_cron_possible' => function_exists('posix_getpwuid'),
|
|
||||||
'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '',
|
|
||||||
];
|
|
||||||
|
|
||||||
return new TemplateResponse('settings', 'settings/admin/server', $parameters, '');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||||
*
|
*
|
||||||
|
@ -31,25 +32,46 @@ namespace OCA\Settings\Tests\Settings\Admin;
|
||||||
|
|
||||||
use OCA\Settings\Settings\Admin\Server;
|
use OCA\Settings\Settings\Admin\Server;
|
||||||
use OCP\AppFramework\Http\TemplateResponse;
|
use OCP\AppFramework\Http\TemplateResponse;
|
||||||
|
use OCP\AppFramework\Utility\ITimeFactory;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
|
use OCP\IDBConnection;
|
||||||
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
use Test\TestCase;
|
use Test\TestCase;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group DB
|
||||||
|
*/
|
||||||
class ServerTest extends TestCase {
|
class ServerTest extends TestCase {
|
||||||
/** @var Server */
|
/** @var Server */
|
||||||
private $admin;
|
private $admin;
|
||||||
/** @var IConfig */
|
/** @var IDBConnection */
|
||||||
|
private $connection;
|
||||||
|
/** @var ITimeFactory|MockObject */
|
||||||
|
private $timeFactory;
|
||||||
|
/** @var IConfig|MockObject */
|
||||||
private $config;
|
private $config;
|
||||||
|
|
||||||
protected function setUp(): void {
|
protected function setUp(): void {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
$this->connection = \OC::$server->getDatabaseConnection();
|
||||||
|
$this->timeFactory = $this->createMock(ITimeFactory::class);
|
||||||
$this->config = $this->createMock(IConfig::class);
|
$this->config = $this->createMock(IConfig::class);
|
||||||
|
|
||||||
$this->admin = new Server(
|
$this->admin = $this->getMockBuilder(Server::class)
|
||||||
$this->config
|
->onlyMethods(['cronMaxAge'])
|
||||||
);
|
->setConstructorArgs([
|
||||||
|
$this->connection,
|
||||||
|
$this->timeFactory,
|
||||||
|
$this->config,
|
||||||
|
])
|
||||||
|
->getMock();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetForm() {
|
public function testGetForm(): void {
|
||||||
|
$this->admin->expects($this->once())
|
||||||
|
->method('cronMaxAge')
|
||||||
|
->willReturn(1337);
|
||||||
$this->config
|
$this->config
|
||||||
->expects($this->at(0))
|
->expects($this->at(0))
|
||||||
->method('getAppValue')
|
->method('getAppValue')
|
||||||
|
@ -72,6 +94,7 @@ class ServerTest extends TestCase {
|
||||||
'backgroundjobs_mode' => 'ajax',
|
'backgroundjobs_mode' => 'ajax',
|
||||||
'lastcron' => false,
|
'lastcron' => false,
|
||||||
'cronErrors' => '',
|
'cronErrors' => '',
|
||||||
|
'cronMaxAge' => 1337,
|
||||||
'cli_based_cron_possible' => true,
|
'cli_based_cron_possible' => true,
|
||||||
'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '', // to not explode here because of posix extension not being disabled - which is already checked in the line above
|
'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '', // to not explode here because of posix extension not being disabled - which is already checked in the line above
|
||||||
],
|
],
|
||||||
|
@ -81,11 +104,11 @@ class ServerTest extends TestCase {
|
||||||
$this->assertEquals($expected, $this->admin->getForm());
|
$this->assertEquals($expected, $this->admin->getForm());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetSection() {
|
public function testGetSection(): void {
|
||||||
$this->assertSame('server', $this->admin->getSection());
|
$this->assertSame('server', $this->admin->getSection());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetPriority() {
|
public function testGetPriority(): void {
|
||||||
$this->assertSame(0, $this->admin->getPriority());
|
$this->assertSame(0, $this->admin->getPriority());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue