From 80f121266060fc7c37777005eb6814a54ecb008f Mon Sep 17 00:00:00 2001 From: Stig Bakken Date: Tue, 5 Mar 2002 17:39:53 +0000 Subject: [PATCH] * update PEAR_Config test --- pear/tests/merge.input | 1 + pear/tests/pear_config.phpt | 140 +++++++++++++++++++++++++++++------- pear/tests/toonew.conf | 2 + pear/tests/user2.input | 1 + 4 files changed, 117 insertions(+), 27 deletions(-) create mode 100644 pear/tests/merge.input create mode 100644 pear/tests/toonew.conf create mode 100644 pear/tests/user2.input diff --git a/pear/tests/merge.input b/pear/tests/merge.input new file mode 100644 index 0000000000..440106ea45 --- /dev/null +++ b/pear/tests/merge.input @@ -0,0 +1 @@ +a:1:{s:7:"verbose";i:100;} \ No newline at end of file diff --git a/pear/tests/pear_config.phpt b/pear/tests/pear_config.phpt index 726858a77e..83b4bc2829 100644 --- a/pear/tests/pear_config.phpt +++ b/pear/tests/pear_config.phpt @@ -8,35 +8,84 @@ chdir(dirname(__FILE__)); include "../PEAR/Config.php"; copy("system.input", "system.conf"); copy("user.input", "user.conf"); -PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s\n"); -dumpall(); +copy("user2.input", "user2.conf"); +copy("merge.input", "merge.conf"); +PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s\n"); + +print "#0 starting up\n"; +dump_files(); -print "creating config object\n"; +print "#1 testing: constructor\n"; $config = new PEAR_Config("user.conf", "system.conf"); +dump_array("files", $config->files); -print "overriding system values\n"; -$config->set("master_server", "pear.localdomain"); -$config->writeConfigFile(null, "user"); +print "#2 testing: singleton\n"; +$cf2 = PEAR_Config::singleton(); +dump_array("files", $cf2->files); + +print "#3 testing: readConfigFile\n"; +$config->readConfigFile("user2.conf", "user"); +dump_config($config); +$config->readConfigFile("user.conf"); +dump_config($config); + +print "#4 testing: mergeConfigFile\n"; +$config->readConfigFile("user2.conf"); +dump_config($config, "user"); +$config->mergeConfigFile("merge.conf", true); +dump_config($config, "user"); +$config->readConfigFile("user2.conf"); +$config->mergeConfigFile("merge.conf", false); +dump_config($config, "user"); +$config->readConfigFile("user.conf"); +dump_config($config, "user"); +$config->mergeConfigFile("merge.conf", true, "xyzzy"); + +print "#5 testing: config file version detection\n"; +$config->readConfigFile("user.conf", "user"); +$config->readConfigFile("toonew.conf", "user"); + +print "#6 testing: get/set/remove\n"; +var_dump($config->get("verbose")); +$config->set("verbose", 100, "system"); +var_dump($config->get("verbose")); +$config->set("verbose", 2, "user"); +var_dump($config->get("verbose")); +$config->set("verbose", 2, "system"); +$config->set("verbose", 50, "user"); +var_dump($config->get("verbose")); +$config->remove("verbose", "user"); +var_dump($config->get("verbose")); +$config->remove("verbose", "system"); +var_dump($config->get("verbose")); + + +/* +print "setting user values\n"; +var_dump($config->set("master_server", "pear.localdomain")); +var_dump($config->writeConfigFile(null, "user")); dumpall(); -var_dump($config->get("master_server")); print "going back to defaults\n"; $config->remove("master_server", "user"); $config->writeConfigFile(null, "user"); dumpall(); +*/ // print "done\n"; unlink("user.conf"); +unlink("user2.conf"); unlink("system.conf"); +unlink("merge.conf"); // ------------------------------------------------------------------------- // -function dumpit($file) +function dump_file($file) { - print "$file:"; + print "..$file:"; $data = PEAR_Config::_readConfigDataFrom($file); if (empty($data)) { print " \n"; @@ -48,26 +97,63 @@ function dumpit($file) print "\n"; } -function dumpall() -{ - print "dumping...\n"; - dumpit("system.conf"); - dumpit("user.conf"); +function dump_files() { + dump_file("system.conf"); + dump_file("user.conf"); +} + +function dump_array($name, $arr) { + print "$name:"; + if (empty($arr)) { + print " "; + } else { + foreach ($arr as $k => $v) { + print " $k=\"$v\""; + } + } + print "\n"; +} + +function dump_config(&$obj, $layer = null) { + if ($layer !== null) { + dump_array($layer, $obj->configuration[$layer]); + return; + } + foreach ($obj->configuration as $layer => $data) { + if ($layer == "default") { + continue; + } + dump_array($layer, $data); + } } ?> --EXPECT-- -dumping... -system.conf: master_server="pear.php.net" -user.conf: -creating config object -overriding system values -dumping... -system.conf: master_server="pear.php.net" -user.conf: master_server="pear.localdomain" -string(16) "pear.localdomain" -going back to defaults -dumping... -system.conf: master_server="pear.php.net" -user.conf: +#0 starting up +..system.conf: master_server="pear.php.net" +..user.conf: +#1 testing: constructor +files: system="system.conf" user="user.conf" +#2 testing: singleton +files: system="system.conf" user="user.conf" +#3 testing: readConfigFile +user: verbose="2" +system: master_server="pear.php.net" +user: +system: master_server="pear.php.net" +#4 testing: mergeConfigFile +user: verbose="2" +user: verbose="100" +user: verbose="2" +user: +unknown config file type `xyzzy' +#5 testing: config file version detection +toonew.conf: unknown version `2.0' +#6 testing: get/set/remove +int(1) +int(100) +int(2) +int(50) +int(2) +int(1) done diff --git a/pear/tests/toonew.conf b/pear/tests/toonew.conf new file mode 100644 index 0000000000..6f0c72fe4b --- /dev/null +++ b/pear/tests/toonew.conf @@ -0,0 +1,2 @@ +#PEAR_Config 2.0 +master_server = pear.php.net diff --git a/pear/tests/user2.input b/pear/tests/user2.input new file mode 100644 index 0000000000..ac9a8afc0d --- /dev/null +++ b/pear/tests/user2.input @@ -0,0 +1 @@ +a:1:{s:7:"verbose";i:2;} \ No newline at end of file -- 2.40.0