diff options
Diffstat (limited to 'pear/tests/pear_installer3.phpt')
-rw-r--r-- | pear/tests/pear_installer3.phpt | 415 |
1 files changed, 0 insertions, 415 deletions
diff --git a/pear/tests/pear_installer3.phpt b/pear/tests/pear_installer3.phpt deleted file mode 100644 index f997ab7e4d..0000000000 --- a/pear/tests/pear_installer3.phpt +++ /dev/null @@ -1,415 +0,0 @@ ---TEST-- -PEAR_Installer test #3 File Transactions ---SKIPIF-- -<?php -if (!getenv('PHP_PEAR_RUNTESTS')) { - echo 'skip'; -} -?> ---FILE-- -<?php -$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); -$installer->debug = 2; // hack debugging in -$curdir = getcwd(); -chdir(dirname(__FILE__)); - -echo "test addFileOperation():\n"; -echo "invalid input to addFileOperation():\n"; -$err = $installer->addFileOperation('rename', 2); -echo 'Returned PEAR_Error?'; -echo (get_class($err) == 'pear_error' ? " yes\n" : " no\n"); -if (get_class($err) == 'pear_error') { - echo $err->getMessage() . "\n"; -} -echo 'count($installer->file_operations) = '; -var_dump(count($installer->file_operations)); -echo "Do valid addFileOperation() delete\n"; -touch($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt'); -$installer->addFileOperation('delete', array($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt')); -echo 'count($installer->file_operations) = '; -var_dump(count($installer->file_operations)); - -echo "test valid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; -} - -echo "Do valid addFileOperation() rename\n"; -touch($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt'); -$installer->addFileOperation('rename', array($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt', $temp_path . - DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'renamed.phpt')); - -echo 'file renamed.phpt exists?'; -clearstatcache(); -echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR - . 'renamed.phpt') ? " yes\n" : " no\n"); -echo "test valid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; -} -echo 'file renamed.phpt exists?'; -clearstatcache(); -echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR - . 'renamed.phpt') ? " yes\n" : " no\n"); -unlink($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR - . 'renamed.phpt'); - -echo "Do valid addFileOperation() chmod\n"; -touch($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt'); -clearstatcache(); -$perms = fileperms($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt'); -// check to see if chmod works on this OS -chmod($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt', 0776); -clearstatcache(); -if (fileperms($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt') - == $perms && substr(PHP_OS, 0, 3) == 'WIN') { - // we are on windows, so skip this test, but simulate success -echo <<<EOF -file permissions are: 776 -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -file permissions are: 640 - -EOF; -} else { - $installer->addFileOperation('chmod', array(0640, $temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt')); - - echo 'file permissions are: ' . decoct(fileperms($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt')) . "\n"; - echo "test valid commitFileTransaction():\n"; - if ($installer->commitFileTransaction()) { - echo "worked\n"; - } else { - echo "didn't work!\n"; - } - echo 'file permissions are: ' . decoct(fileperms($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah.phpt')) . "\n"; -} -unlink($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR - . 'installertestfooblah.phpt'); - -mkdir($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR - . 'installertestfooblah'); -echo "Do valid addFileOperation() rmdir\n"; -echo 'directory exists?'; -clearstatcache(); -echo (is_dir($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah') ? " yes\n" : " no\n"); -$installer->addFileOperation('rmdir', array($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah')); - -echo "test valid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; -} -echo 'directory exists?'; - -clearstatcache(); -echo (is_dir($temp_path . DIRECTORY_SEPARATOR . - 'tmp' . DIRECTORY_SEPARATOR . 'installertestfooblah') ? " yes\n" : " no\n"); - -echo "Do valid addFileOperation() installed_as\n"; -$installer->addFileOperation('installed_as', array('test.php', - $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp' . DIRECTORY_SEPARATOR . 'fromp' . DIRECTORY_SEPARATOR - . 'installertestfooblah.phpt', - $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR, - 'glomp' . DIRECTORY_SEPARATOR . 'fromp')); -echo "test valid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; -} -if (isset($installer->pkginfo['filelist'])) { - echo "filelist created\n"; -} else { - echo "filelist not created!\n"; -} -if (isset($installer->pkginfo['filelist']['test.php'])) { - echo "filelist test.php created\n"; -} else { - echo "filelist test.php not created!\n"; -} -if (isset($installer->pkginfo['filelist']['test.php']['installed_as'])) { - echo "filelist test.php installed_as created\n"; -} else { - echo "filelist test.php installed_as not created!\n"; -} -$p = $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp' . DIRECTORY_SEPARATOR . 'fromp' . DIRECTORY_SEPARATOR - . 'installertestfooblah.phpt'; -if (@$installer->pkginfo['filelist']['test.php']['installed_as'] == $p) { - echo "filelist test.php installed_as is correct\n"; -} else { - echo "filelist test.php installed_as is not correct!\n"; -} -if (isset($installer->pkginfo['filelist']['dirtree'])) { - echo "filelist dirtree created\n"; -} else { - echo "filelist dirtree not created!\n"; -} -$p = $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp'; -if (isset($installer->pkginfo['filelist']['dirtree'][$p])) { - echo "filelist dirtree glomp created\n"; -} else { - echo "filelist dirtree glomp not created!\n"; -} -$p .= DIRECTORY_SEPARATOR . 'fromp'; -if (isset($installer->pkginfo['filelist']['dirtree'][$p])) { - echo "filelist dirtree fromp created\n"; -} else { - echo "filelist dirtree fromp not created!\n"; -} - -echo "Do valid addFileOperation() installed_as\n"; -$installer->addFileOperation('installed_as', array('test.php', - $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp' . DIRECTORY_SEPARATOR . 'fromp' . DIRECTORY_SEPARATOR - . 'installertestfooblah.phpt', - $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR, - 'glomp' . DIRECTORY_SEPARATOR . 'fromp')); -echo "test valid rollbackFileTransaction():\n"; -$installer->rollbackFileTransaction(); -if (isset($installer->pkginfo['filelist'])) { - echo "filelist created\n"; -} else { - echo "filelist not created!\n"; -} -if (isset($installer->pkginfo['filelist']['test.php'])) { - echo "filelist test.php created\n"; -} else { - echo "filelist test.php not created!\n"; -} -if (isset($installer->pkginfo['filelist']['test.php']['installed_as'])) { - echo "filelist test.php installed_as created\n"; -} else { - echo "filelist test.php installed_as not created!\n"; -} -$p = $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp' . DIRECTORY_SEPARATOR . 'fromp' . DIRECTORY_SEPARATOR - . 'installertestfooblah.phpt'; -if (@$installer->pkginfo['filelist']['test.php']['installed_as'] == $p) { - echo "filelist test.php installed_as is correct\n"; -} else { - echo "filelist test.php installed_as is not correct!\n"; -} -if (isset($installer->pkginfo['filelist']['dirtree'])) { - echo "filelist dirtree created\n"; -} else { - echo "filelist dirtree not created!\n"; -} -$p = $temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . - 'glomp'; -if (isset($installer->pkginfo['filelist']['dirtree'][$p])) { - echo "filelist dirtree glomp created\n"; -} else { - echo "filelist dirtree glomp not created!\n"; -} -$p .= DIRECTORY_SEPARATOR . 'fromp'; -if (isset($installer->pkginfo['filelist']['dirtree'][$p])) { - echo "filelist dirtree fromp created\n"; -} else { - echo "filelist dirtree fromp not created!\n"; -} - -// invalid tests -echo "\n==>Invalid tests\n"; -echo "Do valid addFileOperation() delete with non-existing file\n"; -$installer->addFileOperation('delete', array('gloober62456.phpt')); -echo 'count($installer->file_operations) = '; -var_dump(count($installer->file_operations)); - -echo "test invalid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; - $installer->rollbackFileTransaction(); -} - -echo "Do valid addFileOperation() rename with non-existing file\n"; -$installer->addFileOperation('rename', array('gloober62456.phpt', 'faber.com')); -echo 'count($installer->file_operations) = '; -var_dump(count($installer->file_operations)); - -echo "test invalid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; - $installer->rollbackFileTransaction(); -} - -echo "Do valid addFileOperation() chmod with non-existing file\n"; -$installer->addFileOperation('chmod', array(0640, 'faber.com')); -echo 'count($installer->file_operations) = '; -var_dump(count($installer->file_operations)); - -echo "test invalid commitFileTransaction():\n"; -if ($installer->commitFileTransaction()) { - echo "worked\n"; -} else { - echo "didn't work!\n"; - $installer->rollbackFileTransaction(); -} - -//cleanup -chdir($curdir); -unlink ($temp_path . DIRECTORY_SEPARATOR . 'pear.conf'); -unlink ($temp_path . DIRECTORY_SEPARATOR . 'pear.ini'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'php'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'data'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'doc'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'test'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'script'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'ext'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'tmp'); -rmdir($temp_path . DIRECTORY_SEPARATOR . 'bin'); -rmdir($temp_path); -?> ---EXPECT-- -test addFileOperation(): -invalid input to addFileOperation(): -Returned PEAR_Error? yes -Internal Error: $data in addFileOperation must be an array, was integer -count($installer->file_operations) = int(0) -Do valid addFileOperation() delete -count($installer->file_operations) = int(1) -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -Do valid addFileOperation() rename -file renamed.phpt exists? no -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -file renamed.phpt exists? yes -Do valid addFileOperation() chmod -file permissions are: 776 -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -file permissions are: 640 -Do valid addFileOperation() rmdir -directory exists? yes -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -directory exists? no -Do valid addFileOperation() installed_as -test valid commitFileTransaction(): -about to commit 1 file operations -successfully committed 1 file operations -worked -filelist created -filelist test.php created -filelist test.php installed_as created -filelist test.php installed_as is correct -filelist dirtree created -filelist dirtree glomp created -filelist dirtree fromp created -Do valid addFileOperation() installed_as -test valid rollbackFileTransaction(): -rolling back 1 file operations -filelist created -filelist test.php created -filelist test.php installed_as not created! -filelist test.php installed_as is not correct! -filelist dirtree not created! -filelist dirtree glomp not created! -filelist dirtree fromp not created! - -==>Invalid tests -Do valid addFileOperation() delete with non-existing file -count($installer->file_operations) = int(1) -test invalid commitFileTransaction(): -about to commit 1 file operations -warning: file gloober62456.phpt doesn't exist, can't be deleted -successfully committed 1 file operations -worked -Do valid addFileOperation() rename with non-existing file -count($installer->file_operations) = int(1) -test invalid commitFileTransaction(): -about to commit 1 file operations -cannot rename file gloober62456.phpt, doesn't exist -didn't work! -rolling back 1 file operations -Do valid addFileOperation() chmod with non-existing file -count($installer->file_operations) = int(1) -test invalid commitFileTransaction(): -about to commit 1 file operations -permission denied (chmod): faber.com 640 -didn't work! -rolling back 1 file operations |