2016-08-15 10:24:56 -04:00
< ? php
2020-03-31 04:49:10 -04:00
2020-02-10 04:14:02 -05:00
declare ( strict_types = 1 );
2020-03-31 04:49:10 -04:00
2016-08-15 10:24:56 -04:00
/**
* @ copyright Copyright ( c ) 2016 Lukas Reschke < lukas @ statuscode . ch >
*
2019-12-03 13:57:53 -05:00
* @ author Arthur Schiwon < blizzz @ arthur - schiwon . de >
* @ author Christoph Wurst < christoph @ winzerhof - wurst . at >
* @ author Joas Schilling < coding @ schilljs . com >
* @ author Julius Härtl < jus @ bitgrid . net >
2016-08-15 10:24:56 -04:00
* @ author Lukas Reschke < lukas @ statuscode . ch >
2019-12-03 13:57:53 -05:00
* @ author Morris Jobke < hey @ morrisjobke . de >
* @ author Roeland Jago Douma < roeland @ famdouma . nl >
2016-08-15 10:24:56 -04:00
*
* @ license GNU AGPL version 3 or any later version
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2021-06-04 15:52:51 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2016-08-15 10:24:56 -04:00
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
2019-12-03 13:57:53 -05:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2016-08-15 10:24:56 -04:00
*
*/
2019-09-17 10:33:27 -04:00
namespace OCA\Settings\Tests\Settings\Admin ;
2016-08-15 10:24:56 -04:00
2020-01-31 10:55:17 -05:00
use OCA\Settings\Settings\Admin\Server ;
2016-08-15 10:24:56 -04:00
use OCP\AppFramework\Http\TemplateResponse ;
2020-02-10 04:14:02 -05:00
use OCP\AppFramework\Utility\ITimeFactory ;
2016-08-15 10:24:56 -04:00
use OCP\IConfig ;
2020-02-10 04:14:02 -05:00
use OCP\IDBConnection ;
use PHPUnit\Framework\MockObject\MockObject ;
2016-08-15 10:24:56 -04:00
use Test\TestCase ;
2020-02-10 04:14:02 -05:00
/**
* @ group DB
*/
2016-08-15 10:24:56 -04:00
class ServerTest extends TestCase {
/** @var Server */
private $admin ;
2020-02-10 04:14:02 -05:00
/** @var IDBConnection */
private $connection ;
/** @var ITimeFactory|MockObject */
private $timeFactory ;
/** @var IConfig|MockObject */
2016-08-15 10:24:56 -04:00
private $config ;
2019-11-27 09:27:18 -05:00
protected function setUp () : void {
2016-08-15 10:24:56 -04:00
parent :: setUp ();
2020-02-10 04:14:02 -05:00
$this -> connection = \OC :: $server -> getDatabaseConnection ();
$this -> timeFactory = $this -> createMock ( ITimeFactory :: class );
2019-08-26 04:21:26 -04:00
$this -> config = $this -> createMock ( IConfig :: class );
2016-08-15 10:24:56 -04:00
2020-02-10 04:14:02 -05:00
$this -> admin = $this -> getMockBuilder ( Server :: class )
-> onlyMethods ([ 'cronMaxAge' ])
-> setConstructorArgs ([
$this -> connection ,
$this -> timeFactory ,
$this -> config ,
])
-> getMock ();
2016-08-15 10:24:56 -04:00
}
2020-02-10 04:14:02 -05:00
public function testGetForm () : void {
$this -> admin -> expects ( $this -> once ())
-> method ( 'cronMaxAge' )
-> willReturn ( 1337 );
2016-08-15 10:24:56 -04:00
$this -> config
-> expects ( $this -> at ( 0 ))
-> method ( 'getAppValue' )
-> with ( 'core' , 'backgroundjobs_mode' , 'ajax' )
-> willReturn ( 'ajax' );
$this -> config
2018-04-17 14:56:39 -04:00
-> expects ( $this -> at ( 1 ))
2016-08-15 10:24:56 -04:00
-> method ( 'getAppValue' )
-> with ( 'core' , 'lastcron' , false )
-> willReturn ( false );
$this -> config
2018-04-17 14:56:39 -04:00
-> expects ( $this -> at ( 2 ))
2016-08-15 10:24:56 -04:00
-> method ( 'getAppValue' )
-> with ( 'core' , 'cronErrors' )
-> willReturn ( '' );
$expected = new TemplateResponse (
'settings' ,
2017-06-29 08:38:22 -04:00
'settings/admin/server' ,
2016-08-15 10:24:56 -04:00
[
'backgroundjobs_mode' => 'ajax' ,
2020-10-05 09:12:57 -04:00
'lastcron' => false ,
'cronErrors' => '' ,
'cronMaxAge' => 1337 ,
2016-11-03 05:18:16 -04:00
'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
2016-08-15 10:24:56 -04:00
],
''
);
$this -> assertEquals ( $expected , $this -> admin -> getForm ());
}
2020-02-10 04:14:02 -05:00
public function testGetSection () : void {
2016-08-15 10:24:56 -04:00
$this -> assertSame ( 'server' , $this -> admin -> getSection ());
}
2020-02-10 04:14:02 -05:00
public function testGetPriority () : void {
2016-08-15 10:24:56 -04:00
$this -> assertSame ( 0 , $this -> admin -> getPriority ());
}
}