summaryrefslogtreecommitdiff
path: root/pear
diff options
context:
space:
mode:
authorStig Bakken <ssb@php.net>2002-03-05 17:39:53 +0000
committerStig Bakken <ssb@php.net>2002-03-05 17:39:53 +0000
commit80f121266060fc7c37777005eb6814a54ecb008f (patch)
treef5a53a4a7c7eb968ddb70af677765eefe11d22f3 /pear
parent856e382c8b0d5c71f4e992fcff2b87849bc86b04 (diff)
downloadphp-git-80f121266060fc7c37777005eb6814a54ecb008f.tar.gz
* update PEAR_Config test
Diffstat (limited to 'pear')
-rw-r--r--pear/tests/merge.input1
-rw-r--r--pear/tests/pear_config.phpt140
-rw-r--r--pear/tests/toonew.conf2
-rw-r--r--pear/tests/user2.input1
4 files changed, 117 insertions, 27 deletions
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 " <empty>\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 " <empty>";
+ } 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: <empty>
-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: <empty>
+#0 starting up
+..system.conf: master_server="pear.php.net"
+..user.conf: <empty>
+#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: <empty>
+system: master_server="pear.php.net"
+#4 testing: mergeConfigFile
+user: verbose="2"
+user: verbose="100"
+user: verbose="2"
+user: <empty>
+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