From cba21baacb4880eefd35279b0589e035c5a5c78e Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 16 Nov 2012 13:59:17 +0100 Subject: [PATCH] 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. --- .../config/_test/configuration.test.php | 31 +++++++++++++++++++ lib/plugins/config/_test/data/config.php | 14 +++++++++ lib/plugins/config/_test/data/metadata.php | 11 +++++++ lib/plugins/config/settings/config.class.php | 3 ++ 4 files changed, 59 insertions(+) create mode 100644 lib/plugins/config/_test/configuration.test.php create mode 100644 lib/plugins/config/_test/data/config.php create mode 100644 lib/plugins/config/_test/data/metadata.php 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 { -- GitLab