Merge remote-tracking branch 'cow/pulls/3.3/check-isset-config' into 3.3

This commit is contained in:
Daniel Hensby 2016-08-02 11:57:45 +01:00
commit e7c6509196
No known key found for this signature in database
GPG Key ID: B00D1E9767F0B06E
2 changed files with 27 additions and 3 deletions

View File

@ -881,6 +881,7 @@ class Config_ForClass {
/**
* @param string $name
* @return mixed
*/
public function __get($name) {
return Config::inst()->get($this->class, $name);
@ -894,6 +895,16 @@ class Config_ForClass {
return Config::inst()->update($this->class, $name, $val);
}
/**
* @param string $name
* @return bool
*/
public function __isset($name)
{
$val = $this->__get($name);
return isset($val);
}
/**
* @param string $name
* @param int $sourceOptions

View File

@ -82,15 +82,15 @@ class ConfigTest_TestNest extends Object implements TestOnly {
}
class ConfigTest extends SapphireTest {
protected $depSettings = null;
public function setUp() {
parent::setUp();
$this->depSettings = Deprecation::dump_settings();
Deprecation::set_enabled(false);
}
public function tearDown() {
Deprecation::restore_settings($this->depSettings);
parent::tearDown();
@ -262,6 +262,19 @@ class ConfigTest extends SapphireTest {
$this->assertEquals(Object::static_lookup('ConfigTest_DefinesFooDoesntExtendObject', 'bar'), null);
}
public function testForClass() {
$config = ConfigTest_DefinesFoo::config();
// Set values
$this->assertTrue(isset($config->foo));
$this->assertFalse(empty($config->foo));
$this->assertEquals(1, $config->foo);
// Unset values
$this->assertFalse(isset($config->bar));
$this->assertTrue(empty($config->bar));
$this->assertNull($config->bar);
}
public function testFragmentOrder() {
$this->markTestIncomplete();
}