diff --git a/apps/settings/lib/Settings/Admin/Server.php b/apps/settings/lib/Settings/Admin/Server.php
index 40333e1043cd6f7200cfe35380afcf27aa7be8d2..d82c9e7c256b9593bca197d627ec754fa6a1e502 100644
--- a/apps/settings/lib/Settings/Admin/Server.php
+++ b/apps/settings/lib/Settings/Admin/Server.php
@@ -28,6 +28,7 @@
 namespace OCA\Settings\Settings\Admin;
 
 use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
 use OCP\IConfig;
 use OCP\IDBConnection;
 use OCP\Settings\ISettings;
@@ -36,12 +37,16 @@ class Server implements ISettings {
 
 	/** @var IDBConnection */
 	private $connection;
+	/** @var ITimeFactory */
+	private $timeFactory;
 	/** @var IConfig */
 	private $config;
 
 	public function __construct(IDBConnection $connection,
+								ITimeFactory $timeFactory,
 								IConfig $config) {
 		$this->connection = $connection;
+		$this->timeFactory = $timeFactory;
 		$this->config = $config;
 	}
 
@@ -49,6 +54,20 @@ class Server implements ISettings {
 	 * @return TemplateResponse
 	 */
 	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->select('last_checked')
 			->from('jobs')
@@ -59,21 +78,11 @@ class Server implements ISettings {
 		if ($row = $result->fetch()) {
 			$maxAge = (int) $row['last_checked'];
 		} else {
-			$maxAge = time();
+			$maxAge = $this->timeFactory->getTime();
 		}
 		$result->closeCursor();
 
-		$parameters = [
-			// 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, '');
+		return $maxAge;
 	}
 
 	/**
diff --git a/apps/settings/tests/Settings/Admin/ServerTest.php b/apps/settings/tests/Settings/Admin/ServerTest.php
index aeb37f8d6cc88ed70e712a5dcecdb198ab8bd4ea..9657ec2d2d4bfa134f7045c42770edf6fdd2a3e1 100644
--- a/apps/settings/tests/Settings/Admin/ServerTest.php
+++ b/apps/settings/tests/Settings/Admin/ServerTest.php
@@ -1,4 +1,5 @@
 <?php
+declare(strict_types=1);
 /**
  * @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 OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
 use OCP\IConfig;
+use OCP\IDBConnection;
+use PHPUnit\Framework\MockObject\MockObject;
 use Test\TestCase;
 
+
+/**
+ * @group DB
+ */
 class ServerTest extends TestCase {
 	/** @var Server */
 	private $admin;
-	/** @var IConfig */
+	/** @var IDBConnection */
+	private $connection;
+	/** @var ITimeFactory|MockObject */
+	private $timeFactory;
+	/** @var IConfig|MockObject */
 	private $config;
 
 	protected function setUp(): void {
 		parent::setUp();
+		$this->connection = \OC::$server->getDatabaseConnection();
+		$this->timeFactory = $this->createMock(ITimeFactory::class);
 		$this->config = $this->createMock(IConfig::class);
 
-		$this->admin = new Server(
-			$this->config
-		);
+		$this->admin = $this->getMockBuilder(Server::class)
+			->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
 			->expects($this->at(0))
 			->method('getAppValue')
@@ -71,7 +93,8 @@ class ServerTest extends TestCase {
 			[
 				'backgroundjobs_mode' => 'ajax',
 				'lastcron'            => false,
-				'cronErrors'		  => '',
+				'cronErrors'          => '',
+				'cronMaxAge'          => 1337,
 				'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
 			],
@@ -81,11 +104,11 @@ class ServerTest extends TestCase {
 		$this->assertEquals($expected, $this->admin->getForm());
 	}
 
-	public function testGetSection() {
+	public function testGetSection(): void {
 		$this->assertSame('server', $this->admin->getSection());
 	}
 
-	public function testGetPriority() {
+	public function testGetPriority(): void {
 		$this->assertSame(0, $this->admin->getPriority());
 	}
 }