Browse Source

Inject Config into SystemConfig

tags/v9.0beta1
Roeland Jago Douma 8 years ago
parent
commit
0a09004d39
5 changed files with 32 additions and 15 deletions
  1. 2
    2
      lib/base.php
  2. 4
    3
      lib/private/server.php
  3. 12
    5
      lib/private/systemconfig.php
  4. 12
    4
      tests/lib/allconfig.php
  5. 2
    1
      tests/lib/server.php

+ 2
- 2
lib/base.php 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');


+ 4
- 3
lib/private/server.php 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());

+ 12
- 5
lib/private/systemconfig.php 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);
}

/**

+ 12
- 4
tests/lib/allconfig.php 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'),

+ 2
- 1
tests/lib/server.php 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() {

Loading…
Cancel
Save