From: Greg Beaver Date: Mon, 1 Dec 2003 04:51:21 +0000 (+0000) Subject: new test case and supporting files - incomplete, but works as it is X-Git-Tag: php-5.0.0b3RC1~457 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=036ac99eefed7fa923df2346bf27d3c06ede7d5f;p=php new test case and supporting files - incomplete, but works as it is --- diff --git a/pear/tests/pear_installer4.phpt b/pear/tests/pear_installer4.phpt new file mode 100644 index 0000000000..c9af6c43b0 --- /dev/null +++ b/pear/tests/pear_installer4.phpt @@ -0,0 +1,259 @@ +--TEST-- +PEAR_Installer test #4: PEAR_Installer::install() +--SKIPIF-- + +--FILE-- + 'pear.php.net', + 'php_dir' => $temp_path . DIRECTORY_SEPARATOR . 'php', + 'ext_dir' => $temp_path . DIRECTORY_SEPARATOR . 'ext', + 'data_dir' => $temp_path . DIRECTORY_SEPARATOR . 'data', + 'doc_dir' => $temp_path . DIRECTORY_SEPARATOR . 'doc', + 'test_dir' => $temp_path . DIRECTORY_SEPARATOR . 'test', + 'bin_dir' => $temp_path . DIRECTORY_SEPARATOR . 'bin',)); +touch($temp_path . DIRECTORY_SEPARATOR . 'pear.conf'); +$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'pear.conf', 'w'); +fwrite($fp, $config); +fclose($fp); +touch($temp_path . DIRECTORY_SEPARATOR . 'pear.ini'); +$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'pear.ini', 'w'); +fwrite($fp, $config); +fclose($fp); + +putenv('PHP_PEAR_SYSCONF_DIR='.$temp_path); +$home = getenv('HOME'); +if (!empty($home)) { + // for PEAR_Config initialization + putenv('HOME="'.$temp_path); +} +require_once "PEAR/Installer.php"; + +// no UI is needed for these tests +$ui = false; +$installer = new PEAR_Installer($ui); +$curdir = getcwd(); +chdir(dirname(__FILE__)); + +PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'catchit'); + +$error_to_catch = false; +function catchit($err) +{ + global $error_to_catch; + if ($error_to_catch) { + if ($err->getMessage() == $error_to_catch) { + $error_to_catch = false; + echo "Caught expected error\n"; + return; + } + } + echo "Caught error: " . $err->getMessage() . "\n"; +} + +echo "Test package.xml direct install:\n"; +$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'package.xml'); +$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; +echo "After uninstall:\n"; +$installer->uninstall('pkg6'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; +echo "goompness exists? "; +echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness')) + ? "yes\n" : "no\n"; + +echo "Test .tgz install:\n"; +$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'pkg6-1.1.tgz'); +$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; +echo "After uninstall:\n"; +$installer->uninstall('pkg6'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; +echo "goompness exists? "; +echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness')) + ? "yes\n" : "no\n"; + +echo "Test invalid .tgz install:\n"; +$error_to_catch = 'unable to unpack ' . dirname(__FILE__) . DIRECTORY_SEPARATOR . + 'test-pkg6' . DIRECTORY_SEPARATOR . 'invalidtgz.tgz'; +$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'invalidtgz.tgz'); +$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; + +echo "Test missing package.xml in .tgz install:\n"; +$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'nopackagexml.tgz'); +$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php'); +var_dump($reg->listPackages()); +echo "zoorb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'zoorb.php')) ? "yes\n" : "no\n"; +echo "goompness/Mopreeb.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'Mopreeb.php')) ? "yes\n" : "no\n"; +echo "goompness/oggbrzitzkee.php exists? "; +echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' + . DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness' + . DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n"; + +chdir($curdir); +cleanall($temp_path); + +// ------------------------------------------------------------------------- // + +function cleanall($dir) +{ + $dp = opendir($dir); + while ($ent = readdir($dp)) { + if ($ent == '.' || $ent == '..') { + continue; + } + if (is_dir($dir . DIRECTORY_SEPARATOR . $ent)) { + cleanall($dir . DIRECTORY_SEPARATOR . $ent); + } else { + unlink($dir . DIRECTORY_SEPARATOR . $ent); + } + } + closedir($dp); + rmdir($dir); +} +?> +--GET-- +--POST-- +--EXPECT-- +Test package.xml direct install: +array(1) { + [0]=> + string(4) "pkg6" +} +zoorb.php exists? yes +goompness/Mopreeb.php exists? yes +goompness/oggbrzitzkee.php exists? yes +After uninstall: +array(0) { +} +zoorb.php exists? no +goompness/Mopreeb.php exists? no +goompness/oggbrzitzkee.php exists? no +goompness exists? no +Test .tgz install: +array(1) { + [0]=> + string(4) "pkg6" +} +zoorb.php exists? yes +goompness/Mopreeb.php exists? yes +goompness/oggbrzitzkee.php exists? yes +After uninstall: +array(0) { +} +zoorb.php exists? no +goompness/Mopreeb.php exists? no +goompness/oggbrzitzkee.php exists? no +goompness exists? no +Test invalid .tgz install: +Caught error: Invalid checksum for file " + \ No newline at end of file diff --git a/pear/tests/test-pkg6/goompness/oggbrzitzkee.php b/pear/tests/test-pkg6/goompness/oggbrzitzkee.php new file mode 100644 index 0000000000..5422435ff8 --- /dev/null +++ b/pear/tests/test-pkg6/goompness/oggbrzitzkee.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/pear/tests/test-pkg6/invalidtgz.tgz b/pear/tests/test-pkg6/invalidtgz.tgz new file mode 100644 index 0000000000..909d507ca6 --- /dev/null +++ b/pear/tests/test-pkg6/invalidtgz.tgz @@ -0,0 +1,35 @@ + + + + pkg6 + required test for PEAR_Installer + + fake package + + PHP License + + + fakeuser + Joe Shmoe + nobody@example.com + lead + + + + 1.1 + 2003-09-09 + stable + + required dependency test + + + + zoorb.php + + oggbrzitzkee.php + Mopreeb.php + + + + + diff --git a/pear/tests/test-pkg6/nopackagexml.tgz b/pear/tests/test-pkg6/nopackagexml.tgz new file mode 100644 index 0000000000..8b9d9aad02 Binary files /dev/null and b/pear/tests/test-pkg6/nopackagexml.tgz differ diff --git a/pear/tests/test-pkg6/package.xml b/pear/tests/test-pkg6/package.xml new file mode 100644 index 0000000000..102f972766 --- /dev/null +++ b/pear/tests/test-pkg6/package.xml @@ -0,0 +1,35 @@ + + + + pkg6 + required test for PEAR_Installer + + fake package + + PHP License + + + fakeuser + Joe Shmoe + nobody@example.com + lead + + + + 1.1 + 2003-09-09 + stable + + required dependency test + + + + zoorb.php + + oggbrzitzkee.php + Mopreeb.php + + + + + diff --git a/pear/tests/test-pkg6/pkg6-1.1.tgz b/pear/tests/test-pkg6/pkg6-1.1.tgz new file mode 100644 index 0000000000..09868cab44 Binary files /dev/null and b/pear/tests/test-pkg6/pkg6-1.1.tgz differ diff --git a/pear/tests/test-pkg6/zoorb.php b/pear/tests/test-pkg6/zoorb.php new file mode 100644 index 0000000000..5422435ff8 --- /dev/null +++ b/pear/tests/test-pkg6/zoorb.php @@ -0,0 +1,11 @@ + \ No newline at end of file