summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-11-16 13:59:17 +0100
committerAndreas Gohr <andi@splitbrain.org>2012-11-16 13:59:17 +0100
commitcba21baacb4880eefd35279b0589e035c5a5c78e (patch)
treea5aca28b7fa6bfe805fb7b8a7eb91dbc3ba602d1
parentd30b165d18ab3a6868d3b3e96e7bac782fb58441 (diff)
downloadrpg-cba21baacb4880eefd35279b0589e035c5a5c78e.tar.gz
rpg-cba21baacb4880eefd35279b0589e035c5a5c78e.tar.bz2
started to add some unit tests to config manager
Parsing the config file should be completely tested before we can rely on it and safely extend it. This just adds the first very basic tests.
-rw-r--r--lib/plugins/config/_test/configuration.test.php31
-rw-r--r--lib/plugins/config/_test/data/config.php14
-rw-r--r--lib/plugins/config/_test/data/metadata.php11
-rw-r--r--lib/plugins/config/settings/config.class.php3
4 files changed, 59 insertions, 0 deletions
diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php
new file mode 100644
index 000000000..eeeff61a3
--- /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 000000000..4ed450e93
--- /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 000000000..34ab42be7
--- /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 e71a7e5f9..5a2aa2980 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 {