diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php new file mode 100644 index 0000000000000000000000000000000000000000..eeeff61a398b5a45d508f1338c24aeb8cd222ee2 --- /dev/null +++ b/lib/plugins/config/_test/configuration.test.php @@ -0,0 +1,31 @@ +<?php + +class plugin_config_configuration_test extends DokuWikiTest { + + private $config = ''; + private $meta = ''; + + function __construct() { + $this->config = dirname(__FILE__).'/data/config.php'; + $this->meta = dirname(__FILE__).'/data/metadata.php'; + require_once(dirname(__FILE__).'/../settings/config.class.php'); + } + + function test_readconfig() { + $confmgr = new configuration($this->meta); + + $conf = $confmgr->_read_config($this->config); + + //print_r($conf); + + $this->assertEquals('42', $conf['int1']); + $this->assertEquals('6*7', $conf['int2']); + + $this->assertEquals('Hello World', $conf['str1']); + $this->assertEquals('G\'day World', $conf['str2']); + $this->assertEquals('Hello World', $conf['str3']); + $this->assertEquals("Hello 'World'", $conf['str4']); + $this->assertEquals('Hello "World"', $conf['str5']); + } + +} \ No newline at end of file diff --git a/lib/plugins/config/_test/data/config.php b/lib/plugins/config/_test/data/config.php new file mode 100644 index 0000000000000000000000000000000000000000..4ed450e9301d0026eb9ddc2b9a0635eff8bc8b05 --- /dev/null +++ b/lib/plugins/config/_test/data/config.php @@ -0,0 +1,14 @@ +<?php + + +$conf['int1'] = 42; +$conf['int2'] = 6*7; + +$conf['str1'] = 'Hello World'; +$conf['str2'] = 'G\'day World'; +$conf['str3'] = "Hello World"; +$conf['str4'] = "Hello 'World'"; +$conf['str5'] = "Hello \"World\""; + +$conf['foo']['bar'] = 'x1'; +$conf['foo']['baz'] = 'x2'; diff --git a/lib/plugins/config/_test/data/metadata.php b/lib/plugins/config/_test/data/metadata.php new file mode 100644 index 0000000000000000000000000000000000000000..34ab42be7c7c32a8fbbced8a1667e76853765bc5 --- /dev/null +++ b/lib/plugins/config/_test/data/metadata.php @@ -0,0 +1,11 @@ +<?php + +$meta['int1'] = array('numeric'); +$meta['int2'] = array('numeric'); + +$meta['str1'] = array('string'); +$meta['str2'] = array('string'); +$meta['str3'] = array('string'); +$meta['str4'] = array('string'); +$meta['str5'] = array('string'); + diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index e71a7e5f9fb54adeddeb19082bcb84d31e8b32a5..5a2aa298049f57b16dcf1690570a4f4a862c9599 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -6,6 +6,9 @@ * @author Ben Coburn <btcoburn@silicodon.net> */ + +if(!defined('CM_KEYMARKER')) define('CM_KEYMARKER','____'); + if (!class_exists('configuration')) { class configuration {