Load a separate config (if present) when running unit tests

This commit is contained in:
Robin Appelman 2014-01-17 14:40:48 +01:00
parent 16033c8123
commit 6b4c3df087
4 changed files with 14 additions and 5 deletions

View File

@ -57,6 +57,9 @@ class OC {
* web path in 'url' * web path in 'url'
*/ */
public static $APPSROOTS = array(); public static $APPSROOTS = array();
public static $configDir;
/* /*
* requested app * requested app
*/ */
@ -100,6 +103,13 @@ class OC {
get_include_path() get_include_path()
); );
if(defined('PHPUNIT_RUN') and PHPUNIT_RUN and is_dir(OC::$SERVERROOT . '/test_config/')) {
self::$configDir = OC::$SERVERROOT . '/test_config/';
} else {
self::$configDir = OC::$SERVERROOT . '/config/';
}
OC_Config::$object = new \OC\Config(self::$configDir);
OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT))); OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT)));
$scriptName = OC_Request::scriptName(); $scriptName = OC_Request::scriptName();
if (substr($scriptName, -1) == '/') { if (substr($scriptName, -1) == '/') {
@ -175,8 +185,8 @@ class OC {
} }
public static function checkConfig() { public static function checkConfig() {
if (file_exists(OC::$SERVERROOT . "/config/config.php") if (file_exists(self::$configDir . "/config.php")
and !is_writable(OC::$SERVERROOT . "/config/config.php") and !is_writable(self::$configDir . "/config.php")
) { ) {
$defaults = new OC_Defaults(); $defaults = new OC_Defaults();
if (self::$CLI) { if (self::$CLI) {

View File

@ -50,7 +50,7 @@ class Config {
protected $debugMode; protected $debugMode;
/** /**
* @param $configDir path to the config dir, needs to end with '/' * @param string $configDir path to the config dir, needs to end with '/'
*/ */
public function __construct($configDir) { public function __construct($configDir) {
$this->configDir = $configDir; $this->configDir = $configDir;

View File

@ -38,7 +38,6 @@
* This class is responsible for reading and writing config.php, the very basic * This class is responsible for reading and writing config.php, the very basic
* configuration file of ownCloud. * configuration file of ownCloud.
*/ */
OC_Config::$object = new \OC\Config(OC::$SERVERROOT.'/config/');
class OC_Config { class OC_Config {
/** /**

View File

@ -312,7 +312,7 @@ class OC_Util {
.'" target="_blank">giving the webserver write access to the root directory</a>.'; .'" target="_blank">giving the webserver write access to the root directory</a>.';
// Check if config folder is writable. // Check if config folder is writable.
if(!is_writable(OC::$SERVERROOT."/config/") or !is_readable(OC::$SERVERROOT."/config/")) { if(!is_writable(OC::$configDir) or !is_readable(OC::$configDir)) {
$errors[] = array( $errors[] = array(
'error' => "Can't write into config directory", 'error' => "Can't write into config directory",
'hint' => 'This can usually be fixed by ' 'hint' => 'This can usually be fixed by '