1--TEST-- 2PEAR_Info using custom configuration 3--FILE-- 4<?php 5$ds = DIRECTORY_SEPARATOR; 6$dir = dirname(__FILE__); 7$sysconfdir = $dir . $ds . 'sysconf_dir'; 8$peardir = $dir . $ds . 'pear_dir'; 9$userdir = $dir . $ds . 'user_dir'; 10 11putenv("PHP_PEAR_SYSCONF_DIR=" . $sysconfdir); 12chdir($dir); 13 14// we get PEAR_Info class only here due to setting of PEAR_CONFIG_SYSCONFDIR 15include_once 'PEAR/Info.php'; 16 17if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 18 $conf_file = $peardir . $ds . 'pearsys.ini'; 19 $custom_file1 = $peardir . $ds . 'name1.pearsys.ini'; 20 $custom_file2 = $userdir . $ds . 'name2.pearsys.ini'; 21} else { 22 $conf_file = $peardir . $ds . 'pear.conf'; 23 $custom_file1 = $peardir . $ds . 'name1.pear.conf'; 24 $custom_file2 = $userdir . $ds . 'name2.pear.conf'; 25} 26 27if (!file_exists($conf_file)) { 28 // write once PEAR system-wide config file for simulation 29 $config =& PEAR_Config::singleton(); 30 $config->set('php_dir', $peardir); 31 $config->writeConfigFile($conf_file); 32 33 // also writes custom pear system config files 34 $config->writeConfigFile($custom_file1); 35 $config->writeConfigFile($custom_file2); 36} 37 38/** 39 * TestCase 1: 40 * class constructor with only $pear_dir parameter 41 * 42 * Will try to detect if default user config files (pear.ini | .pearrc), 43 * and/or default system config files (pearsys.ini | pear.conf) are available 44 * into $peardir directory. 45 */ 46$testCase = 'testConfigFilesExistWithDefaultNameInPearDir'; 47 48$GLOBALS['_PEAR_Config_instance'] = null; 49 50$pear_dir = $peardir; 51 52// try to load PEAR system config ($conf_file) from system dir 53$pearInfo = new PEAR_Info($pear_dir); 54 55$result = (!is_null($pearInfo->reg)) 56 ? 'OK' : 'System PEAR configuration files does not exist'; 57 58echo $testCase . ' : ' . $result; 59echo "\n"; 60 61/** 62 * TestCase 2: 63 * class constructor with 3 parameters ($pear_dir, $user_file, and $system_file) 64 * 65 * Will try to detect if user config files and/or system config files 66 * are available into $peardir directory. 67 */ 68$testCase = 'testConfigFilesExistWithCustomNameInPearDir'; 69 70$GLOBALS['_PEAR_Config_instance'] = null; 71 72$pear_dir = $peardir; 73$user_file = ''; 74$system_file = $custom_file1; 75 76// try to load PEAR system config ($custom_file1) from pear dir 77$pearInfo = new PEAR_Info($pear_dir, $user_file, $system_file); 78 79$result = (!is_null($pearInfo->reg)) 80 ? 'OK' : 'User PEAR configuration files does not exist'; 81 82echo $testCase . ' : ' . $result; 83echo "\n"; 84 85/** 86 * TestCase 3: 87 * class constructor with parameters ($user_file, and $system_file) 88 * 89 * Will try to detect if user config files and/or system config files 90 * are available into user directory. 91 */ 92$testCase = 'testConfigFilesExistInUserDir'; 93 94$GLOBALS['_PEAR_Config_instance'] = null; 95 96if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 97 $user_file = $userdir . $ds . 'name2.pear.ini'; 98 $system_file = $userdir . $ds . 'name2.pearsys.ini'; 99} else { 100 $user_file = $userdir . $ds . 'name2.pearrc'; 101 $system_file = $userdir . $ds . 'name2.pear.conf'; 102} 103$pear_dir = ''; 104 105// try to load PEAR system config ($system_file) from user dir, 106// because user config ($user_file) does not exists (volontary) 107$pearInfo = new PEAR_Info($pear_dir, $user_file, $system_file); 108 109$result = (!is_null($pearInfo->reg)) 110 ? 'OK' : 'User PEAR configuration files does not exist'; 111 112echo $testCase . ' : ' . $result; 113echo "\n"; 114 115/** 116 * TestCase 4: 117 * class constructor with only $pear_dir parameter 118 * 119 * No user or system file exists into pear directory. 120 * Will display error to prevent unexpected behavior. 121 */ 122$testCase = 'testNoConfigFilesFoundIntoPearDir'; 123 124$GLOBALS['_PEAR_Config_instance'] = null; 125 126$pear_dir = $dir . $ds . 'pear2_dir'; 127 128$pearInfo = new PEAR_Info($pear_dir); 129 130$result = (is_null($pearInfo->reg)) 131 ? 'OK' : 'User PEAR configuration files does not exist'; 132 133echo $testCase . ' : ' . $result; 134echo "\n"; 135 136/** 137 * TestCase 5: 138 * class constructor with only $user_file and $system_file parameters 139 * 140 * No such (name3) user or system file exists into user directory. 141 * Will display an error to prevent unexpected behavior. 142 */ 143$testCase = 'testNoConfigFilesFoundIntoUserDir'; 144 145$GLOBALS['_PEAR_Config_instance'] = null; 146 147if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 148 $user_file = $userdir . $ds . 'name3.pear.ini'; 149 $system_file = $userdir . $ds . 'name3.pearsys.ini'; 150} else { 151 $user_file = $userdir . $ds . 'name3.pearrc'; 152 $system_file = $userdir . $ds . 'name3.pear.conf'; 153} 154$pear_dir = ''; 155 156$pearInfo = new PEAR_Info($pear_dir, $user_file, $system_file); 157 158$result = (is_null($pearInfo->reg)) 159 ? 'OK' : strip_tags($pearInfo->info); 160 161echo $testCase . ' : ' . $result; 162echo "\n"; 163 164/** 165 * TestCase 6: 166 * class constructor with only $options parameter 167 */ 168$testCase = 'testShowResultsWithRenderOptions'; 169 170$GLOBALS['_PEAR_Config_instance'] = null; 171 172$pear_dir = $peardir; 173$user_file = ''; 174$system_file = ''; 175$options = array( 176 'resume' => PEAR_INFO_FULLPAGE | 177 PEAR_INFO_GENERAL | PEAR_INFO_CHANNELS | PEAR_INFO_PACKAGES_VERSION | 178 PEAR_INFO_CREDITS_PACKAGES, 179 'channels' => array() 180); 181 182// try to load PEAR system config from pear dir 183$pearInfo = new PEAR_Info($pear_dir, $user_file, $system_file, $options); 184 185$result = (!is_null($pearInfo->reg)) 186 ? 'OK' : 'KO'; 187 188echo $testCase . ' : ' . $result; 189echo "\n"; 190 191/** 192 * TestCase 7: 193 * class constructor with invalid $peardir parameter 194 */ 195$testCase = 'testInvalidPearDir'; 196 197$GLOBALS['_PEAR_Config_instance'] = null; 198 199$pear_dir = $dir . $ds . 'invalid_pear_dir'; 200 201$pearInfo = new PEAR_Info($pear_dir); 202 203$result = (is_null($pearInfo->reg)) 204 ? 'OK' : 'Valid PEAR directory found'; 205 206echo $testCase . ' : ' . $result; 207?> 208--CLEAN-- 209<?php 210$ds = DIRECTORY_SEPARATOR; 211$dir = dirname(__FILE__); 212$sysconfdir = $dir . $ds . 'sysconf_dir'; 213$peardir = $dir . $ds . 'pear_dir'; 214$userdir = $dir . $ds . 'user_dir'; 215 216if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 217 $conf_file = $peardir . $ds . 'pearsys.ini'; 218 $custom_file1 = $peardir . $ds . 'name1.pearsys.ini'; 219 $custom_file2 = $userdir . $ds . 'name2.pearsys.ini'; 220} else { 221 $conf_file = $peardir . $ds . 'pear.conf'; 222 $custom_file1 = $peardir . $ds . 'name1.pear.conf'; 223 $custom_file2 = $userdir . $ds . 'name2.pear.conf'; 224} 225 226unlink ($conf_file); 227unlink ($custom_file1); 228unlink ($custom_file2); 229?> 230--EXPECT-- 231testConfigFilesExistWithDefaultNameInPearDir : OK 232testConfigFilesExistWithCustomNameInPearDir : OK 233testConfigFilesExistInUserDir : OK 234testNoConfigFilesFoundIntoPearDir : OK 235testNoConfigFilesFoundIntoUserDir : OK 236testShowResultsWithRenderOptions : OK 237testInvalidPearDir : OK