summaryrefslogtreecommitdiff
path: root/pear
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2003-12-03 22:53:58 +0000
committerGreg Beaver <cellog@php.net>2003-12-03 22:53:58 +0000
commit4e5e628637b4a9cb8c7f85e2c2853a793c73dc52 (patch)
tree40e57c86bb3fb2219f87a99c91f0797758e8aba8 /pear
parent81e41e3cb966c2ec5d902d619a2934d98ce77d4f (diff)
downloadphp-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.phpt217
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