Inject config into checkserver and cleanup tests
This commit is contained in:
parent
c89c6ed21d
commit
6fa3280c2a
|
@ -531,7 +531,7 @@ class OC {
|
||||||
self::checkSSL();
|
self::checkSSL();
|
||||||
OC_Response::addSecurityHeaders();
|
OC_Response::addSecurityHeaders();
|
||||||
|
|
||||||
$errors = OC_Util::checkServer();
|
$errors = OC_Util::checkServer(\OC::$server->getConfig());
|
||||||
if (count($errors) > 0) {
|
if (count($errors) > 0) {
|
||||||
if (self::$CLI) {
|
if (self::$CLI) {
|
||||||
foreach ($errors as $error) {
|
foreach ($errors as $error) {
|
||||||
|
|
|
@ -401,14 +401,15 @@ class OC_Util {
|
||||||
/**
|
/**
|
||||||
* check if the current server configuration is suitable for ownCloud
|
* check if the current server configuration is suitable for ownCloud
|
||||||
*
|
*
|
||||||
|
* @param \OCP\IConfig $config
|
||||||
* @return array arrays with error messages and hints
|
* @return array arrays with error messages and hints
|
||||||
*/
|
*/
|
||||||
public static function checkServer() {
|
public static function checkServer($config) {
|
||||||
$l = \OC::$server->getL10N('lib');
|
$l = \OC::$server->getL10N('lib');
|
||||||
$errors = array();
|
$errors = array();
|
||||||
$CONFIG_DATADIRECTORY = OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data');
|
$CONFIG_DATADIRECTORY = $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data');
|
||||||
|
|
||||||
if (!self::needUpgrade() && OC_Config::getValue('installed', false)) {
|
if (!self::needUpgrade($config) && $config->getSystemValue('installed', false)) {
|
||||||
// this check needs to be done every time
|
// this check needs to be done every time
|
||||||
$errors = self::checkDataDirectoryValidity($CONFIG_DATADIRECTORY);
|
$errors = self::checkDataDirectoryValidity($CONFIG_DATADIRECTORY);
|
||||||
}
|
}
|
||||||
|
@ -448,7 +449,7 @@ class OC_Util {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if there is a writable install folder.
|
// Check if there is a writable install folder.
|
||||||
if (OC_Config::getValue('appstoreenabled', true)) {
|
if ($config->getSystemValue('appstoreenabled', true)) {
|
||||||
if (OC_App::getInstallPath() === null
|
if (OC_App::getInstallPath() === null
|
||||||
|| !is_writable(OC_App::getInstallPath())
|
|| !is_writable(OC_App::getInstallPath())
|
||||||
|| !is_readable(OC_App::getInstallPath())
|
|| !is_readable(OC_App::getInstallPath())
|
||||||
|
@ -462,7 +463,7 @@ class OC_Util {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Create root dir.
|
|
||||||
if (!is_dir($CONFIG_DATADIRECTORY)) {
|
if (!is_dir($CONFIG_DATADIRECTORY)) {
|
||||||
$success = @mkdir($CONFIG_DATADIRECTORY);
|
$success = @mkdir($CONFIG_DATADIRECTORY);
|
||||||
if ($success) {
|
if ($success) {
|
||||||
|
@ -1435,11 +1436,12 @@ class OC_Util {
|
||||||
* either when the core version is higher or any app requires
|
* either when the core version is higher or any app requires
|
||||||
* an upgrade.
|
* an upgrade.
|
||||||
*
|
*
|
||||||
|
* @param \OCP\IConfig $config
|
||||||
* @return bool whether the core or any app needs an upgrade
|
* @return bool whether the core or any app needs an upgrade
|
||||||
*/
|
*/
|
||||||
public static function needUpgrade() {
|
public static function needUpgrade($config) {
|
||||||
if (OC_Config::getValue('installed', false)) {
|
if ($config->getSystemValue('installed', false)) {
|
||||||
$installedVersion = OC_Config::getValue('version', '0.0.0');
|
$installedVersion = $config->getSystemValue('version', '0.0.0');
|
||||||
$currentVersion = implode('.', OC_Util::getVersion());
|
$currentVersion = implode('.', OC_Util::getVersion());
|
||||||
if (version_compare($currentVersion, $installedVersion, '>')) {
|
if (version_compare($currentVersion, $installedVersion, '>')) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -545,6 +545,6 @@ class Util {
|
||||||
* @return bool true if upgrade is needed, false otherwise
|
* @return bool true if upgrade is needed, false otherwise
|
||||||
*/
|
*/
|
||||||
public static function needUpgrade() {
|
public static function needUpgrade() {
|
||||||
return \OC_Util::needUpgrade();
|
return \OC_Util::needUpgrade(\OC::$server->getConfig());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,8 +13,26 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
private $datadir;
|
private $datadir;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $systemOptions
|
||||||
|
* @return \OCP\IConfig | PHPUnit_Framework_MockObject_MockObject
|
||||||
|
*/
|
||||||
|
protected function getConfig($systemOptions) {
|
||||||
|
$systemOptions['datadirectory'] = $this->datadir;
|
||||||
|
$config = $this->getMockBuilder('\OCP\IConfig')
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
$config->expects($this->any())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->will($this->returnCallback(function ($key, $default) use ($systemOptions) {
|
||||||
|
return isset($systemOptions[$key]) ? $systemOptions[$key] : $default;
|
||||||
|
}));
|
||||||
|
return $config;
|
||||||
|
}
|
||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
$this->datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data');
|
$this->datadir = \OC_Helper::tmpFolder();
|
||||||
|
|
||||||
file_put_contents($this->datadir . '/.ocdata', '');
|
file_put_contents($this->datadir . '/.ocdata', '');
|
||||||
}
|
}
|
||||||
|
@ -28,7 +46,9 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
|
||||||
* Test that checkServer() returns no errors in the regular case.
|
* Test that checkServer() returns no errors in the regular case.
|
||||||
*/
|
*/
|
||||||
public function testCheckServer() {
|
public function testCheckServer() {
|
||||||
$result = \OC_Util::checkServer();
|
$result = \OC_Util::checkServer($this->getConfig(array(
|
||||||
|
'installed' => true
|
||||||
|
)));
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,19 +61,12 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
|
||||||
// simulate old version that didn't have it
|
// simulate old version that didn't have it
|
||||||
unlink($this->datadir . '/.ocdata');
|
unlink($this->datadir . '/.ocdata');
|
||||||
|
|
||||||
$session = \OC::$server->getSession();
|
|
||||||
$oldInstalled = \OC_Config::getValue('installed', false);
|
|
||||||
|
|
||||||
// simulate that the server isn't setup yet
|
|
||||||
\OC_Config::setValue('installed', false);
|
|
||||||
|
|
||||||
// even though ".ocdata" is missing, the error isn't
|
// even though ".ocdata" is missing, the error isn't
|
||||||
// triggered to allow setup to run
|
// triggered to allow setup to run
|
||||||
$result = \OC_Util::checkServer();
|
$result = \OC_Util::checkServer($this->getConfig(array(
|
||||||
|
'installed' => false
|
||||||
|
)));
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
|
|
||||||
// restore config
|
|
||||||
\OC_Config::setValue('installed', $oldInstalled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,20 +80,20 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
$session = \OC::$server->getSession();
|
$session = \OC::$server->getSession();
|
||||||
$oldCurrentVersion = $session->get('OC_Version');
|
$oldCurrentVersion = $session->get('OC_Version');
|
||||||
$oldInstallVersion = \OC_Config::getValue('version', '0.0.0');
|
|
||||||
|
|
||||||
// upgrade condition to simulate needUpgrade() === true
|
// upgrade condition to simulate needUpgrade() === true
|
||||||
$session->set('OC_Version', array(6, 0, 0, 2));
|
$session->set('OC_Version', array(6, 0, 0, 2));
|
||||||
\OC_Config::setValue('version', '6.0.0.1');
|
|
||||||
|
|
||||||
// even though ".ocdata" is missing, the error isn't
|
// even though ".ocdata" is missing, the error isn't
|
||||||
// triggered to allow for upgrade
|
// triggered to allow for upgrade
|
||||||
$result = \OC_Util::checkServer();
|
$result = \OC_Util::checkServer($this->getConfig(array(
|
||||||
|
'installed' => true,
|
||||||
|
'version' => '6.0.0.1'
|
||||||
|
)));
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
|
|
||||||
// restore versions
|
// restore versions
|
||||||
$session->set('OC_Version', $oldCurrentVersion);
|
$session->set('OC_Version', $oldCurrentVersion);
|
||||||
\OC_Config::setValue('version', $oldInstallVersion);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -101,8 +114,11 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
|
||||||
$result = \OC_Util::checkDataDirectoryValidity($this->datadir);
|
$result = \OC_Util::checkDataDirectoryValidity($this->datadir);
|
||||||
$this->assertEquals(1, count($result));
|
$this->assertEquals(1, count($result));
|
||||||
|
|
||||||
$result = \OC_Util::checkServer();
|
$result = \OC_Util::checkServer($this->getConfig(array(
|
||||||
$this->assertEquals(1, count($result));
|
'installed' => true,
|
||||||
|
'version' => implode('.', OC_Util::getVersion())
|
||||||
|
)));
|
||||||
|
$this->assertCount(1, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue