Inject Config into SystemConfig

This commit is contained in:
Roeland Jago Douma 2015-12-18 11:24:15 +01:00
parent 82bf99c0cf
commit 0a09004d39
5 changed files with 32 additions and 15 deletions

View file

@ -142,7 +142,7 @@ class OC {
'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'],
],
];
$fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig()));
$fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig(self::$config)));
$scriptName = $fakeRequest->getScriptName();
if (substr($scriptName, -1) == '/') {
$scriptName .= 'index.php';
@ -522,7 +522,7 @@ class OC {
}
// setup the basic server
self::$server = new \OC\Server(\OC::$WEBROOT);
self::$server = new \OC\Server(\OC::$WEBROOT, self::$config);
\OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
\OC::$server->getEventLogger()->start('boot', 'Initialize');

View file

@ -84,8 +84,9 @@ class Server extends SimpleContainer implements IServerContainer {
/**
* @param string $webRoot
* @param \OC\Config $config
*/
public function __construct($webRoot) {
public function __construct($webRoot, \OC\Config $config) {
parent::__construct();
$this->webRoot = $webRoot;
@ -238,8 +239,8 @@ class Server extends SimpleContainer implements IServerContainer {
$c->getSystemConfig()
);
});
$this->registerService('SystemConfig', function ($c) {
return new \OC\SystemConfig();
$this->registerService('SystemConfig', function ($c) use ($config) {
return new \OC\SystemConfig($config);
});
$this->registerService('AppConfig', function ($c) {
return new \OC\AppConfig(\OC_DB::getConnection());

View file

@ -44,12 +44,19 @@ class SystemConfig {
'objectstore' => ['arguments' => ['password' => true]],
];
/** @var Config */
private $config;
public function __construct(Config $config) {
$this->config = $config;
}
/**
* Lists all available config keys
* @return array an array of key names
*/
public function getKeys() {
return \OC::$config->getKeys();
return $this->config->getKeys();
}
/**
@ -59,7 +66,7 @@ class SystemConfig {
* @param mixed $value the value that should be stored
*/
public function setValue($key, $value) {
\OC::$config->setValue($key, $value);
$this->config->setValue($key, $value);
}
/**
@ -69,7 +76,7 @@ class SystemConfig {
* If value is null, the config key will be deleted
*/
public function setValues(array $configs) {
\OC::$config->setValues($configs);
$this->config->setValues($configs);
}
/**
@ -80,7 +87,7 @@ class SystemConfig {
* @return mixed the value or $default
*/
public function getValue($key, $default = '') {
return \OC::$config->getValue($key, $default);
return $this->config->getValue($key, $default);
}
/**
@ -106,7 +113,7 @@ class SystemConfig {
* @param string $key the key of the value, under which it was saved
*/
public function deleteValue($key) {
\OC::$config->deleteKey($key);
$this->config->deleteKey($key);
}
/**

View file

@ -28,7 +28,9 @@ class TestAllConfig extends \Test\TestCase {
$connection = $this->connection;
}
if($systemConfig === null) {
$systemConfig = $this->getMock('\OC\SystemConfig');
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
->disableOriginalConstructor()
->getMock();
}
return new \OC\AllConfig($systemConfig, $connection);
}
@ -89,7 +91,9 @@ class TestAllConfig extends \Test\TestCase {
public function testSetUserValueWithPreCondition() {
// mock the check for the database to run the correct SQL statements for each database type
$systemConfig = $this->getMock('\OC\SystemConfig');
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
->disableOriginalConstructor()
->getMock();
$systemConfig->expects($this->once())
->method('getValue')
->with($this->equalTo('dbtype'),
@ -133,7 +137,9 @@ class TestAllConfig extends \Test\TestCase {
*/
public function testSetUserValueWithPreConditionFailure() {
// mock the check for the database to run the correct SQL statements for each database type
$systemConfig = $this->getMock('\OC\SystemConfig');
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
->disableOriginalConstructor()
->getMock();
$systemConfig->expects($this->once())
->method('getValue')
->with($this->equalTo('dbtype'),
@ -394,7 +400,9 @@ class TestAllConfig extends \Test\TestCase {
public function testGetUsersForUserValue() {
// mock the check for the database to run the correct SQL statements for each database type
$systemConfig = $this->getMock('\OC\SystemConfig');
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
->disableOriginalConstructor()
->getMock();
$systemConfig->expects($this->once())
->method('getValue')
->with($this->equalTo('dbtype'),

View file

@ -38,7 +38,8 @@ class Server extends \Test\TestCase {
public function setUp() {
parent::setUp();
$this->server = new \OC\Server('');
$config = new \OC\Config(\OC::$configDir);
$this->server = new \OC\Server('', $config);
}
public function dataTestQuery() {