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'], '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(); $scriptName = $fakeRequest->getScriptName();
if (substr($scriptName, -1) == '/') { if (substr($scriptName, -1) == '/') {
$scriptName .= 'index.php'; $scriptName .= 'index.php';
@ -522,7 +522,7 @@ class OC {
} }
// setup the basic server // 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()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
\OC::$server->getEventLogger()->start('boot', 'Initialize'); \OC::$server->getEventLogger()->start('boot', 'Initialize');

View File

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

View File

@ -44,12 +44,19 @@ class SystemConfig {
'objectstore' => ['arguments' => ['password' => true]], 'objectstore' => ['arguments' => ['password' => true]],
]; ];
/** @var Config */
private $config;
public function __construct(Config $config) {
$this->config = $config;
}
/** /**
* Lists all available config keys * Lists all available config keys
* @return array an array of key names * @return array an array of key names
*/ */
public function getKeys() { 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 * @param mixed $value the value that should be stored
*/ */
public function setValue($key, $value) { 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 * If value is null, the config key will be deleted
*/ */
public function setValues(array $configs) { 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 * @return mixed the value or $default
*/ */
public function getValue($key, $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 * @param string $key the key of the value, under which it was saved
*/ */
public function deleteValue($key) { 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; $connection = $this->connection;
} }
if($systemConfig === null) { if($systemConfig === null) {
$systemConfig = $this->getMock('\OC\SystemConfig'); $systemConfig = $this->getMockBuilder('\OC\SystemConfig')
->disableOriginalConstructor()
->getMock();
} }
return new \OC\AllConfig($systemConfig, $connection); return new \OC\AllConfig($systemConfig, $connection);
} }
@ -89,7 +91,9 @@ class TestAllConfig extends \Test\TestCase {
public function testSetUserValueWithPreCondition() { public function testSetUserValueWithPreCondition() {
// mock the check for the database to run the correct SQL statements for each database type // 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()) $systemConfig->expects($this->once())
->method('getValue') ->method('getValue')
->with($this->equalTo('dbtype'), ->with($this->equalTo('dbtype'),
@ -133,7 +137,9 @@ class TestAllConfig extends \Test\TestCase {
*/ */
public function testSetUserValueWithPreConditionFailure() { public function testSetUserValueWithPreConditionFailure() {
// mock the check for the database to run the correct SQL statements for each database type // 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()) $systemConfig->expects($this->once())
->method('getValue') ->method('getValue')
->with($this->equalTo('dbtype'), ->with($this->equalTo('dbtype'),
@ -394,7 +400,9 @@ class TestAllConfig extends \Test\TestCase {
public function testGetUsersForUserValue() { public function testGetUsersForUserValue() {
// mock the check for the database to run the correct SQL statements for each database type // 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()) $systemConfig->expects($this->once())
->method('getValue') ->method('getValue')
->with($this->equalTo('dbtype'), ->with($this->equalTo('dbtype'),

View File

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