2016-08-15 17:24:56 +03:00
< ? php
2020-03-31 11:49:10 +03:00
2020-02-10 12:14:02 +03:00
declare ( strict_types = 1 );
2020-03-31 11:49:10 +03:00
2016-08-15 17:24:56 +03:00
/**
* @ copyright Copyright ( c ) 2016 Lukas Reschke < lukas @ statuscode . ch >
*
2019-12-03 21:57:53 +03: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 17:24:56 +03:00
* @ author Lukas Reschke < lukas @ statuscode . ch >
2019-12-03 21:57:53 +03:00
* @ author Morris Jobke < hey @ morrisjobke . de >
* @ author Roeland Jago Douma < roeland @ famdouma . nl >
2016-08-15 17:24:56 +03: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
* 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
2019-12-03 21:57:53 +03:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2016-08-15 17:24:56 +03:00
*
*/
2019-09-17 17:33:27 +03:00
namespace OCA\Settings\Tests\Settings\Admin ;
2016-08-15 17:24:56 +03:00
2020-01-31 18:55:17 +03:00
use OCA\Settings\Settings\Admin\Server ;
2016-08-15 17:24:56 +03:00
use OCP\AppFramework\Http\TemplateResponse ;
2020-02-10 12:14:02 +03:00
use OCP\AppFramework\Utility\ITimeFactory ;
2016-08-15 17:24:56 +03:00
use OCP\IConfig ;
2020-02-10 12:14:02 +03:00
use OCP\IDBConnection ;
use PHPUnit\Framework\MockObject\MockObject ;
2016-08-15 17:24:56 +03:00
use Test\TestCase ;
2020-02-10 12:14:02 +03:00
/**
* @ group DB
*/
2016-08-15 17:24:56 +03:00
class ServerTest extends TestCase {
/** @var Server */
private $admin ;
2020-02-10 12:14:02 +03:00
/** @var IDBConnection */
private $connection ;
/** @var ITimeFactory|MockObject */
private $timeFactory ;
/** @var IConfig|MockObject */
2016-08-15 17:24:56 +03:00
private $config ;
2019-11-27 17:27:18 +03:00
protected function setUp () : void {
2016-08-15 17:24:56 +03:00
parent :: setUp ();
2020-02-10 12:14:02 +03:00
$this -> connection = \OC :: $server -> getDatabaseConnection ();
$this -> timeFactory = $this -> createMock ( ITimeFactory :: class );
2019-08-26 11:21:26 +03:00
$this -> config = $this -> createMock ( IConfig :: class );
2016-08-15 17:24:56 +03:00
2020-02-10 12:14:02 +03:00
$this -> admin = $this -> getMockBuilder ( Server :: class )
-> onlyMethods ([ 'cronMaxAge' ])
-> setConstructorArgs ([
$this -> connection ,
$this -> timeFactory ,
$this -> config ,
])
-> getMock ();
2016-08-15 17:24:56 +03:00
}
2020-02-10 12:14:02 +03:00
public function testGetForm () : void {
$this -> admin -> expects ( $this -> once ())
-> method ( 'cronMaxAge' )
-> willReturn ( 1337 );
2016-08-15 17:24:56 +03:00
$this -> config
-> expects ( $this -> at ( 0 ))
-> method ( 'getAppValue' )
-> with ( 'core' , 'backgroundjobs_mode' , 'ajax' )
-> willReturn ( 'ajax' );
$this -> config
2018-04-17 21:56:39 +03:00
-> expects ( $this -> at ( 1 ))
2016-08-15 17:24:56 +03:00
-> method ( 'getAppValue' )
-> with ( 'core' , 'lastcron' , false )
-> willReturn ( false );
$this -> config
2018-04-17 21:56:39 +03:00
-> expects ( $this -> at ( 2 ))
2016-08-15 17:24:56 +03:00
-> method ( 'getAppValue' )
-> with ( 'core' , 'cronErrors' )
-> willReturn ( '' );
$expected = new TemplateResponse (
'settings' ,
2017-06-29 15:38:22 +03:00
'settings/admin/server' ,
2016-08-15 17:24:56 +03:00
[
'backgroundjobs_mode' => 'ajax' ,
'lastcron' => false ,
2020-02-10 12:14:02 +03:00
'cronErrors' => '' ,
'cronMaxAge' => 1337 ,
2016-11-03 12:18:16 +03: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 17:24:56 +03:00
],
''
);
$this -> assertEquals ( $expected , $this -> admin -> getForm ());
}
2020-02-10 12:14:02 +03:00
public function testGetSection () : void {
2016-08-15 17:24:56 +03:00
$this -> assertSame ( 'server' , $this -> admin -> getSection ());
}
2020-02-10 12:14:02 +03:00
public function testGetPriority () : void {
2016-08-15 17:24:56 +03:00
$this -> assertSame ( 0 , $this -> admin -> getPriority ());
}
}