diff options
author | Greg Beaver <cellog@php.net> | 2003-12-03 22:53:58 +0000 |
---|---|---|
committer | Greg Beaver <cellog@php.net> | 2003-12-03 22:53:58 +0000 |
commit | 4e5e628637b4a9cb8c7f85e2c2853a793c73dc52 (patch) | |
tree | 40e57c86bb3fb2219f87a99c91f0797758e8aba8 /pear | |
parent | 81e41e3cb966c2ec5d902d619a2934d98ce77d4f (diff) | |
download | php-git-4e5e628637b4a9cb8c7f85e2c2853a793c73dc52.tar.gz |
new unit test for downloader - incomplete.
WARNING: this test requires a fully functional pearweb server at address pear.Chiara, with several packages available for download. This one will fail until Martin has time to set up test.pear.php.net as the server.
Diffstat (limited to 'pear')
-rw-r--r-- | pear/tests/pear_downloader_old.phpt | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/pear/tests/pear_downloader_old.phpt b/pear/tests/pear_downloader_old.phpt new file mode 100644 index 0000000000..56ef1e1aa2 --- /dev/null +++ b/pear/tests/pear_downloader_old.phpt @@ -0,0 +1,217 @@ +--TEST-- +PEAR_Installer test: PEAR_Installer::download() (deprecated) +--SKIPIF-- +<?php +if (!getenv('PHP_PEAR_RUNTESTS')) { + echo 'skip'; +} +?> +--FILE-- +<?php + +$server = 'pear.Chiara'; +//$server = 'test.pear.php.net'; +$temp_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testinstallertemp'; +if (!is_dir($temp_path)) { + mkdir($temp_path); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'php')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'php'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'data')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'data'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'doc')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'doc'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'test')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'test'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'ext')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'ext'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'script')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'script'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'tmp')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'tmp'); +} +if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'bin')) { + mkdir($temp_path . DIRECTORY_SEPARATOR . 'bin'); +} +// make the fake configuration - we'll use one of these and it should work +$config = serialize(array('master_server' => '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'); +set_error_handler('catchphp'); + +function catchphp($errno, $errmsg) +{ + if (error_reporting() == 0) { + return; + } + $errlevel = array( + E_USER_NOTICE => 'Notice', + E_USER_WARNING => 'Warning', + E_USER_ERROR => 'Error', + E_WARNING => 'Warning', + E_NOTICE => 'Notice' + ); + echo $errlevel[$errno] . ': ' . $errmsg . "\n"; +} +$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 simple direct url download:\n"; + +$config = &PEAR_Config::singleton(); +$packages = array("http://$server/get/pkg6-1.1.tgz"); +$a = $installer->download($packages, array(), &$config, &$installpackages, &$errors); +var_dump($a, $errors); + +echo "File exists? "; +echo (is_file($installpackages[0]['file'])) ? "yes\n" : "no\n"; +echo "File is the same? "; +$good = implode('', file(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'pkg6-1.1.tgz')); +$dled = implode('', file($installpackages[0]['file'])); +echo ($good == $dled) ? "yes\n" : "no\n"; +unset($installpackages[0]['file']); +var_dump($installpackages); +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 simple direct url download: +Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class +NULL +array(0) { +} +File exists? yes +File is the same? yes +array(1) { + [0]=> + array(2) { + ["pkg"]=> + string(4) "pkg6" + ["info"]=> + array(11) { + ["provides"]=> + array(0) { + } + ["filelist"]=> + &array(3) { + ["zoorb.php"]=> + array(2) { + ["role"]=> + string(3) "php" + ["baseinstalldir"]=> + string(5) "groob" + } + ["goompness\oggbrzitzkee.php"]=> + array(2) { + ["role"]=> + string(3) "php" + ["baseinstalldir"]=> + string(5) "groob" + } + ["goompness\Mopreeb.php"]=> + array(2) { + ["role"]=> + string(3) "php" + ["baseinstalldir"]=> + string(5) "groob" + } + } + ["package"]=> + string(4) "pkg6" + ["summary"]=> + string(32) "required test for PEAR_Installer" + ["description"]=> + string(12) "fake package" + ["maintainers"]=> + array(1) { + [0]=> + &array(4) { + ["handle"]=> + string(8) "fakeuser" + ["name"]=> + string(9) "Joe Shmoe" + ["email"]=> + string(18) "nobody@example.com" + ["role"]=> + string(4) "lead" + } + } + ["version"]=> + string(3) "1.1" + ["release_date"]=> + string(10) "2003-09-09" + ["release_license"]=> + string(11) "PHP License" + ["release_state"]=> + string(6) "stable" + ["release_notes"]=> + string(24) "required dependency test" + } + } +}
\ No newline at end of file |