summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2014-09-08 14:56:11 +0200
committerRobin Appelman <icewind@owncloud.com>2014-09-18 13:33:13 +0200
commit6fa3280c2a4033e99b867440ae49932390784c48 (patch)
tree3fa01d8021935e8b8013b375ce7d221344fcd102
parentc89c6ed21de96be58793c0e63c39aa0897253450 (diff)
downloadnextcloud-server-6fa3280c2a4033e99b867440ae49932390784c48.tar.gz
nextcloud-server-6fa3280c2a4033e99b867440ae49932390784c48.zip
Inject config into checkserver and cleanup tests
-rw-r--r--lib/base.php2
-rwxr-xr-xlib/private/util.php18
-rw-r--r--lib/public/util.php2
-rw-r--r--tests/lib/utilcheckserver.php54
4 files changed, 47 insertions, 29 deletions
diff --git a/lib/base.php b/lib/base.php
index e21d0124b32..5870497834b 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -531,7 +531,7 @@ class OC {
self::checkSSL();
OC_Response::addSecurityHeaders();
- $errors = OC_Util::checkServer();
+ $errors = OC_Util::checkServer(\OC::$server->getConfig());
if (count($errors) > 0) {
if (self::$CLI) {
foreach ($errors as $error) {
diff --git a/lib/private/util.php b/lib/private/util.php
index c5483c1654b..04f00f42447 100755
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -401,14 +401,15 @@ class OC_Util {
/**
* check if the current server configuration is suitable for ownCloud
*
+ * @param \OCP\IConfig $config
* @return array arrays with error messages and hints
*/
- public static function checkServer() {
+ public static function checkServer($config) {
$l = \OC::$server->getL10N('lib');
$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
$errors = self::checkDataDirectoryValidity($CONFIG_DATADIRECTORY);
}
@@ -448,7 +449,7 @@ class OC_Util {
}
// Check if there is a writable install folder.
- if (OC_Config::getValue('appstoreenabled', true)) {
+ if ($config->getSystemValue('appstoreenabled', true)) {
if (OC_App::getInstallPath() === null
|| !is_writable(OC_App::getInstallPath())
|| !is_readable(OC_App::getInstallPath())
@@ -462,7 +463,7 @@ class OC_Util {
);
}
}
- // Create root dir.
+
if (!is_dir($CONFIG_DATADIRECTORY)) {
$success = @mkdir($CONFIG_DATADIRECTORY);
if ($success) {
@@ -1435,11 +1436,12 @@ class OC_Util {
* either when the core version is higher or any app requires
* an upgrade.
*
+ * @param \OCP\IConfig $config
* @return bool whether the core or any app needs an upgrade
*/
- public static function needUpgrade() {
- if (OC_Config::getValue('installed', false)) {
- $installedVersion = OC_Config::getValue('version', '0.0.0');
+ public static function needUpgrade($config) {
+ if ($config->getSystemValue('installed', false)) {
+ $installedVersion = $config->getSystemValue('version', '0.0.0');
$currentVersion = implode('.', OC_Util::getVersion());
if (version_compare($currentVersion, $installedVersion, '>')) {
return true;
diff --git a/lib/public/util.php b/lib/public/util.php
index 244c11ba2cc..d3f07b5c459 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -545,6 +545,6 @@ class Util {
* @return bool true if upgrade is needed, false otherwise
*/
public static function needUpgrade() {
- return \OC_Util::needUpgrade();
+ return \OC_Util::needUpgrade(\OC::$server->getConfig());
}
}
diff --git a/tests/lib/utilcheckserver.php b/tests/lib/utilcheckserver.php
index 155d617c4ad..78888bd909d 100644
--- a/tests/lib/utilcheckserver.php
+++ b/tests/lib/utilcheckserver.php
@@ -13,8 +13,26 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
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() {
- $this->datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data');
+ $this->datadir = \OC_Helper::tmpFolder();
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.
*/
public function testCheckServer() {
- $result = \OC_Util::checkServer();
+ $result = \OC_Util::checkServer($this->getConfig(array(
+ 'installed' => true
+ )));
$this->assertEmpty($result);
}
@@ -41,19 +61,12 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
// simulate old version that didn't have it
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
// triggered to allow setup to run
- $result = \OC_Util::checkServer();
+ $result = \OC_Util::checkServer($this->getConfig(array(
+ 'installed' => false
+ )));
$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();
$oldCurrentVersion = $session->get('OC_Version');
- $oldInstallVersion = \OC_Config::getValue('version', '0.0.0');
// upgrade condition to simulate needUpgrade() === true
$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
// 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);
// restore versions
$session->set('OC_Version', $oldCurrentVersion);
- \OC_Config::setValue('version', $oldInstallVersion);
}
/**
@@ -93,7 +106,7 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
}
/**
- * Test that checkDataDirectoryValidity and checkServer
+ * Test that checkDataDirectoryValidity and checkServer
* both return an error when ".ocdata" is missing.
*/
public function testCheckDataDirValidityWhenFileMissing() {
@@ -101,8 +114,11 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase {
$result = \OC_Util::checkDataDirectoryValidity($this->datadir);
$this->assertEquals(1, count($result));
- $result = \OC_Util::checkServer();
- $this->assertEquals(1, count($result));
+ $result = \OC_Util::checkServer($this->getConfig(array(
+ 'installed' => true,
+ 'version' => implode('.', OC_Util::getVersion())
+ )));
+ $this->assertCount(1, $result);
}
}