mirror of
https://github.com/php/php-src.git
synced 2026-04-29 19:23:22 +02:00
- cvs delete is not recursive...
This commit is contained in:
@@ -1,234 +0,0 @@
|
||||
<?php
|
||||
require_once 'XML/RPC/Server.php';
|
||||
|
||||
class PEAR_test_mock_pearweb {
|
||||
var $_config;
|
||||
var $_remote;
|
||||
|
||||
function setRemote(&$r)
|
||||
{
|
||||
$this->_remote = &$r;
|
||||
}
|
||||
|
||||
function addHtmlConfig($address, $filename)
|
||||
{
|
||||
$this->_config['html'][$address] = array(basename($filename), file_get_contents($filename));
|
||||
}
|
||||
|
||||
function addXmlrpcConfig($method, $params, $return)
|
||||
{
|
||||
$this->_config['xmlrpc'][$method][serialize($params)] = $return;
|
||||
}
|
||||
|
||||
function _encode($val)
|
||||
{
|
||||
$val = XML_RPC_encode($val);
|
||||
$ser = new XML_RPC_Response($val);
|
||||
return $ser->serialize();
|
||||
}
|
||||
|
||||
function receiveHttp($address)
|
||||
{
|
||||
if (!isset($this->_config) || !is_array($this->_config)) {
|
||||
return $this->do404($address);
|
||||
}
|
||||
if (!isset($this->_config['html'][$address])) {
|
||||
return $this->do404($address);
|
||||
} else {
|
||||
return $this->do200() .
|
||||
'content-length: ' . strlen($this->_config['html'][$address][1]) . "\n\n" .
|
||||
$this->_config['html'][$address][1];
|
||||
}
|
||||
}
|
||||
|
||||
function receiveXmlrpc($postpayload)
|
||||
{
|
||||
$info = $this->parseRequest($postpayload);
|
||||
if (!isset($this->_config['xmlrpc'][$info['method']])) {
|
||||
return $this->doXmlrpcFault($info);
|
||||
}
|
||||
if (!isset($this->_config['xmlrpc'][serialize($info['params'])])) {
|
||||
var_dump($info['param']);
|
||||
die("Error - parameters not configured properly for $info[method]");
|
||||
}
|
||||
return $this->do200() .
|
||||
$this->_encode($this->_config['xmlrpc'][$info['method']][serialize($info['params'])]);
|
||||
}
|
||||
|
||||
function call($method, $params)
|
||||
{
|
||||
if (!isset($this->_config['xmlrpc'][$method])) {
|
||||
include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'php_dump.php.inc';
|
||||
$args = $params;
|
||||
switch (count($args)) {
|
||||
case 0:
|
||||
$result = $this->_remote->parentcall($method);
|
||||
break;
|
||||
case 1:
|
||||
$result = $this->_remote->parentcall($method, $args[0]);
|
||||
break;
|
||||
case 2:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1]);
|
||||
break;
|
||||
case 3:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2]);
|
||||
break;
|
||||
case 4:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3]);
|
||||
break;
|
||||
case 5:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3], $args[4]);
|
||||
break;
|
||||
case 6:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3], $args[4], $args[5]);
|
||||
break;
|
||||
}
|
||||
$dump = new PHP_Dump($result);
|
||||
$args = new PHP_Dump($args);
|
||||
if (!isset($this->_pearweb->_config['xmlrpc'][$method][serialize($args)]))
|
||||
$GLOBALS['totalPHP'][$method . serialize($args)] = '$pearweb->addXmlrpcConfig("' .
|
||||
$method . '", ' .
|
||||
$args->toPHP() . ', ' .
|
||||
$dump->toPHP() .");";
|
||||
foreach($GLOBALS['totalPHP'] as $php) {
|
||||
echo $php . "\n";
|
||||
}
|
||||
var_dump(array_keys($this->_config['xmlrpc'][$method]), $params);
|
||||
die("Error - parameters not configured properly for $method");
|
||||
return false;
|
||||
}
|
||||
if (!isset($this->_config['xmlrpc'][$method][serialize($params)])) {
|
||||
include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'php_dump.php.inc';
|
||||
$args = $params;
|
||||
switch (count($args)) {
|
||||
case 0:
|
||||
$result = $this->_remote->parentcall($method);
|
||||
break;
|
||||
case 1:
|
||||
$result = $this->_remote->parentcall($method, $args[0]);
|
||||
break;
|
||||
case 2:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1]);
|
||||
break;
|
||||
case 3:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2]);
|
||||
break;
|
||||
case 4:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3]);
|
||||
break;
|
||||
case 5:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3], $args[4]);
|
||||
break;
|
||||
case 6:
|
||||
$result = $this->_remote->parentcall($method, $args[0], $args[1], $args[2], $args[3], $args[4], $args[5]);
|
||||
break;
|
||||
}
|
||||
$dump = new PHP_Dump($result);
|
||||
$args = new PHP_Dump($args);
|
||||
if (!isset($this->_pearweb->_config['xmlrpc'][$method][serialize($args)]))
|
||||
$GLOBALS['totalPHP'][$method . serialize($args)] = '$pearweb->addXmlrpcConfig("' .
|
||||
$method . '", ' .
|
||||
$args->toPHP() . ', ' .
|
||||
$dump->toPHP() .");";
|
||||
foreach($GLOBALS['totalPHP'] as $php) {
|
||||
echo $php . "\n";
|
||||
}
|
||||
var_dump(array_keys($this->_config['xmlrpc'][$method]), $params);
|
||||
die("Error - parameters not configured properly for $method");
|
||||
}
|
||||
return $this->_config['xmlrpc'][$method][serialize($params)];
|
||||
}
|
||||
|
||||
function doXmlrpcFault($info)
|
||||
{
|
||||
$r = new XML_RPC_Response(0, 1, 'Unknown method');
|
||||
return $this->do200() . $r->serialize();
|
||||
}
|
||||
|
||||
function do200()
|
||||
{
|
||||
return "HTTP/1.1 200 \n";
|
||||
}
|
||||
|
||||
function do404($address)
|
||||
{
|
||||
return 'HTTP/1.1 404 ' . $address . ' Is not valid';
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an xmlrpc request
|
||||
* @param string fake HTTP_RAW_POST_DATA
|
||||
* @return string|array serialized fault string, or array containing method name and parameters
|
||||
*/
|
||||
function parseRequest($data)
|
||||
{
|
||||
// copied from XML_RPC_Server
|
||||
global $XML_RPC_xh;
|
||||
global $XML_RPC_err, $XML_RPC_str, $XML_RPC_errxml,
|
||||
$XML_RPC_defencoding, $XML_RPC_Server_dmap;
|
||||
|
||||
$parser = xml_parser_create($XML_RPC_defencoding);
|
||||
|
||||
$XML_RPC_xh[$parser] = array();
|
||||
$XML_RPC_xh[$parser]['st'] = "";
|
||||
$XML_RPC_xh[$parser]['cm'] = 0;
|
||||
$XML_RPC_xh[$parser]['isf'] = 0;
|
||||
$XML_RPC_xh[$parser]['params'] = array();
|
||||
$XML_RPC_xh[$parser]['method'] = "";
|
||||
|
||||
$plist = '';
|
||||
|
||||
// decompose incoming XML into request structure
|
||||
|
||||
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
|
||||
xml_set_element_handler($parser, "XML_RPC_se", "XML_RPC_ee");
|
||||
xml_set_character_data_handler($parser, "XML_RPC_cd");
|
||||
xml_set_default_handler($parser, "XML_RPC_dh");
|
||||
if (!xml_parse($parser, $data, 1)) {
|
||||
// return XML error as a faultCode
|
||||
$r = new XML_RPC_Response(0,
|
||||
$XML_RPC_errxml+xml_get_error_code($parser),
|
||||
sprintf("XML error: %s at line %d",
|
||||
xml_error_string(xml_get_error_code($parser)),
|
||||
xml_get_current_line_number($parser)));
|
||||
xml_parser_free($parser);
|
||||
return $r->serialize();
|
||||
} else {
|
||||
xml_parser_free($parser);
|
||||
$params = array();
|
||||
// now add parameters in
|
||||
for ($i = 0; $i < sizeof($XML_RPC_xh[$parser]['params']); $i++) {
|
||||
// print "<!-- " . $XML_RPC_xh[$parser]['params'][$i]. "-->\n";
|
||||
$plist .= "$i - " . $XML_RPC_xh[$parser]['params'][$i] . " \n";
|
||||
eval('$val = ' . $XML_RPC_xh[$parser]['params'][$i] . ";");
|
||||
$param = $val->scalarval();
|
||||
$param = PEAR_test_mock_pearweb::_convertScalar($param);
|
||||
$params[] = $param;
|
||||
}
|
||||
return array('method' => $XML_RPC_xh[$parser]['method'], 'params' => $params);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the mishmash returned from XML_RPC parsing into a regular PHP value,
|
||||
* handling nested arrays gracefully.
|
||||
* @param mixed
|
||||
* @return mixed
|
||||
*/
|
||||
function _convertScalar($val)
|
||||
{
|
||||
if (is_a($val, 'XML_RPC_Value')) {
|
||||
$val = $val->scalarval();
|
||||
}
|
||||
if (!is_array($val)) {
|
||||
return $val;
|
||||
}
|
||||
$newval = array();
|
||||
foreach ($val as $i => $contents)
|
||||
{
|
||||
$newval[$i] = PEAR_test_mock_pearweb::_convertScalar($contents);
|
||||
}
|
||||
return $newval;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg1</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg2</dep>
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg2</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg3</dep>
|
||||
<dep type="php" version="1.0" rel="ge" />
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg3</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg4</dep>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg5</dep>
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg4</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg6</dep>
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg5</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<deps>
|
||||
<dep type="pkg" version="1.0" rel="ge">pkg6</dep>
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>pkg6</name>
|
||||
<summary>required test for PEAR_Installer</summary>
|
||||
<description>
|
||||
fake package
|
||||
</description>
|
||||
<license>PHP License</license>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>fakeuser</user>
|
||||
<name>Joe Shmoe</name>
|
||||
<email>nobody@example.com</email>
|
||||
<role>lead</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>1.1</version>
|
||||
<date>2003-09-09</date>
|
||||
<state>stable</state>
|
||||
<notes>
|
||||
required dependency test
|
||||
</notes>
|
||||
<filelist>
|
||||
<dir name="/" baseinstalldir="grob" role="php">
|
||||
<file>zoorb.php</file>
|
||||
<dir name="goompness" role="php">
|
||||
<file>oggbrzitzkee.php</file>
|
||||
<file>Mopreeb.php</file>
|
||||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
</release>
|
||||
</package>
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,404 +0,0 @@
|
||||
<?php
|
||||
require_once 'XML/RPC.php';
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PEAR_test_mock_pearweb.php.inc';
|
||||
$GLOBALS['pearweb'] = new PEAR_test_mock_pearweb;
|
||||
class test_XML_RPC_Client extends XML_RPC_Client {
|
||||
function test_XML_RPC_Client()
|
||||
{
|
||||
$this->_fakepearweb = &$GLOBALS['pearweb'];
|
||||
}
|
||||
|
||||
function sendPayloadHTTP10($msg, $server, $port, $timeout=0,
|
||||
$username="", $password="")
|
||||
{
|
||||
// Only create the payload if it was not created previously
|
||||
if(empty($msg->payload)) $msg->createPayload();
|
||||
|
||||
$resp = $this->_fakepearweb->receiveXmlrpc($msg->payload);
|
||||
|
||||
$resp=$msg->parseResponse($resp);
|
||||
return $resp;
|
||||
}
|
||||
}
|
||||
require_once 'PEAR/Remote.php';
|
||||
|
||||
class test_PEAR_Remote extends PEAR_Remote {
|
||||
var $_pearweb;
|
||||
var $_fakepearweb = true;
|
||||
var $_simulateEpi = true;
|
||||
function test_PEAR_Remote($config)
|
||||
{
|
||||
$pearweb = &$GLOBALS['pearweb'];
|
||||
include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'download_test.config.inc';
|
||||
$this->_pearweb = $pearweb;
|
||||
parent::PEAR_Remote($config);
|
||||
$this->_pearweb->setRemote($this);
|
||||
}
|
||||
|
||||
function parentcall()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$method = array_shift($args);
|
||||
switch (count($args)) {
|
||||
case 0:
|
||||
$result = PEAR_Remote::call_epi($method);
|
||||
break;
|
||||
case 1:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0]);
|
||||
break;
|
||||
case 2:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0], $args[1]);
|
||||
break;
|
||||
case 3:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0], $args[1], $args[2]);
|
||||
break;
|
||||
case 4:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0], $args[1], $args[2], $args[3]);
|
||||
break;
|
||||
case 5:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0], $args[1], $args[2], $args[3], $args[4]);
|
||||
break;
|
||||
case 6:
|
||||
$result = PEAR_Remote::call_epi($method, $args[0], $args[1], $args[2], $args[3], $args[4], $args[5]);
|
||||
break;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function call($method)
|
||||
{
|
||||
$_args = $args = func_get_args();
|
||||
|
||||
$server_channel = $this->config->get('default_channel');
|
||||
$channel = $this->_registry->getChannel($server_channel);
|
||||
if ($channel) {
|
||||
if (!$channel->supports('xml-rpc', $method)) {
|
||||
// check for channel.list, which is implicitly supported for the PEAR channel
|
||||
if (!(strtolower($server_channel) == 'pear' && $method == 'channel.list')) {
|
||||
return $this->raiseError("Channel $server_channel does not support xml-rpc method $method");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
array_unshift($_args, $channel); // cache by channel
|
||||
$this->cache = $this->getCache($_args);
|
||||
$cachettl = $this->config->get('cache_ttl');
|
||||
// If cache is newer than $cachettl seconds, we use the cache!
|
||||
if ($this->cache !== null && $this->cache['age'] < $cachettl) {
|
||||
return $this->cache['content'];
|
||||
};
|
||||
if ($this->_simulateEpi) {
|
||||
$result = call_user_func_array(array(&$this, 'call_epi'), $args);
|
||||
if (!PEAR::isError($result)) {
|
||||
$this->saveCache($_args, $result);
|
||||
};
|
||||
return $result;
|
||||
}
|
||||
if (!@include_once("XML/RPC.php")) {
|
||||
return $this->raiseError("For this remote PEAR operation you need to install the XML_RPC package");
|
||||
}
|
||||
array_shift($args);
|
||||
$server_host = $this->_registry->channelInfo($server_channel, 'server');
|
||||
$username = $this->config->get('username');
|
||||
$password = $this->config->get('password');
|
||||
$eargs = array();
|
||||
foreach($args as $arg) $eargs[] = $this->_encode($arg);
|
||||
$f = new XML_RPC_Message($method, $eargs);
|
||||
if ($this->cache !== null) {
|
||||
$maxAge = '?maxAge='.$this->cache['lastChange'];
|
||||
} else {
|
||||
$maxAge = '';
|
||||
};
|
||||
$proxy_host = $proxy_port = $proxy_user = $proxy_pass = '';
|
||||
if ($proxy = parse_url($this->config->get('http_proxy'))) {
|
||||
$proxy_host = @$proxy['host'];
|
||||
$proxy_port = @$proxy['port'];
|
||||
$proxy_user = @$proxy['user'];
|
||||
$proxy_pass = @$proxy['pass'];
|
||||
}
|
||||
$c = new test_XML_RPC_Client('/xmlrpc.php'.$maxAge, $server_host, 80, $proxy_host, $proxy_port, $proxy_user, $proxy_pass);
|
||||
if ($username && $password) {
|
||||
$c->setCredentials($username, $password);
|
||||
}
|
||||
if ($this->config->get('verbose') >= 3) {
|
||||
$c->setDebug(1);
|
||||
}
|
||||
$r = $c->send($f);
|
||||
if (!$r) {
|
||||
return $this->raiseError("XML_RPC send failed");
|
||||
}
|
||||
$v = $r->value();
|
||||
if ($e = $r->faultCode()) {
|
||||
if ($e == $GLOBALS['XML_RPC_err']['http_error'] && strstr($r->faultString(), '304 Not Modified') !== false) {
|
||||
return $this->cache['content'];
|
||||
}
|
||||
return $this->raiseError($r->faultString(), $e);
|
||||
}
|
||||
|
||||
$result = XML_RPC_decode($v);
|
||||
$this->saveCache($_args, $result);
|
||||
return $result;
|
||||
}
|
||||
|
||||
function call_epi($method)
|
||||
{
|
||||
$args = func_get_args();
|
||||
array_shift($args);
|
||||
if ($this->_fakepearweb) {
|
||||
if (count($args)) {
|
||||
$result = $this->_pearweb->call($method, $args);
|
||||
} else {
|
||||
$result = $this->_pearweb->call($method);
|
||||
}
|
||||
}/* else {
|
||||
switch (count($args)) {
|
||||
case 0:
|
||||
$result = parent::call($method);
|
||||
break;
|
||||
case 1:
|
||||
$result = parent::call($method, $args[0]);
|
||||
break;
|
||||
case 2:
|
||||
$result = parent::call($method, $args[0], $args[1]);
|
||||
break;
|
||||
case 3:
|
||||
$result = parent::call($method, $args[0], $args[1], $args[2]);
|
||||
break;
|
||||
case 4:
|
||||
$result = parent::call($method, $args[0], $args[1], $args[2], $args[3]);
|
||||
break;
|
||||
case 5:
|
||||
$result = parent::call($method, $args[0], $args[1], $args[2], $args[3], $args[4]);
|
||||
break;
|
||||
case 6:
|
||||
$result = parent::call($method, $args[0], $args[1], $args[2], $args[3], $args[4], $args[5]);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
if (PEAR::isError($result)) {
|
||||
return $result;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'PEAR/Installer.php';
|
||||
class test_PEAR_Installer extends PEAR_Installer {
|
||||
function download($packages, $options, &$config, &$installpackages,
|
||||
&$errors, $installed = false, $willinstall = false, $state = false)
|
||||
{
|
||||
// trickiness: initialize here
|
||||
$this->PEAR_Downloader($this->ui, $options, $config);
|
||||
$this->_remote = &new test_PEAR_Remote($config);
|
||||
$ret = PEAR_Downloader::download($packages);
|
||||
$errors = $this->getErrorMsgs();
|
||||
$installpackages = $this->getDownloadedPackages();
|
||||
trigger_error("PEAR Warning: PEAR_Installer::download() is deprecated " .
|
||||
"in favor of PEAR_Downloader class", E_USER_WARNING);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function downloadHttp($url, &$ui, $save_dir = '.', $callback = null)
|
||||
{
|
||||
// return parent::downloadHttp($url, $ui, $save_dir, $callback);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'setup', array(&$ui));
|
||||
}
|
||||
if (preg_match('!^http://([^/:?#]*)(:(\d+))?(/.*)!', $url, $matches)) {
|
||||
list(,$host,,$port,$path) = $matches;
|
||||
}
|
||||
if (isset($this)) {
|
||||
$config = &$this->config;
|
||||
} else {
|
||||
$config = &PEAR_Config::singleton();
|
||||
}
|
||||
$proxy_host = $proxy_port = $proxy_user = $proxy_pass = '';
|
||||
if ($proxy = parse_url($config->get('http_proxy'))) {
|
||||
$proxy_host = @$proxy['host'];
|
||||
$proxy_port = @$proxy['port'];
|
||||
$proxy_user = @$proxy['user'];
|
||||
$proxy_pass = @$proxy['pass'];
|
||||
|
||||
if ($proxy_port == '') {
|
||||
$proxy_port = 8080;
|
||||
}
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'message', "Using HTTP proxy $host:$port");
|
||||
}
|
||||
}
|
||||
if (empty($port)) {
|
||||
$port = 80;
|
||||
}
|
||||
// use _pearweb to get file
|
||||
$retrieved = explode("\n", $this->_remote->_pearweb->receiveHttp($url));
|
||||
$headers = array();
|
||||
$line = array_shift($retrieved);
|
||||
while (strlen(trim($line))) {
|
||||
if (preg_match('/^([^:]+):\s+(.*)\s*$/', $line, $matches)) {
|
||||
$headers[strtolower($matches[1])] = trim($matches[2]);
|
||||
} elseif (preg_match('|^HTTP/1.[01] ([0-9]{3}) |', $line, $matches)) {
|
||||
if ($matches[1] != 200) {
|
||||
return PEAR::raiseError("File http://$host:$port$path not valid (received: $line)");
|
||||
}
|
||||
}
|
||||
$line = array_shift($retrieved);
|
||||
}
|
||||
$retrieved = join("\n", $retrieved);
|
||||
if (isset($headers['content-disposition']) &&
|
||||
preg_match('/\sfilename=\"([^;]*\S)\"\s*(;|$)/', $headers['content-disposition'], $matches)) {
|
||||
$save_as = basename($matches[1]);
|
||||
} else {
|
||||
$save_as = basename($url);
|
||||
}
|
||||
if ($callback) {
|
||||
$tmp = call_user_func($callback, 'saveas', $save_as);
|
||||
if ($tmp) {
|
||||
$save_as = $tmp;
|
||||
}
|
||||
}
|
||||
$dest_file = $save_dir . DIRECTORY_SEPARATOR . $save_as;
|
||||
if (!$wp = @fopen($dest_file, 'wb')) {
|
||||
fclose($fp);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg));
|
||||
}
|
||||
return PEAR::raiseError("could not open $dest_file for writing");
|
||||
}
|
||||
if (isset($headers['content-length'])) {
|
||||
$length = $headers['content-length'];
|
||||
} else {
|
||||
$length = -1;
|
||||
}
|
||||
$bytes = 0;
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'start', array(basename($dest_file), $length));
|
||||
}
|
||||
$start = 0;
|
||||
while ($start < strlen($retrieved) - 1) {
|
||||
$data = substr($retrieved, $start, 1024);
|
||||
$start += 1024;
|
||||
$bytes += strlen($data);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'bytesread', $bytes);
|
||||
}
|
||||
if (!@fwrite($wp, $data)) {
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg));
|
||||
}
|
||||
return PEAR::raiseError("$dest_file: write failed ($php_errormsg)");
|
||||
}
|
||||
}
|
||||
fclose($wp);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'done', $bytes);
|
||||
}
|
||||
return $dest_file;
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'PEAR/Downloader.php';
|
||||
class test_PEAR_Downloader extends PEAR_Downloader {
|
||||
function test_PEAR_Downloader(&$ui, $options, &$config)
|
||||
{
|
||||
parent::PEAR_Downloader($ui, $options, $config);
|
||||
$this->_remote = new test_PEAR_Remote($config);
|
||||
}
|
||||
|
||||
function downloadHttp($url, &$ui, $save_dir = '.', $callback = null)
|
||||
{
|
||||
// return parent::downloadHttp($url, $ui, $save_dir, $callback);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'setup', array(&$ui));
|
||||
}
|
||||
if (preg_match('!^http://([^/:?#]*)(:(\d+))?(/.*)!', $url, $matches)) {
|
||||
list(,$host,,$port,$path) = $matches;
|
||||
}
|
||||
if (isset($this)) {
|
||||
$config = &$this->config;
|
||||
} else {
|
||||
$config = &PEAR_Config::singleton();
|
||||
}
|
||||
$proxy_host = $proxy_port = $proxy_user = $proxy_pass = '';
|
||||
if ($proxy = parse_url($config->get('http_proxy'))) {
|
||||
$proxy_host = @$proxy['host'];
|
||||
$proxy_port = @$proxy['port'];
|
||||
$proxy_user = @$proxy['user'];
|
||||
$proxy_pass = @$proxy['pass'];
|
||||
|
||||
if ($proxy_port == '') {
|
||||
$proxy_port = 8080;
|
||||
}
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'message', "Using HTTP proxy $host:$port");
|
||||
}
|
||||
}
|
||||
if (empty($port)) {
|
||||
$port = 80;
|
||||
}
|
||||
// use _pearweb to get file
|
||||
$retrieved = explode("\n", $this->_remote->_pearweb->receiveHttp($url));
|
||||
$headers = array();
|
||||
$line = array_shift($retrieved);
|
||||
while (strlen(trim($line))) {
|
||||
if (preg_match('/^([^:]+):\s+(.*)\s*$/', $line, $matches)) {
|
||||
$headers[strtolower($matches[1])] = trim($matches[2]);
|
||||
} elseif (preg_match('|^HTTP/1.[01] ([0-9]{3}) |', $line, $matches)) {
|
||||
if ($matches[1] != 200) {
|
||||
return PEAR::raiseError("File http://$host:$port$path not valid (received: $line)");
|
||||
}
|
||||
}
|
||||
$line = array_shift($retrieved);
|
||||
}
|
||||
$retrieved = join("\n", $retrieved);
|
||||
if (isset($headers['content-disposition']) &&
|
||||
preg_match('/\sfilename=\"([^;]*\S)\"\s*(;|$)/', $headers['content-disposition'], $matches)) {
|
||||
$save_as = basename($matches[1]);
|
||||
} else {
|
||||
$save_as = basename($url);
|
||||
}
|
||||
if ($callback) {
|
||||
$tmp = call_user_func($callback, 'saveas', $save_as);
|
||||
if ($tmp) {
|
||||
$save_as = $tmp;
|
||||
}
|
||||
}
|
||||
$dest_file = $save_dir . DIRECTORY_SEPARATOR . $save_as;
|
||||
if (!$wp = @fopen($dest_file, 'wb')) {
|
||||
fclose($fp);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg));
|
||||
}
|
||||
return PEAR::raiseError("could not open $dest_file for writing");
|
||||
}
|
||||
if (isset($headers['content-length'])) {
|
||||
$length = $headers['content-length'];
|
||||
} else {
|
||||
$length = -1;
|
||||
}
|
||||
$bytes = 0;
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'start', array(basename($dest_file), $length));
|
||||
}
|
||||
$start = 0;
|
||||
while ($start < strlen($retrieved) - 1) {
|
||||
$data = substr($retrieved, $start, 1024);
|
||||
$start += 1024;
|
||||
$bytes += strlen($data);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'bytesread', $bytes);
|
||||
}
|
||||
if (!@fwrite($wp, $data)) {
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg));
|
||||
}
|
||||
return PEAR::raiseError("$dest_file: write failed ($php_errormsg)");
|
||||
}
|
||||
}
|
||||
fclose($wp);
|
||||
if ($callback) {
|
||||
call_user_func($callback, 'done', $bytes);
|
||||
}
|
||||
return $dest_file;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1 +0,0 @@
|
||||
a:1:{s:7:"verbose";i:100;}
|
||||
@@ -1 +0,0 @@
|
||||
a:2:{s:7:"verbose";i:35;s:10:"__channels";a:2:{s:5:"test1";a:1:{s:7:"verbose";i:898;}s:5:"test2";a:1:{s:7:"verbose";i:899;}}}
|
||||
@@ -1,176 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
|
||||
<package version="1.0">
|
||||
<name>PEARtests</name>
|
||||
<summary>PEAR Base System tests</summary>
|
||||
<description>This package contains all tests for the PEAR base system</description>
|
||||
<maintainers>
|
||||
<maintainer>
|
||||
<user>cellog</user>
|
||||
<name>Greg Beaver</name>
|
||||
<email>cellog@php.net</email>
|
||||
<role>developer</role>
|
||||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>2.1</version>
|
||||
<date>2004-06-04</date>
|
||||
<license>PHP License</license>
|
||||
<state>stable</state>
|
||||
<notes>Installation package.xml for PEAR package tests</notes>
|
||||
<deps>
|
||||
<dep type="pkg" rel="ge" version="1.4.0dev6">PEAR</dep>
|
||||
<dep type="pkg" rel="ge" version="1.1">Archive_Tar</dep>
|
||||
<dep type="pkg" rel="ge" version="1.2">Console_Getopt</dep>
|
||||
<dep type="pkg" rel="ge" version="1.1.0">XML_RPC</dep>
|
||||
<dep type="ext" rel="has">xml</dep>
|
||||
<dep type="ext" rel="has">pcre</dep>
|
||||
</deps>
|
||||
<filelist>
|
||||
<dir baseinstalldir="PEAR" name="/">
|
||||
<dir name="dirtree">
|
||||
<file role="test" name="package-fail.xml"/>
|
||||
<file role="test" name="package.xml"/>
|
||||
<file role="test" name="package2.xml"/>
|
||||
<file role="test" name="pkg1-1.0.tgz"/>
|
||||
<file role="test" name="pkg2-1.0.tgz"/>
|
||||
<dir name="multiplepackages">
|
||||
<file role="test" name="pkg1file.php"/>
|
||||
<file role="test" name="pkg2file.php"/>
|
||||
</dir> <!-- dirtree/multiplepackages -->
|
||||
<dir name="nestedroot">
|
||||
<file role="test" name="rootfile.php"/>
|
||||
<dir name="emptydir">
|
||||
<file role="test" name="fakefile1.php"/>
|
||||
<dir name="nesteddir">
|
||||
<file role="test" name="nestedfile.php"/>
|
||||
</dir> <!-- dirtree/nestedroot/emptydir/nesteddir -->
|
||||
</dir> <!-- dirtree/nestedroot/emptydir -->
|
||||
</dir> <!-- dirtree/nestedroot -->
|
||||
<dir name="pkg1">
|
||||
<file role="test" name="randomfile.php"/>
|
||||
</dir> <!-- dirtree/pkg1 -->
|
||||
</dir> <!-- dirtree -->
|
||||
<dir name="PEAR_ErrorStack">
|
||||
<file role="test" name="base_regression.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_getErrorMessage.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_getErrorMessageTemplate.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_getErrors.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_pushpop.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_pushpopcallback.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_pushpopstatic.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_singleton.php"/>
|
||||
<file role="test" name="Error_Stack_TestCase_staticGetErrors.php"/>
|
||||
<file role="test" name="HTML_TestListener.php"/>
|
||||
<file role="test" name="stylesheet.css"/>
|
||||
<file role="test" name="testsuite.php"/>
|
||||
<file role="test" name="TestUnit.php"/>
|
||||
</dir> <!-- PEAR_ErrorStack -->
|
||||
<dir name="test-pkg6">
|
||||
<file role="test" name="conflictpackage2.xml"/>
|
||||
<file role="test" name="conflictpackage.xml"/>
|
||||
<file role="test" name="invalidtgz.tgz"/>
|
||||
<file role="test" name="nopackagexml.tgz"/>
|
||||
<file role="test" name="package2.xml"/>
|
||||
<file role="test" name="package2_invalid.xml"/>
|
||||
<file role="test" name="package.xml"/>
|
||||
<file role="test" name="pkg6-1.1.tgz"/>
|
||||
<file role="test" name="pkg6-2.0b1.tgz"/>
|
||||
<file role="test" name="zoorb.php"/>
|
||||
<dir name="goompness">
|
||||
<file role="test" name="Mopreeb.php"/>
|
||||
<file role="test" name="oggbrzitzkee.php"/>
|
||||
<file role="test" name="test.dat"/>
|
||||
</dir> <!-- test-pkg6/goompness -->
|
||||
</dir> <!-- test-pkg6 -->
|
||||
<file role="test" name="common_sortPkgDeps1_package.xml"/>
|
||||
<file role="test" name="common_sortPkgDeps2_package.xml"/>
|
||||
<file role="test" name="common_sortPkgDeps3_package.xml"/>
|
||||
<file role="test" name="common_sortPkgDeps4_package.xml"/>
|
||||
<file role="test" name="common_sortPkgDeps5_package.xml"/>
|
||||
<file role="test" name="common_sortPkgDeps6_package.xml"/>
|
||||
<file role="test" name="depnoreleases-1.0.tgz"/>
|
||||
<file role="test" name="depunstable-1.0.tgz"/>
|
||||
<file role="test" name="download_test.config.inc"/>
|
||||
<file role="test" name="download_test_classes.php.inc"/>
|
||||
<file role="test" name="merge.input"/>
|
||||
<file role="test" name="merge2.input"/>
|
||||
<file role="test" name="pear1.phpt"/>
|
||||
<file role="test" name="pear2.phpt"/>
|
||||
<file role="test" name="pear_autoloader.phpt"/>
|
||||
<file role="test" name="pear_channelfile.phpt"/>
|
||||
<file role="test" name="pear_common_analyzeSC.phpt"/>
|
||||
<file role="test" name="pear_common_buildProvidesArray.phpt"/>
|
||||
<file role="test" name="pear_common_downloadHttp.phpt"/>
|
||||
<file role="test" name="pear_common_infoFromString.phpt"/>
|
||||
<file role="test" name="pear_common_sortPkgDeps.phpt"/>
|
||||
<file role="test" name="pear_common_validPackageVersion.phpt"/>
|
||||
<file role="test" name="pear_config.phpt"/>
|
||||
<file role="test" name="pear_config_1.1.phpt"/>
|
||||
<file role="test" name="pear_dependency_checkExtension.phpt"/>
|
||||
<file role="test" name="pear_dependency_checkPackage.phpt"/>
|
||||
<file role="test" name="pear_dependency_checkPackageUninstall.phpt"/>
|
||||
<file role="test" name="pear_downloader_invalid.phpt"/>
|
||||
<file role="test" name="pear_downloader_new.phpt"/>
|
||||
<file role="test" name="pear_downloader_old.phpt"/>
|
||||
<file role="test" name="pear_error.phpt"/>
|
||||
<file role="test" name="pear_error2.phpt"/>
|
||||
<file role="test" name="pear_error3.phpt"/>
|
||||
<file role="test" name="pear_error4.phpt"/>
|
||||
<file role="test" name="pear_installer1.phpt"/>
|
||||
<file role="test" name="pear_installer2.phpt"/>
|
||||
<file role="test" name="pear_installer3.phpt"/>
|
||||
<file role="test" name="pear_installer4.phpt"/>
|
||||
<file role="test" name="pear_installer5.phpt"/>
|
||||
<file role="test" name="pear_installer_installFile_channels.phpt"/>
|
||||
<file role="test" name="pear_installer_install_channels.phpt"/>
|
||||
<file role="test" name="pear_packager.phpt"/>
|
||||
<file role="test" name="pear_registry_inc.php.inc"/>
|
||||
<file role="test" name="pear_registry.phpt"/>
|
||||
<file role="test" name="pear_registry_1.1.phpt"/>
|
||||
<file role="test" name="pear_system.phpt"/>
|
||||
<file role="test" name="PEAR_test_mock_pearweb.php.inc"/>
|
||||
<file role="test" name="php.ini"/>
|
||||
<file role="test" name="php_dump.php.inc"/>
|
||||
<file role="test" name="pkg1-1.1.tgz"/>
|
||||
<file role="test" name="pkg1-2.0b1.tgz"/>
|
||||
<file role="test" name="pkg2-1.1.tgz"/>
|
||||
<file role="test" name="pkg3-1.1.tgz"/>
|
||||
<file role="test" name="pkg3-1.4.tgz"/>
|
||||
<file role="test" name="pkg4-1.1.tgz"/>
|
||||
<file role="test" name="pkg4AndAHalf-1.3.tgz"/>
|
||||
<file role="test" name="pkg5-1.1.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-0.3.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-0.5.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-0.6beta.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-1.0b1.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-2.0a1.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-2.0b1.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-2.0dev.tgz"/>
|
||||
<file role="test" name="stabilitytoolow-3.0dev.tgz"/>
|
||||
<file role="test" name="system.input"/>
|
||||
<file role="test" name="testdownload.tgz"/>
|
||||
<file role="test" name="toonew.conf"/>
|
||||
<file role="test" name="user.input"/>
|
||||
<file role="test" name="user2.input"/>
|
||||
<file role="test" name="user3.input"/>
|
||||
</dir> <!-- / -->
|
||||
</filelist>
|
||||
</release>
|
||||
<changelog>
|
||||
<release>
|
||||
<version>1.0</version>
|
||||
<date>2004-03-21</date>
|
||||
<license>PHP License</license>
|
||||
<state>stable</state>
|
||||
<notes>Installation package.xml for PEAR package tests</notes>
|
||||
</release>
|
||||
<release>
|
||||
<version>2.0</version>
|
||||
<date>2004-06-01</date>
|
||||
<license>PHP License</license>
|
||||
<state>stable</state>
|
||||
<notes>Installation package.xml for PEAR package tests</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
@@ -1,90 +0,0 @@
|
||||
--TEST--
|
||||
PEAR constructor/destructor test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR.php";
|
||||
|
||||
class TestPEAR extends PEAR {
|
||||
function TestPEAR($name) {
|
||||
$this->_debug = true;
|
||||
$this->name = $name;
|
||||
$this->PEAR();
|
||||
}
|
||||
function _TestPEAR() {
|
||||
print "This is the TestPEAR($this->name) destructor\n";
|
||||
$this->_PEAR();
|
||||
}
|
||||
}
|
||||
|
||||
class Test2 extends PEAR {
|
||||
function _Test2() {
|
||||
print "This is the Test2 destructor\n";
|
||||
$this->_PEAR();
|
||||
}
|
||||
}
|
||||
|
||||
class Test3 extends Test2 {
|
||||
}
|
||||
|
||||
// test for bug http://bugs.php.net/bug.php?id=14744
|
||||
class Other extends Pear {
|
||||
|
||||
var $a = 'default value';
|
||||
|
||||
function Other() {
|
||||
$this->PEAR();
|
||||
}
|
||||
|
||||
function _Other() {
|
||||
// $a was modified but here misteriously returns to be
|
||||
// the original value. That makes the destructor useless
|
||||
// The correct value for $a in the destructor shoud be "new value"
|
||||
echo "#bug 14744# Other class destructor: other->a == '" . $this->a ."'\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "testing plain destructors\n";
|
||||
$o = new TestPEAR("test1");
|
||||
$p = new TestPEAR("test2");
|
||||
print "..\n";
|
||||
print "testing inherited destructors\n";
|
||||
$q = new Test3;
|
||||
|
||||
echo "...\ntesting bug #14744\n";
|
||||
$other =& new Other;
|
||||
echo "#bug 14744# Other class constructor: other->a == '" . $other->a ."'\n";
|
||||
// Modify $a
|
||||
$other->a = 'new value';
|
||||
echo "#bug 14744# Other class modified: other->a == '" . $other->a ."'\n";
|
||||
|
||||
print "..\n";
|
||||
print "script exiting...\n";
|
||||
print "..\n";
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
testing plain destructors
|
||||
PEAR constructor called, class=testpear
|
||||
PEAR constructor called, class=testpear
|
||||
..
|
||||
testing inherited destructors
|
||||
...
|
||||
testing bug #14744
|
||||
#bug 14744# Other class constructor: other->a == 'default value'
|
||||
#bug 14744# Other class modified: other->a == 'new value'
|
||||
..
|
||||
script exiting...
|
||||
..
|
||||
This is the TestPEAR(test1) destructor
|
||||
PEAR destructor called, class=testpear
|
||||
This is the TestPEAR(test2) destructor
|
||||
PEAR destructor called, class=testpear
|
||||
This is the Test2 destructor
|
||||
#bug 14744# Other class destructor: other->a == 'new value'
|
||||
@@ -1,850 +0,0 @@
|
||||
--TEST--
|
||||
PEAR complete set/push/pop error-handling test (run from pear/tests dir)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR.php";
|
||||
|
||||
class testErrorHandlingStatic {
|
||||
function doSetErrorHandlingFunction()
|
||||
{
|
||||
print "testing in class setErrorHandling\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
}
|
||||
|
||||
function doSetErrorHandlingStatic()
|
||||
{
|
||||
print "testing in class setErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
}
|
||||
|
||||
function doSetErrorHandlingObject()
|
||||
{
|
||||
print "testing in class setErrorHandling array(class, method)\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingFunction()
|
||||
{
|
||||
print "testing in class pushErrorHandling\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingObject()
|
||||
{
|
||||
print "testing in class pushErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingStatic()
|
||||
{
|
||||
print "testing in class pushErrorHandling array(class, method)\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPopErrorHandling()
|
||||
{
|
||||
print "testing in class popErrorHandling\n";
|
||||
PEAR::popErrorHandling();
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function fakeHandleError($err)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
class testErrorHandlingPEAR extends PEAR {
|
||||
|
||||
function fakeHandleError($err)
|
||||
{
|
||||
}
|
||||
|
||||
function doSetErrorHandlingFunction()
|
||||
{
|
||||
print "testing in PEAR setErrorHandling\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
|
||||
'$this->_default_error_options', $this->_default_error_options);
|
||||
}
|
||||
|
||||
function doSetErrorHandlingStatic()
|
||||
{
|
||||
print "testing in PEAR setErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
|
||||
'$this->_default_error_options', $this->_default_error_options);
|
||||
}
|
||||
|
||||
function doSetErrorHandlingObject()
|
||||
{
|
||||
print "testing in PEAR setErrorHandling array(class, method)\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
|
||||
'$this->_default_error_options', $this->_default_error_options);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingFunction()
|
||||
{
|
||||
print "testing in PEAR pushErrorHandling\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingObject()
|
||||
{
|
||||
print "testing in PEAR pushErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPushErrorHandlingStatic()
|
||||
{
|
||||
print "testing in PEAR pushErrorHandling array(class, method)\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
|
||||
function doPopErrorHandling()
|
||||
{
|
||||
print "testing in PEAR popErrorHandling\n";
|
||||
PEAR::popErrorHandling();
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
}
|
||||
}
|
||||
|
||||
function echoPEARVars($name1, $mode, $name2, $options, $indent = '')
|
||||
{
|
||||
$levelMap =
|
||||
array(
|
||||
E_USER_NOTICE => 'E_USER_NOTICE',
|
||||
E_USER_WARNING => 'E_USER_WARNING',
|
||||
E_USER_ERROR => 'E_USER_ERROR',
|
||||
);
|
||||
$pearLevelMap =
|
||||
array(
|
||||
PEAR_ERROR_RETURN =>'PEAR_ERROR_RETURN',
|
||||
PEAR_ERROR_PRINT =>'PEAR_ERROR_PRINT',
|
||||
PEAR_ERROR_TRIGGER =>'PEAR_ERROR_TRIGGER',
|
||||
PEAR_ERROR_DIE =>'PEAR_ERROR_DIE',
|
||||
PEAR_ERROR_CALLBACK =>'PEAR_ERROR_CALLBACK',
|
||||
PEAR_ERROR_EXCEPTION =>'PEAR_ERROR_EXCEPTION',
|
||||
);
|
||||
print $indent . "echoing PEAR error-handling Variables:\n";
|
||||
print "$indent--------------------------------------\n";
|
||||
print $indent . "$name1:\n";
|
||||
$levels = get_error_mode($mode);
|
||||
print $indent;
|
||||
foreach($levels as $level) {
|
||||
print $pearLevelMap[$level] . ',';
|
||||
}
|
||||
print "\n";
|
||||
print $indent . "$name2:\n";
|
||||
if (is_string($options)) {
|
||||
print $indent . 'Callback: ' . $options. "()\n";
|
||||
} elseif (is_array($options)) {
|
||||
print $indent . 'Callback: ';
|
||||
if (is_string($options[0])) {
|
||||
print '(static) ' . $options[0] . '::';
|
||||
} else {
|
||||
print get_class($options[0]) . '->';
|
||||
}
|
||||
print $options[1] . "()\n";
|
||||
} else {
|
||||
print $indent . $levelMap[$options] . "\n";
|
||||
}
|
||||
print "$indent--------------------------------------\n";
|
||||
}
|
||||
|
||||
function echoPEARStack($name, $stack)
|
||||
{
|
||||
print "stack $name:\n";
|
||||
foreach ($stack as $i => $item) {
|
||||
print "Index $i:\n";
|
||||
echoPEARVars('mode', $item[0], 'options', $item[1], ' ');
|
||||
}
|
||||
}
|
||||
|
||||
function get_error_mode($err)
|
||||
{
|
||||
$ret = array();
|
||||
$level = 0;
|
||||
while($level < 7) {
|
||||
$a = ($err >> $level++) & 1;
|
||||
if ($a) {
|
||||
$ret[] = 1 << ($level - 1);
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
print "testing static error-handling global code\n";
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
print "testing setErrorHandling\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
print "testing setErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
print "testing setErrorHandling array(class, method)\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
|
||||
'_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
|
||||
|
||||
|
||||
print "testing pushErrorHandling\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
print "testing pushErrorHandling array(obj, method)\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
print "testing pushErrorHandling array(class, method)\n";
|
||||
PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
|
||||
|
||||
print "testing popErrorHandling\n";
|
||||
PEAR::popErrorHandling();
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
print "testing popErrorHandling\n";
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
PEAR::popErrorHandling();
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
print "testing popErrorHandling\n";
|
||||
PEAR::popErrorHandling();
|
||||
echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
|
||||
print "*******************************************\n";
|
||||
print "testing static error-handling in-class code\n";
|
||||
print "*******************************************\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_RETURN, E_USER_NOTICE);
|
||||
$obj = new testErrorHandlingStatic;
|
||||
$obj->doSetErrorHandlingFunction();
|
||||
$obj->doSetErrorHandlingStatic();
|
||||
$obj->doSetErrorHandlingObject();
|
||||
$obj->doPushErrorHandlingFunction();
|
||||
$obj->doPushErrorHandlingStatic();
|
||||
$obj->doPushErrorHandlingObject();
|
||||
$obj->doPopErrorHandling();
|
||||
$obj->doPopErrorHandling();
|
||||
$obj->doPopErrorHandling();
|
||||
print "*******************************************\n";
|
||||
print "testing non-static error-handling in-class code\n";
|
||||
print "*******************************************\n";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_RETURN, E_USER_NOTICE);
|
||||
$obj = new testErrorHandlingPEAR;
|
||||
$obj->doSetErrorHandlingFunction();
|
||||
$obj->doSetErrorHandlingStatic();
|
||||
$obj->doSetErrorHandlingObject();
|
||||
$obj->doPushErrorHandlingFunction();
|
||||
$obj->doPushErrorHandlingStatic();
|
||||
$obj->doPushErrorHandlingObject();
|
||||
$obj->doPopErrorHandling();
|
||||
$obj->doPopErrorHandling();
|
||||
$obj->doPopErrorHandling();
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
testing static error-handling global code
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_RETURN,
|
||||
_PEAR_default_error_options:
|
||||
E_USER_NOTICE
|
||||
--------------------------------------
|
||||
testing setErrorHandling
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing setErrorHandling array(obj, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing setErrorHandling array(class, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing pushErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing pushErrorHandling array(obj, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing pushErrorHandling array(class, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 4:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 5:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
*******************************************
|
||||
testing static error-handling in-class code
|
||||
*******************************************
|
||||
testing in class setErrorHandling
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in class setErrorHandling array(obj, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in class setErrorHandling array(class, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
_PEAR_default_error_options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in class pushErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in class pushErrorHandling array(class, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in class pushErrorHandling array(obj, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 4:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 5:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in class popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in class popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in class popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
*******************************************
|
||||
testing non-static error-handling in-class code
|
||||
*******************************************
|
||||
testing in PEAR setErrorHandling
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_RETURN,
|
||||
_PEAR_default_error_options:
|
||||
E_USER_NOTICE
|
||||
--------------------------------------
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
$this->_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
$this->_default_error_options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in PEAR setErrorHandling array(obj, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_RETURN,
|
||||
_PEAR_default_error_options:
|
||||
E_USER_NOTICE
|
||||
--------------------------------------
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
$this->_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
$this->_default_error_options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in PEAR setErrorHandling array(class, method)
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
_PEAR_default_error_mode:
|
||||
PEAR_ERROR_RETURN,
|
||||
_PEAR_default_error_options:
|
||||
E_USER_NOTICE
|
||||
--------------------------------------
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
$this->_default_error_mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
$this->_default_error_options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in PEAR pushErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in PEAR pushErrorHandling array(class, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in PEAR pushErrorHandling array(obj, method)
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 4:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 5:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: testerrorhandlingpear->fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in PEAR popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 2:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
Index 3:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
testing in PEAR popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
Index 0:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: (static) testErrorHandlingStatic::fakeHandleError()
|
||||
--------------------------------------
|
||||
Index 1:
|
||||
echoing PEAR error-handling Variables:
|
||||
--------------------------------------
|
||||
mode:
|
||||
PEAR_ERROR_CALLBACK,
|
||||
options:
|
||||
Callback: get_error_mode()
|
||||
--------------------------------------
|
||||
testing in PEAR popErrorHandling
|
||||
stack _PEAR_error_handler_stack:
|
||||
@@ -1,81 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Autoloader
|
||||
--SKIPIF--
|
||||
skip
|
||||
<?php /*if (!extension_loaded("overload")) die("skip\n"); */ ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
include dirname(__FILE__)."/../PEAR/Autoloader.php";
|
||||
|
||||
class test1 extends PEAR_Autoloader {
|
||||
function test1() {
|
||||
$this->addAutoload(array(
|
||||
'testfunc1' => 'testclass1',
|
||||
'testfunca' => 'testclass1',
|
||||
'testfunc2' => 'testclass2',
|
||||
'testfuncb' => 'testclass2',
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
class testclass1 {
|
||||
function testfunc1($a) {
|
||||
print "testfunc1 arg=";var_dump($a);
|
||||
return 1;
|
||||
}
|
||||
function testfunca($a) {
|
||||
print "testfunca arg=";var_dump($a);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
class testclass2 {
|
||||
function testfunc2($b) {
|
||||
print "testfunc2 arg=";var_dump($b);
|
||||
return 3;
|
||||
}
|
||||
function testfuncb($b) {
|
||||
print "testfuncb arg=";var_dump($b);
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
function dump($obj) {
|
||||
print "mapped methods:";
|
||||
foreach ($obj->_method_map as $method => $object) {
|
||||
print " $method";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
function call($msg, $retval) {
|
||||
print "calling $msg returned $retval\n";
|
||||
}
|
||||
|
||||
$obj = new test1;
|
||||
dump($obj);
|
||||
call("testfunc1", $obj->testfunc1(2));
|
||||
dump($obj);
|
||||
call("testfunca", $obj->testfunca(2));
|
||||
dump($obj);
|
||||
call("testfunc2", $obj->testfunc2(2));
|
||||
dump($obj);
|
||||
call("testfuncb", $obj->testfuncb(2));
|
||||
dump($obj);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
mapped methods:
|
||||
testfunc1 arg=int(2)
|
||||
calling testfunc1 returned 1
|
||||
mapped methods: testfunc1 testfunca
|
||||
testfunca arg=int(2)
|
||||
calling testfunca returned 2
|
||||
mapped methods: testfunc1 testfunca
|
||||
testfunc2 arg=int(2)
|
||||
calling testfunc2 returned 3
|
||||
mapped methods: testfunc1 testfunca testfunc2 testfuncb
|
||||
testfuncb arg=int(2)
|
||||
calling testfuncb returned 4
|
||||
mapped methods: testfunc1 testfunca testfunc2 testfuncb
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,165 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Common::analyzeSourceCode test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
if (!function_exists('token_get_all')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR/Common.php";
|
||||
|
||||
$x = PEAR_Common::analyzeSourceCode('=+"\\//452');
|
||||
echo "first test: returns false with non-existing filename? ";
|
||||
echo $x ? "no\n" : "yes\n";
|
||||
|
||||
$testdir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pear_common_analyzeSCtest';
|
||||
mkdir($testdir);
|
||||
|
||||
$test1 = '
|
||||
<?php
|
||||
::error();
|
||||
?>
|
||||
';
|
||||
$fp = fopen($testdir . DIRECTORY_SEPARATOR . 'test1.php', 'w');
|
||||
fwrite($fp, $test1);
|
||||
fclose($fp);
|
||||
|
||||
$ret = PEAR_Common::analyzeSourceCode($testdir . DIRECTORY_SEPARATOR . 'test1.php');
|
||||
echo "second test: returns false with invalid PHP? ";
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
unlink($testdir . DIRECTORY_SEPARATOR . 'test1.php');
|
||||
|
||||
$test3 = '
|
||||
<?php
|
||||
class test
|
||||
{
|
||||
class test2 {
|
||||
}
|
||||
}
|
||||
?>
|
||||
';
|
||||
$fp = fopen($testdir . DIRECTORY_SEPARATOR . 'test3.php', 'w');
|
||||
fwrite($fp, $test3);
|
||||
fclose($fp);
|
||||
|
||||
$ret = PEAR_Common::analyzeSourceCode($testdir . DIRECTORY_SEPARATOR . 'test3.php');
|
||||
echo "fourth test: returns false with invalid PHP? ";
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
unlink($testdir . DIRECTORY_SEPARATOR . 'test3.php');
|
||||
|
||||
$test4 = '
|
||||
<?php
|
||||
function test()
|
||||
{
|
||||
class test2 {
|
||||
}
|
||||
}
|
||||
?>
|
||||
';
|
||||
$fp = fopen($testdir . DIRECTORY_SEPARATOR . 'test4.php', 'w');
|
||||
fwrite($fp, $test4);
|
||||
fclose($fp);
|
||||
|
||||
$ret = PEAR_Common::analyzeSourceCode($testdir . DIRECTORY_SEPARATOR . 'test4.php');
|
||||
echo "fifth test: returns false with invalid PHP? ";
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
unlink($testdir . DIRECTORY_SEPARATOR . 'test4.php');
|
||||
|
||||
$test5 = '
|
||||
<?php
|
||||
function test()
|
||||
{
|
||||
}
|
||||
|
||||
if (trytofool) {
|
||||
function fool()
|
||||
{
|
||||
}
|
||||
}
|
||||
class test2 {
|
||||
function test2() {
|
||||
parent::unused();
|
||||
Greg::classes();
|
||||
$a = new Pierre;
|
||||
}
|
||||
}
|
||||
|
||||
class blah extends test2 {
|
||||
/**
|
||||
* @nodep Stig
|
||||
*/
|
||||
function blah()
|
||||
{
|
||||
Stig::rules();
|
||||
}
|
||||
}
|
||||
?>
|
||||
';
|
||||
$fp = fopen($testdir . DIRECTORY_SEPARATOR . 'test5.php', 'w');
|
||||
fwrite($fp, $test5);
|
||||
fclose($fp);
|
||||
|
||||
$ret = PEAR_Common::analyzeSourceCode($testdir . DIRECTORY_SEPARATOR . 'test5.php');
|
||||
echo "sixth test: returns false with valid PHP? ";
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
$ret['source_file'] = str_replace(array(dirname(__FILE__),DIRECTORY_SEPARATOR), array('', '/'), $ret['source_file']);
|
||||
var_dump($ret);
|
||||
unlink($testdir . DIRECTORY_SEPARATOR . 'test5.php');
|
||||
|
||||
rmdir($testdir);
|
||||
?>
|
||||
--EXPECT--
|
||||
first test: returns false with non-existing filename? yes
|
||||
second test: returns false with invalid PHP? yes
|
||||
fourth test: returns false with invalid PHP? yes
|
||||
fifth test: returns false with invalid PHP? yes
|
||||
sixth test: returns false with valid PHP? no
|
||||
array(6) {
|
||||
["source_file"]=>
|
||||
string(36) "/pear_common_analyzeSCtest/test5.php"
|
||||
["declared_classes"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "test2"
|
||||
[1]=>
|
||||
string(4) "blah"
|
||||
}
|
||||
["declared_methods"]=>
|
||||
array(2) {
|
||||
["test2"]=>
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
["blah"]=>
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(4) "blah"
|
||||
}
|
||||
}
|
||||
["declared_functions"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(4) "test"
|
||||
[1]=>
|
||||
string(4) "fool"
|
||||
}
|
||||
["used_classes"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(4) "Greg"
|
||||
[1]=>
|
||||
string(6) "Pierre"
|
||||
}
|
||||
["inheritance"]=>
|
||||
array(1) {
|
||||
["blah"]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Common::buildProvidesArray test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
if (!function_exists('token_get_all')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR/Common.php";
|
||||
|
||||
$testdir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pear_common_buildProvidesArraytest';
|
||||
mkdir($testdir);
|
||||
|
||||
$test5 = '
|
||||
<?php
|
||||
function test()
|
||||
{
|
||||
}
|
||||
|
||||
if (trytofool) {
|
||||
function fool()
|
||||
{
|
||||
}
|
||||
}
|
||||
class test2 {
|
||||
function test2() {
|
||||
parent::unused();
|
||||
Greg::classes();
|
||||
$a = new Pierre;
|
||||
}
|
||||
}
|
||||
|
||||
class blah extends test2 {
|
||||
/**
|
||||
* @nodep Stig
|
||||
*/
|
||||
function blah()
|
||||
{
|
||||
Stig::rules();
|
||||
}
|
||||
}
|
||||
?>
|
||||
';
|
||||
$fp = fopen($testdir . DIRECTORY_SEPARATOR . 'test5.php', 'w');
|
||||
fwrite($fp, $test5);
|
||||
fclose($fp);
|
||||
|
||||
$ret = PEAR_Common::analyzeSourceCode($testdir . DIRECTORY_SEPARATOR . 'test5.php');
|
||||
echo "pre-test: returns false with valid PHP? ";
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
$ret['source_file'] = str_replace(array(dirname(__FILE__),DIRECTORY_SEPARATOR), array('', '/'), $ret['source_file']);
|
||||
var_dump($ret);
|
||||
unlink($testdir . DIRECTORY_SEPARATOR . 'test5.php');
|
||||
$common = new PEAR_Common;
|
||||
$common->buildProvidesArray($ret);
|
||||
var_dump($common->pkginfo);
|
||||
rmdir($testdir);
|
||||
?>
|
||||
--EXPECT--
|
||||
pre-test: returns false with valid PHP? no
|
||||
array(6) {
|
||||
["source_file"]=>
|
||||
string(45) "/pear_common_buildProvidesArraytest/test5.php"
|
||||
["declared_classes"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "test2"
|
||||
[1]=>
|
||||
string(4) "blah"
|
||||
}
|
||||
["declared_methods"]=>
|
||||
array(2) {
|
||||
["test2"]=>
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
["blah"]=>
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(4) "blah"
|
||||
}
|
||||
}
|
||||
["declared_functions"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(4) "test"
|
||||
[1]=>
|
||||
string(4) "fool"
|
||||
}
|
||||
["used_classes"]=>
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(4) "Greg"
|
||||
[1]=>
|
||||
string(6) "Pierre"
|
||||
}
|
||||
["inheritance"]=>
|
||||
array(1) {
|
||||
["blah"]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
}
|
||||
array(1) {
|
||||
["provides"]=>
|
||||
array(4) {
|
||||
["class;test2"]=>
|
||||
array(3) {
|
||||
["file"]=>
|
||||
string(9) "test5.php"
|
||||
["type"]=>
|
||||
string(5) "class"
|
||||
["name"]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
["class;blah"]=>
|
||||
array(4) {
|
||||
["file"]=>
|
||||
string(9) "test5.php"
|
||||
["type"]=>
|
||||
string(5) "class"
|
||||
["name"]=>
|
||||
string(4) "blah"
|
||||
["extends"]=>
|
||||
string(5) "test2"
|
||||
}
|
||||
["function;test"]=>
|
||||
array(3) {
|
||||
["file"]=>
|
||||
string(9) "test5.php"
|
||||
["type"]=>
|
||||
string(8) "function"
|
||||
["name"]=>
|
||||
string(4) "test"
|
||||
}
|
||||
["function;fool"]=>
|
||||
array(3) {
|
||||
["file"]=>
|
||||
string(9) "test5.php"
|
||||
["type"]=>
|
||||
string(8) "function"
|
||||
["name"]=>
|
||||
string(4) "fool"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,214 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Common::downloadHttp test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
$fp = @fsockopen('pear.php.net', 80);
|
||||
if (!$fp) {
|
||||
echo 'skip';
|
||||
} else {
|
||||
fclose($fp);
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
mkdir($temp_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testDownloadHttp');
|
||||
// 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/Common.php";
|
||||
|
||||
$common = &new PEAR_Common;
|
||||
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'catchit');
|
||||
|
||||
function catchit($err)
|
||||
{
|
||||
echo "Caught error: " . $err->getMessage() . "\n";
|
||||
}
|
||||
|
||||
echo "Test static:\n";
|
||||
|
||||
echo "Simple: ";
|
||||
PEAR_Common::downloadHttp('http://test.pear.php.net/testdownload.tgz', $ui, $temp_path);
|
||||
$firstone = implode('', file(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testdownload.tgz'));
|
||||
$secondone = implode('', file($temp_path . DIRECTORY_SEPARATOR . 'testdownload.tgz'));
|
||||
echo ($firstone == $secondone) ? "passed\n" : "failed\n";
|
||||
|
||||
echo "Simple fail:\n";
|
||||
PEAR_Common::downloadHttp('http://test.poop.php.net/stuff.tgz', $ui, $temp_path);
|
||||
|
||||
echo "Test callback:\n";
|
||||
|
||||
$ui = 'My UI';
|
||||
|
||||
PEAR_Common::downloadHttp('http://test.pear.php.net/testdownload.tgz', $ui, $temp_path, 'myCallback');
|
||||
$firstone = implode('', file(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testdownload.tgz'));
|
||||
$secondone = implode('', file($temp_path . DIRECTORY_SEPARATOR . 'testdownload.tgz'));
|
||||
echo "Working Callback: ";
|
||||
echo ($firstone == $secondone) ? "passed\n" : "failed\n";
|
||||
|
||||
|
||||
function myCallback($message, $payload)
|
||||
{
|
||||
$stuff = serialize($payload);
|
||||
echo "Callback Message: $message\n";
|
||||
echo "Callback Payload: $stuff\n";
|
||||
}
|
||||
|
||||
echo "Callback fail:\n";
|
||||
PEAR_Common::downloadHttp('http://test.poop.php.net/stuff.tgz', $ui, $temp_path, 'myCallback');
|
||||
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Test static:
|
||||
Simple: passed
|
||||
Simple fail:
|
||||
Caught error: Connection to `test.poop.php.net:80' failed: The operation completed successfully.
|
||||
|
||||
Test callback:
|
||||
Callback Message: setup
|
||||
Callback Payload: a:1:{i:0;s:5:"My UI";}
|
||||
Callback Message: message
|
||||
Callback Payload: s:35:"Using HTTP proxy test.pear.php.net:";
|
||||
Callback Message: saveas
|
||||
Callback Payload: s:16:"testdownload.tgz";
|
||||
Callback Message: start
|
||||
Callback Payload: a:2:{i:0;s:16:"testdownload.tgz";i:1;s:5:"41655";}
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:1024;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:2048;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:3072;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:4096;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:5120;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:6144;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:7168;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:8192;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:9216;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:10240;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:11264;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:12288;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:13312;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:14336;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:15360;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:16384;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:17408;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:18432;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:19456;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:20480;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:21504;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:22528;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:23552;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:24576;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:25600;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:26624;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:27648;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:28672;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:29696;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:30720;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:31744;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:32768;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:33792;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:34816;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:35840;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:36864;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:37888;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:38912;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:39936;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:40960;
|
||||
Callback Message: bytesread
|
||||
Callback Payload: i:41655;
|
||||
Callback Message: done
|
||||
Callback Payload: i:41655;
|
||||
Working Callback: passed
|
||||
Callback fail:
|
||||
Callback Message: setup
|
||||
Callback Payload: a:1:{i:0;s:5:"My UI";}
|
||||
Callback Message: message
|
||||
Callback Payload: s:35:"Using HTTP proxy test.poop.php.net:";
|
||||
Callback Message: connfailed
|
||||
Callback Payload: a:4:{i:0;s:17:"test.poop.php.net";i:1;i:80;i:2;i:0;i:3;s:39:"The operation completed successfully.
|
||||
";}
|
||||
Caught error: Connection to `test.poop.php.net:80' failed: The operation completed successfully.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,73 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Common::sortPkgDeps test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dir = getcwd();
|
||||
chdir(dirname(__FILE__));
|
||||
|
||||
require_once 'PEAR/Common.php';
|
||||
|
||||
$c = new PEAR_Common();
|
||||
|
||||
$packages = array(
|
||||
'common_sortPkgDeps6_package.xml',
|
||||
'common_sortPkgDeps2_package.xml',
|
||||
'common_sortPkgDeps1_package.xml',
|
||||
'common_sortPkgDeps4_package.xml',
|
||||
'common_sortPkgDeps5_package.xml',
|
||||
'common_sortPkgDeps3_package.xml',
|
||||
);
|
||||
|
||||
$uninstallpackages = array(
|
||||
$c->infoFromAny('common_sortPkgDeps6_package.xml'),
|
||||
$c->infoFromAny('common_sortPkgDeps2_package.xml'),
|
||||
$c->infoFromAny('common_sortPkgDeps1_package.xml'),
|
||||
$c->infoFromAny('common_sortPkgDeps4_package.xml'),
|
||||
$c->infoFromAny('common_sortPkgDeps5_package.xml'),
|
||||
$c->infoFromAny('common_sortPkgDeps3_package.xml'),
|
||||
);
|
||||
|
||||
echo "Test Install Sort:\n";
|
||||
$c->sortPkgDeps($packages);
|
||||
dumpPacks($packages);
|
||||
|
||||
echo "Test Uninstall Sort:\n";
|
||||
$c->sortPkgDeps($uninstallpackages, true);
|
||||
dumpPacks($uninstallpackages);
|
||||
|
||||
chdir($dir);
|
||||
|
||||
function dumpPacks($p)
|
||||
{
|
||||
echo "Packages(\n";
|
||||
foreach ($p as $inf) {
|
||||
echo $inf['info']['package'] . ",\n";
|
||||
}
|
||||
echo ")\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Test Install Sort:
|
||||
Packages(
|
||||
pkg6,
|
||||
pkg5,
|
||||
pkg4,
|
||||
pkg3,
|
||||
pkg2,
|
||||
pkg1,
|
||||
)
|
||||
Test Uninstall Sort:
|
||||
Packages(
|
||||
pkg1,
|
||||
pkg2,
|
||||
pkg3,
|
||||
pkg5,
|
||||
pkg4,
|
||||
pkg6,
|
||||
)
|
||||
@@ -1,81 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Common::validPackageVersion test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once 'PEAR/Common.php';
|
||||
|
||||
// '\d+(?:\.\d+)*(?:[a-z]+\d*)?'
|
||||
|
||||
echo "==Valid Tests==\n";
|
||||
$a = '1';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1.1';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1.1.1';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1.1abc3';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.234beta4';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1alpha3';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1alpha';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1a';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
echo "==Invalid Tests==\n";
|
||||
|
||||
$a = '1.0.0-alpha2';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1alpha.4';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
|
||||
$a = '1.1alpha.4';
|
||||
echo "$a ";
|
||||
echo (PEAR_Common::validPackageVersion($a)) ? "valid\n" : "invalid\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
==Valid Tests==
|
||||
1 valid
|
||||
1.1 valid
|
||||
1.1.1 valid
|
||||
1.1.1.1 valid
|
||||
1.1.1abc3 valid
|
||||
1.234beta4 valid
|
||||
1alpha3 valid
|
||||
1alpha valid
|
||||
1.1a valid
|
||||
==Invalid Tests==
|
||||
1.0.0-alpha2 invalid
|
||||
1alpha.4 invalid
|
||||
1.1alpha.4 invalid
|
||||
@@ -1,304 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Config
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
exit();
|
||||
}
|
||||
include 'PEAR/Config.php';
|
||||
$pv = phpversion() . '';
|
||||
$av = $pv{0} == '4' ? 'apiversion' : 'apiVersion';
|
||||
if (in_array($av, get_class_methods('PEAR_Config'))) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
chdir(dirname(__FILE__));
|
||||
include "PEAR/Config.php";
|
||||
copy("system.input", "system.conf");
|
||||
copy("user.input", "user.conf");
|
||||
copy("user2.input", "user2.conf");
|
||||
copy("merge.input", "merge.conf");
|
||||
PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s\n");
|
||||
|
||||
print "\n#0 starting up\n";
|
||||
dump_files();
|
||||
|
||||
print "\n#1 testing: constructor\n";
|
||||
$config = new PEAR_Config("user.conf", "system.conf");
|
||||
dump_array("files", $config->files);
|
||||
|
||||
print "\n#2 testing: singleton\n";
|
||||
$o1 = &PEAR_Config::singleton();
|
||||
$o1->blah = 'blah';
|
||||
$o2 = &PEAR_Config::singleton();
|
||||
var_dump($o1->blah);
|
||||
@var_dump($o2->blah);
|
||||
|
||||
print "\n#3 testing: readConfigFile\n";
|
||||
$config->readConfigFile("user2.conf", "user");
|
||||
dump_config($config);
|
||||
$config->readConfigFile("user.conf");
|
||||
dump_config($config);
|
||||
|
||||
print "\n#4 testing: mergeConfigFile\n";
|
||||
$config->readConfigFile("user2.conf");
|
||||
dump_config($config, "user");
|
||||
$config->mergeConfigFile("merge.conf", true);
|
||||
dump_config($config, "user");
|
||||
$config->readConfigFile("user2.conf");
|
||||
$config->mergeConfigFile("merge.conf", false);
|
||||
dump_config($config, "user");
|
||||
$config->readConfigFile("user.conf");
|
||||
dump_config($config, "user");
|
||||
$config->mergeConfigFile("merge.conf", true, "xyzzy");
|
||||
|
||||
print "\n#5 testing: config file version detection\n";
|
||||
$config->readConfigFile("user.conf", "user");
|
||||
$config->readConfigFile("toonew.conf", "user");
|
||||
|
||||
print "\n#6 testing: get/set/remove\n";
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 100, "system");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 2, "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 2, "system");
|
||||
$config->set("verbose", 50, "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->remove("verbose", "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->get("verbose"));
|
||||
|
||||
print "\n#7 testing: getType\n";
|
||||
var_dump($config->getType("__unknown__"));
|
||||
var_dump($config->getType("verbose"));
|
||||
var_dump($config->getType("master_server"));
|
||||
var_dump($config->getType("ext_dir"));
|
||||
|
||||
print "\n#8 testing: getDocs\n";
|
||||
print "master_server: " . $config->getDocs("master_server") . "\n";
|
||||
|
||||
print "\n#9 testing: getKeys\n";
|
||||
$keys = $config->getKeys();
|
||||
sort($keys);
|
||||
print implode(" ", $keys) . "\n";
|
||||
|
||||
print "\n#10 testing: definedBy\n";
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->set("verbose", 6, "system");
|
||||
$config->set("verbose", 3, "user");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->set("verbose", 6, "system");
|
||||
$config->remove("verbose", "user");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
|
||||
print "\n#11 testing: isDefined\n";
|
||||
var_dump($config->isDefined("php_dir"));
|
||||
var_dump($config->isDefined("verbose"));
|
||||
var_dump($config->isDefined("HTTP_GET_VARS"));
|
||||
var_dump($config->isDefined("query"));
|
||||
|
||||
print "\n#12 testing: getGroup\n";
|
||||
foreach ($keys as $key) {
|
||||
print "$key: ".$config->getGroup($key)."\n";
|
||||
}
|
||||
|
||||
print "\n#13 testing: getGroups\n";
|
||||
$groups = $config->getGroups();
|
||||
sort($groups);
|
||||
print implode(", ", $groups) . "\n";
|
||||
|
||||
print "\n#14 testing: getGroupKeys\n";
|
||||
foreach ($groups as $group) {
|
||||
$gk = $config->getGroupKeys($group);
|
||||
sort($gk);
|
||||
print "$group: " . implode(", ", $gk) . "\n";
|
||||
}
|
||||
|
||||
print "\n#15 testing: getPrompt\n";
|
||||
foreach ($keys as $key) {
|
||||
print "$key: ".$config->getPrompt($key)."\n";
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
|
||||
print "done\n";
|
||||
|
||||
unlink("user.conf");
|
||||
unlink("user2.conf");
|
||||
unlink("system.conf");
|
||||
unlink("merge.conf");
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function dump_file($file)
|
||||
{
|
||||
print "..$file:";
|
||||
$data = PEAR_Config::_readConfigDataFrom($file);
|
||||
if (empty($data)) {
|
||||
print " <empty>\n";
|
||||
return;
|
||||
}
|
||||
foreach ($data as $k => $v) {
|
||||
print " $k=\"$v\"";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
function dump_files() {
|
||||
dump_file("system.conf");
|
||||
dump_file("user.conf");
|
||||
}
|
||||
|
||||
function dump_array($name, $arr) {
|
||||
print "$name:";
|
||||
if (empty($arr)) {
|
||||
print " <empty>";
|
||||
} else {
|
||||
foreach ($arr as $k => $v) {
|
||||
print " $k=\"$v\"";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
function dump_config(&$obj, $layer = null) {
|
||||
if ($layer !== null) {
|
||||
dump_array($layer, $obj->configuration[$layer]);
|
||||
return;
|
||||
}
|
||||
foreach ($obj->configuration as $layer => $data) {
|
||||
if ($layer == "default") {
|
||||
continue;
|
||||
}
|
||||
dump_array($layer, $data);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
#0 starting up
|
||||
..system.conf: master_server="pear.php.net"
|
||||
..user.conf: <empty>
|
||||
|
||||
#1 testing: constructor
|
||||
files: system="system.conf" user="user.conf"
|
||||
|
||||
#2 testing: singleton
|
||||
string(4) "blah"
|
||||
string(4) "blah"
|
||||
|
||||
#3 testing: readConfigFile
|
||||
user: verbose="2"
|
||||
system: master_server="pear.php.net"
|
||||
user: <empty>
|
||||
system: master_server="pear.php.net"
|
||||
|
||||
#4 testing: mergeConfigFile
|
||||
user: verbose="2"
|
||||
user: verbose="100"
|
||||
user: verbose="2"
|
||||
user: <empty>
|
||||
unknown config file type `xyzzy'
|
||||
|
||||
#5 testing: config file version detection
|
||||
toonew.conf: unknown version `2.0'
|
||||
|
||||
#6 testing: get/set/remove
|
||||
int(1)
|
||||
int(100)
|
||||
int(2)
|
||||
int(50)
|
||||
int(2)
|
||||
int(1)
|
||||
|
||||
#7 testing: getType
|
||||
bool(false)
|
||||
string(7) "integer"
|
||||
string(6) "string"
|
||||
string(9) "directory"
|
||||
|
||||
#8 testing: getDocs
|
||||
master_server: name of the main PEAR server
|
||||
|
||||
#9 testing: getKeys
|
||||
bin_dir cache_dir cache_ttl data_dir doc_dir ext_dir http_proxy master_server password php_bin php_dir preferred_state sig_bin sig_keydir sig_keyid sig_type test_dir umask username verbose
|
||||
|
||||
#10 testing: definedBy
|
||||
string(7) "default"
|
||||
string(4) "user"
|
||||
string(4) "user"
|
||||
string(6) "system"
|
||||
string(7) "default"
|
||||
|
||||
#11 testing: isDefined
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
|
||||
#12 testing: getGroup
|
||||
bin_dir: File Locations
|
||||
cache_dir: File Locations (Advanced)
|
||||
cache_ttl: Advanced
|
||||
data_dir: File Locations (Advanced)
|
||||
doc_dir: File Locations
|
||||
ext_dir: File Locations
|
||||
http_proxy: Internet Access
|
||||
master_server: Internet Access
|
||||
password: Maintainers
|
||||
php_bin: File Locations (Advanced)
|
||||
php_dir: File Locations
|
||||
preferred_state: Advanced
|
||||
sig_bin: Maintainers
|
||||
sig_keydir: Maintainers
|
||||
sig_keyid: Maintainers
|
||||
sig_type: Maintainers
|
||||
test_dir: File Locations (Advanced)
|
||||
umask: Advanced
|
||||
username: Maintainers
|
||||
verbose: Advanced
|
||||
|
||||
#13 testing: getGroups
|
||||
Advanced, File Locations, File Locations (Advanced), Internet Access, Maintainers
|
||||
|
||||
#14 testing: getGroupKeys
|
||||
Advanced: cache_ttl, preferred_state, umask, verbose
|
||||
File Locations: bin_dir, doc_dir, ext_dir, php_dir
|
||||
File Locations (Advanced): cache_dir, data_dir, php_bin, test_dir
|
||||
Internet Access: http_proxy, master_server
|
||||
Maintainers: password, sig_bin, sig_keydir, sig_keyid, sig_type, username
|
||||
|
||||
#15 testing: getPrompt
|
||||
bin_dir: PEAR executables directory
|
||||
cache_dir: PEAR Installer cache directory
|
||||
cache_ttl: Cache TimeToLive
|
||||
data_dir: PEAR data directory
|
||||
doc_dir: PEAR documentation directory
|
||||
ext_dir: PHP extension directory
|
||||
http_proxy: HTTP Proxy Server Address
|
||||
master_server: PEAR server
|
||||
password: PEAR password (for maintainers)
|
||||
php_bin: PHP CLI/CGI binary
|
||||
php_dir: PEAR directory
|
||||
preferred_state: Preferred Package State
|
||||
sig_bin: Signature Handling Program
|
||||
sig_keydir: Signature Key Directory
|
||||
sig_keyid: Signature Key Id
|
||||
sig_type: Package Signature Type
|
||||
test_dir: PEAR test directory
|
||||
umask: Unix file mask
|
||||
username: PEAR username (for maintainers)
|
||||
verbose: Debug Log Level
|
||||
done
|
||||
@@ -1,394 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Config v1.1
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
exit();
|
||||
}
|
||||
include_once 'PEAR/Config.php';
|
||||
$pv = phpversion() . '';
|
||||
$av = $pv{0} == '4' ? 'apiversion' : 'apiVersion';
|
||||
if (!in_array($av, get_class_methods('PEAR_Config'))) {
|
||||
echo 'skip';
|
||||
}
|
||||
if (PEAR_Config::apiVersion() != '1.1') {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
chdir(dirname(__FILE__));
|
||||
include_once "PEAR/Config.php";
|
||||
copy("system.input", "system.conf");
|
||||
copy("user.input", "user.conf");
|
||||
copy("user2.input", "user2.conf");
|
||||
copy("merge.input", "merge.conf");
|
||||
copy("user3.input", "user3.conf");
|
||||
copy("merge2.input", "merge2.conf");
|
||||
PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s\n");
|
||||
|
||||
print "\n#0 starting up\n";
|
||||
dump_files();
|
||||
|
||||
print "\n#1 testing: constructor\n";
|
||||
$config = new PEAR_Config("user.conf", "system.conf");
|
||||
dump_array("files", $config->files);
|
||||
|
||||
print "\n#2 testing: singleton\n";
|
||||
$o1 = &PEAR_Config::singleton();
|
||||
$o1->blah = 'blah';
|
||||
$o2 = &PEAR_Config::singleton();
|
||||
var_dump($o1->blah);
|
||||
@var_dump($o2->blah);
|
||||
|
||||
print "\n#3 testing: readConfigFile\n";
|
||||
$config->readConfigFile("user2.conf", "user");
|
||||
dump_config($config);
|
||||
$config->readConfigFile("user.conf");
|
||||
dump_config($config);
|
||||
|
||||
print "\n#4 testing: mergeConfigFile\n";
|
||||
$config->readConfigFile("user2.conf");
|
||||
dump_config($config, "user");
|
||||
$config->mergeConfigFile("merge.conf", true);
|
||||
dump_config($config, "user");
|
||||
$config->readConfigFile("user2.conf");
|
||||
$config->mergeConfigFile("merge.conf", false);
|
||||
dump_config($config, "user");
|
||||
$config->readConfigFile("user.conf");
|
||||
dump_config($config, "user");
|
||||
$config->mergeConfigFile("merge.conf", true, "xyzzy");
|
||||
$config->readConfigFile("user3.conf");
|
||||
dump_config($config, "user");
|
||||
$config->mergeConfigFile("merge2.conf", true);
|
||||
dump_config($config, "user");
|
||||
$config->readConfigFile("user3.conf");
|
||||
$config->mergeConfigFile("merge2.conf", false);
|
||||
dump_config($config, "user");
|
||||
|
||||
print "\n#5 testing: config file version detection\n";
|
||||
$config->readConfigFile("user.conf", "user");
|
||||
$config->readConfigFile("toonew.conf", "user");
|
||||
|
||||
print "\n#6 testing: get/set/remove\n";
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 100, "system");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 2, "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->set("verbose", 2, "system");
|
||||
$config->set("verbose", 50, "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->remove("verbose", "user");
|
||||
var_dump($config->get("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->get("verbose"));
|
||||
|
||||
print "\n#6.5 testing: get/set/remove w/channels\n";
|
||||
$config->readConfigFile('user3.conf');
|
||||
$config->setChannels(array('pear', 'test1', 'test2'));
|
||||
var_dump($config->get('default_channel'));
|
||||
|
||||
print "\n#7 testing: getType\n";
|
||||
var_dump($config->getType("__unknown__"));
|
||||
var_dump($config->getType("verbose"));
|
||||
var_dump($config->getType("master_server"));
|
||||
var_dump($config->getType("ext_dir"));
|
||||
|
||||
print "\n#8 testing: getDocs\n";
|
||||
print "master_server: " . $config->getDocs("master_server") . "\n";
|
||||
|
||||
print "\n#9 testing: getKeys\n";
|
||||
$keys = $config->getKeys();
|
||||
sort($keys);
|
||||
print implode(" ", $keys) . "\n";
|
||||
|
||||
print "\n#10 testing: definedBy\n";
|
||||
$config->readConfigFile('user.conf');
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->set("verbose", 6, "system");
|
||||
$config->set("verbose", 3, "user");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->set("verbose", 6, "system");
|
||||
$config->remove("verbose", "user");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
$config->remove("verbose", "system");
|
||||
var_dump($config->definedBy("verbose"));
|
||||
|
||||
print "\n#10.5 testing: definedBy with channel\n";
|
||||
$config->readConfigFile('user3.conf');
|
||||
var_dump($config->definedBy('verbose'));
|
||||
$config->set('default_channel', 'test1');
|
||||
var_dump($config->definedBy('verbose'));
|
||||
var_dump($config->definedBy('php_dir'));
|
||||
var_dump($config->definedBy('gronk'));
|
||||
$config->set('default_channel', 'pear');
|
||||
var_dump($config->definedBy('verbose', true));
|
||||
$config->set('default_channel', 'test1');
|
||||
var_dump($config->definedBy('verbose', true));
|
||||
var_dump($config->definedBy('php_dir', true));
|
||||
var_dump($config->definedBy('gronk', true));
|
||||
|
||||
print "\n#11 testing: isDefined\n";
|
||||
var_dump($config->isDefined("php_dir"));
|
||||
var_dump($config->isDefined("verbose"));
|
||||
var_dump($config->isDefined("HTTP_GET_VARS"));
|
||||
var_dump($config->isDefined("query"));
|
||||
|
||||
print "\n#12 testing: getGroup\n";
|
||||
foreach ($keys as $key) {
|
||||
print "$key: ".$config->getGroup($key)."\n";
|
||||
}
|
||||
|
||||
print "\n#13 testing: getGroups\n";
|
||||
$groups = $config->getGroups();
|
||||
sort($groups);
|
||||
print implode(", ", $groups) . "\n";
|
||||
|
||||
print "\n#14 testing: getGroupKeys\n";
|
||||
foreach ($groups as $group) {
|
||||
$gk = $config->getGroupKeys($group);
|
||||
sort($gk);
|
||||
print "$group: " . implode(", ", $gk) . "\n";
|
||||
}
|
||||
|
||||
print "\n#15 testing: getPrompt\n";
|
||||
foreach ($keys as $key) {
|
||||
print "$key: ".$config->getPrompt($key)."\n";
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
|
||||
print "done\n";
|
||||
|
||||
unlink("user.conf");
|
||||
unlink("user2.conf");
|
||||
unlink("user3.conf");
|
||||
unlink("system.conf");
|
||||
unlink("merge.conf");
|
||||
unlink("merge2.conf");
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function dump_file($file)
|
||||
{
|
||||
print "..$file:";
|
||||
$data = PEAR_Config::_readConfigDataFrom($file);
|
||||
if (empty($data)) {
|
||||
print " <empty>\n";
|
||||
return;
|
||||
}
|
||||
foreach ($data as $k => $v) {
|
||||
print " $k=\"$v\"";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
function dump_files() {
|
||||
dump_file("system.conf");
|
||||
dump_file("user.conf");
|
||||
}
|
||||
|
||||
function dump_array($name, $arr) {
|
||||
print "$name:";
|
||||
if (empty($arr)) {
|
||||
print " <empty>";
|
||||
} else {
|
||||
foreach ($arr as $k => $v) {
|
||||
if (is_array($v)) {
|
||||
print "\n ";
|
||||
dump_array("${name}[$k]", $v);
|
||||
continue;
|
||||
}
|
||||
print " $k=\"$v\"";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
|
||||
function dump_config(&$obj, $layer = null) {
|
||||
if ($layer !== null) {
|
||||
dump_array($layer, $obj->configuration[$layer]);
|
||||
return;
|
||||
}
|
||||
foreach ($obj->configuration as $layer => $data) {
|
||||
if ($layer == "default") {
|
||||
continue;
|
||||
}
|
||||
dump_array($layer, $data);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
#0 starting up
|
||||
..system.conf: master_server="pear.php.net"
|
||||
..user.conf: <empty>
|
||||
|
||||
#1 testing: constructor
|
||||
files: system="system.conf" user="user.conf"
|
||||
|
||||
#2 testing: singleton
|
||||
string(4) "blah"
|
||||
string(4) "blah"
|
||||
|
||||
#3 testing: readConfigFile
|
||||
user: verbose="2"
|
||||
system: master_server="pear.php.net"
|
||||
user: <empty>
|
||||
system: master_server="pear.php.net"
|
||||
|
||||
#4 testing: mergeConfigFile
|
||||
user: verbose="2"
|
||||
user: verbose="100"
|
||||
user: verbose="2"
|
||||
user: <empty>
|
||||
unknown config file type `xyzzy'
|
||||
user: verbose="60"
|
||||
user[__channels]:
|
||||
user[__channels][test1]: verbose="70"
|
||||
|
||||
user[__channels][test2]: verbose="71"
|
||||
|
||||
|
||||
user:
|
||||
user[__channels]:
|
||||
user[__channels][test1]: verbose="898"
|
||||
|
||||
user[__channels][test2]: verbose="899"
|
||||
|
||||
verbose="35"
|
||||
user:
|
||||
user[__channels]:
|
||||
user[__channels][test1]: verbose="70"
|
||||
|
||||
user[__channels][test2]: verbose="71"
|
||||
|
||||
verbose="60"
|
||||
|
||||
#5 testing: config file version detection
|
||||
toonew.conf: unknown version `2.0'
|
||||
|
||||
#6 testing: get/set/remove
|
||||
int(1)
|
||||
int(100)
|
||||
int(2)
|
||||
int(50)
|
||||
int(2)
|
||||
int(1)
|
||||
|
||||
#6.5 testing: get/set/remove w/channels
|
||||
string(4) "pear"
|
||||
|
||||
#7 testing: getType
|
||||
bool(false)
|
||||
string(7) "integer"
|
||||
string(6) "string"
|
||||
string(9) "directory"
|
||||
|
||||
#8 testing: getDocs
|
||||
master_server: name of the main PEAR server
|
||||
|
||||
#9 testing: getKeys
|
||||
bin_dir cache_dir cache_ttl data_dir default_channel doc_dir ext_dir http_proxy master_server password php_bin php_dir preferred_state sig_bin sig_keydir sig_keyid sig_type test_dir umask username verbose
|
||||
|
||||
#10 testing: definedBy
|
||||
string(7) "default"
|
||||
string(4) "user"
|
||||
string(4) "user"
|
||||
string(6) "system"
|
||||
string(7) "default"
|
||||
|
||||
#10.5 testing: definedBy with channel
|
||||
string(4) "user"
|
||||
string(4) "user"
|
||||
string(7) "default"
|
||||
string(0) ""
|
||||
array(2) {
|
||||
["layer"]=>
|
||||
string(4) "user"
|
||||
["channel"]=>
|
||||
string(4) "pear"
|
||||
}
|
||||
array(2) {
|
||||
["layer"]=>
|
||||
string(4) "user"
|
||||
["channel"]=>
|
||||
string(5) "test1"
|
||||
}
|
||||
array(2) {
|
||||
["layer"]=>
|
||||
string(7) "default"
|
||||
["channel"]=>
|
||||
string(4) "pear"
|
||||
}
|
||||
string(0) ""
|
||||
|
||||
#11 testing: isDefined
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
|
||||
#12 testing: getGroup
|
||||
bin_dir: File Locations
|
||||
cache_dir: File Locations (Advanced)
|
||||
cache_ttl: Advanced
|
||||
data_dir: File Locations (Advanced)
|
||||
default_channel: Internet Access
|
||||
doc_dir: File Locations
|
||||
ext_dir: File Locations
|
||||
http_proxy: Internet Access
|
||||
master_server: Internet Access
|
||||
password: Maintainers
|
||||
php_bin: File Locations (Advanced)
|
||||
php_dir: File Locations
|
||||
preferred_state: Advanced
|
||||
sig_bin: Maintainers
|
||||
sig_keydir: Maintainers
|
||||
sig_keyid: Maintainers
|
||||
sig_type: Maintainers
|
||||
test_dir: File Locations (Advanced)
|
||||
umask: Advanced
|
||||
username: Maintainers
|
||||
verbose: Advanced
|
||||
|
||||
#13 testing: getGroups
|
||||
Advanced, File Locations, File Locations (Advanced), Internet Access, Maintainers
|
||||
|
||||
#14 testing: getGroupKeys
|
||||
Advanced: cache_ttl, preferred_state, umask, verbose
|
||||
File Locations: bin_dir, doc_dir, ext_dir, php_dir
|
||||
File Locations (Advanced): cache_dir, data_dir, php_bin, test_dir
|
||||
Internet Access: default_channel, http_proxy, master_server
|
||||
Maintainers: password, sig_bin, sig_keydir, sig_keyid, sig_type, username
|
||||
|
||||
#15 testing: getPrompt
|
||||
bin_dir: PEAR executables directory
|
||||
cache_dir: PEAR Installer cache directory
|
||||
cache_ttl: Cache TimeToLive
|
||||
data_dir: PEAR data directory
|
||||
default_channel: Default Channel
|
||||
doc_dir: PEAR documentation directory
|
||||
ext_dir: PHP extension directory
|
||||
http_proxy: HTTP Proxy Server Address
|
||||
master_server: PEAR server
|
||||
password: PEAR password (for maintainers)
|
||||
php_bin: PHP CLI/CGI binary
|
||||
php_dir: PEAR directory
|
||||
preferred_state: Preferred Package State
|
||||
sig_bin: Signature Handling Program
|
||||
sig_keydir: Signature Key Directory
|
||||
sig_keyid: Signature Key Id
|
||||
sig_type: Package Signature Type
|
||||
test_dir: PEAR test directory
|
||||
umask: Unix file mask
|
||||
username: PEAR username (for maintainers)
|
||||
verbose: Debug Log Level
|
||||
done
|
||||
@@ -1,265 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Dependency::checkExtension() test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
exit;
|
||||
}
|
||||
if (!ini_get('enable_dl') || ini_get('safe_mode')) {
|
||||
echo 'skip';
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once 'System.php';
|
||||
|
||||
$dir = ini_get('extension_dir');
|
||||
if (OS_WINDOWS) {
|
||||
$suffix = '.dll';
|
||||
} elseif (PHP_OS == 'HP-UX') {
|
||||
$suffix = '.sl';
|
||||
} elseif (PHP_OS == 'AIX') {
|
||||
$suffix = '.a';
|
||||
} elseif (PHP_OS == 'OSX') {
|
||||
$suffix = '.bundle';
|
||||
} else {
|
||||
$suffix = '.so';
|
||||
}
|
||||
|
||||
// get a list of possible extensions
|
||||
$extensions = array();
|
||||
if ($handle = opendir($dir)) {
|
||||
while (false !== ($file = readdir($handle))) {
|
||||
if (strpos($file, $suffix) && substr($file, 0, 4) == 'php_') {
|
||||
$extensions[] = $file;
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
|
||||
$loaded = false;
|
||||
$notloaded = false;
|
||||
// choose an extension for this test
|
||||
foreach ($extensions as $ext) {
|
||||
$ext = substr(substr($ext, 0, strlen($ext) - strlen($suffix)), 4);
|
||||
if (!$loaded && extension_loaded($ext)) {
|
||||
$loaded = $ext;
|
||||
}
|
||||
if (!$notloaded && !extension_loaded($ext)) {
|
||||
// safe list for testing
|
||||
if (in_array($ext, array('zip', 'bz2', 'sqlite', 'dbx'))) {
|
||||
$notloaded = $ext;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$notloaded || !$loaded) {
|
||||
echo 'skip';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
@mkdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
require_once "PEAR/Registry.php";
|
||||
require_once "PEAR/Dependency.php";
|
||||
|
||||
$dir = ini_get('extension_dir');
|
||||
if (OS_WINDOWS) {
|
||||
$suffix = '.dll';
|
||||
} elseif (PHP_OS == 'HP-UX') {
|
||||
$suffix = '.sl';
|
||||
} elseif (PHP_OS == 'AIX') {
|
||||
$suffix = '.a';
|
||||
} elseif (PHP_OS == 'OSX') {
|
||||
$suffix = '.bundle';
|
||||
} else {
|
||||
$suffix = '.so';
|
||||
}
|
||||
|
||||
// get a list of possible extensions
|
||||
$extensions = array();
|
||||
if ($handle = opendir($dir)) {
|
||||
while (false !== ($file = readdir($handle))) {
|
||||
if (strpos($file, $suffix) && substr($file, 0, 4) == 'php_') {
|
||||
$extensions[] = $file;
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
|
||||
$loaded = false;
|
||||
$notloaded = false;
|
||||
// choose an extension for this test
|
||||
foreach ($extensions as $ext) {
|
||||
$ext = substr(substr($ext, 0, strlen($ext) - strlen($suffix)), 4);
|
||||
if (!$loaded && extension_loaded($ext)) {
|
||||
$loaded = $ext;
|
||||
}
|
||||
if (!$notloaded && !extension_loaded($ext)) {
|
||||
// safe list for testing
|
||||
if (in_array($ext, array('zip', 'bz2', 'sqlite', 'dbx'))) {
|
||||
$notloaded = $ext;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$reg = new PEAR_Registry;
|
||||
$reg->statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp';
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, null, 'has');
|
||||
echo 'extension 1 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $notloaded, null, 'not');
|
||||
echo 'extension 2 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$loadedver = phpversion($loaded);
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver + 1, 'ge');
|
||||
echo 'extension 3 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version >= " . ($loadedver + 1) .
|
||||
" is required" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver + 1, 'ge', true);
|
||||
echo 'extension 3 optional ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version >= " . ($loadedver + 1) .
|
||||
" is recommended to utilize some features" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'ne');
|
||||
echo 'extension 4 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version != " . $loadedver .
|
||||
" is required" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'gt');
|
||||
echo 'extension 5 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version > " . $loadedver .
|
||||
" is required" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'gt', true);
|
||||
echo 'extension 5 optional ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version > " . $loadedver .
|
||||
" is recommended to utilize some features" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'lt');
|
||||
echo 'extension 6 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version < " . $loadedver .
|
||||
" is required" ? "match\n" : "$msg\n" );
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'lt', true);
|
||||
echo 'extension 6 optional ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version < " . $loadedver .
|
||||
" is recommended to utilize some features" ? "match\n" : "$msg\n" );
|
||||
|
||||
if ($loadedver == 0) {
|
||||
echo "extension 7 ok? no\nmessage : match\n";
|
||||
echo "extension 7 optional ok? no\nmessage : match\n";
|
||||
} else {
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver - 1, 'le');
|
||||
echo 'extension 7 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version <= " . ($loadedver - 1).
|
||||
" is required" ? "match\n" : "$msg\n");
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver - 1, 'le', true);
|
||||
echo 'extension 7 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version <= " . ($loadedver - 1).
|
||||
" is recommended to utilize some features" ? "match\n" : "$msg\n");
|
||||
}
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver, 'eq');
|
||||
echo 'extension 8 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $notloaded, $loadedver, 'ne');
|
||||
echo 'extension 9 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver + 1, 'eq');
|
||||
echo 'extension 10 ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version == " . ($loadedver + 1).
|
||||
" is required" ? "match\n" : "$msg\n");
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkExtension($msg, $loaded, $loadedver + 1, 'eq', true);
|
||||
echo 'extension 10 optional ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo 'message : ' . ($msg == "'$loaded' PHP extension version == " . ($loadedver + 1).
|
||||
" is recommended to utilize some features" ? "match\n" : "$msg\n");
|
||||
|
||||
cleanall();
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function cleanall()
|
||||
{
|
||||
$dp = opendir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
while ($ent = readdir($dp)) {
|
||||
if (substr($ent, -4) == ".reg") {
|
||||
unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp' . DIRECTORY_SEPARATOR . $ent);
|
||||
}
|
||||
}
|
||||
closedir($dp);
|
||||
rmdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
extension 1 ok? yes
|
||||
no error
|
||||
extension 2 ok? yes
|
||||
no error
|
||||
extension 3 ok? no
|
||||
message : match
|
||||
extension 3 optional ok? no
|
||||
message : match
|
||||
extension 4 ok? no
|
||||
message : match
|
||||
extension 5 ok? no
|
||||
message : match
|
||||
extension 5 optional ok? no
|
||||
message : match
|
||||
extension 6 ok? no
|
||||
message : match
|
||||
extension 6 optional ok? no
|
||||
message : match
|
||||
extension 7 ok? no
|
||||
message : match
|
||||
extension 7 optional ok? no
|
||||
message : match
|
||||
extension 8 ok? yes
|
||||
no error
|
||||
extension 9 ok? yes
|
||||
no error
|
||||
extension 10 ok? no
|
||||
message : match
|
||||
extension 10 optional ok? no
|
||||
message : match
|
||||
@@ -1,267 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Dependency::checkPackage() test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require_once "PEAR/Registry.php";
|
||||
require_once "PEAR/Dependency.php";
|
||||
|
||||
mkdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
// snarfed from pear_registry.phpt
|
||||
$reg = new PEAR_Registry;
|
||||
$reg->statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp';
|
||||
|
||||
$files1 = array(
|
||||
"pkg1-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg1-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1');
|
||||
echo 'has works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'eq');
|
||||
echo 'eq 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'le');
|
||||
echo 'le 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.1', 'lt');
|
||||
echo 'lt 1.1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.1', 'ne');
|
||||
echo 'ne 1.1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'ge');
|
||||
echo 'ge 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '0.9', 'gt');
|
||||
echo 'ge 0.9 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg2', null, 'not');
|
||||
echo 'not pkg2 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
// error conditions
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg2', null, 'has');
|
||||
echo 'has pkg2 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_MISSING? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_MISSING) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg2', null, 'has', true);
|
||||
echo 'has optional pkg2 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_MISSING_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_MISSING_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '0.9', 'le');
|
||||
echo 'le 0.9 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_CONFLICT? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_CONFLICT) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '0.9', 'le', true);
|
||||
echo 'optional le 0.9 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_CONFLICT_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_CONFLICT_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'ne');
|
||||
echo 'ne 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_CONFLICT? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_CONFLICT) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'ne', true);
|
||||
echo 'optional ne 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_CONFLICT_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_CONFLICT_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.1', 'ge');
|
||||
echo 'ge 1.1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MINOR? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MINOR) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.1', 'ge', true);
|
||||
echo 'optional ge 1.1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '2.0', 'ge');
|
||||
echo 'ge 2.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MAJOR? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MAJOR) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '2.0', 'ge', true);
|
||||
echo 'optional ge 2.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MAJOR_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MAJOR_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'gt');
|
||||
echo 'gt 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MINOR? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MINOR) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', '1.0', 'gt', true);
|
||||
echo 'optional gt 1.0 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', null, 'not');
|
||||
echo 'not pkg1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_CONFLICT? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_CONFLICT) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
|
||||
$msg = 'no error';
|
||||
$ret = $dep->checkPackage($msg, 'pkg1', null, 'foobar');
|
||||
echo 'foobar pkg1 works? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo '$ret is PEAR_DEPENDENCY_BAD_DEPENDENCY? ';
|
||||
echo ($ret == PEAR_DEPENDENCY_BAD_DEPENDENCY) ? "yes\n" : "no\n";
|
||||
echo $msg . "\n";
|
||||
cleanall();
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function cleanall()
|
||||
{
|
||||
$dp = opendir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
while ($ent = readdir($dp)) {
|
||||
if (substr($ent, -4) == ".reg") {
|
||||
unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp' . DIRECTORY_SEPARATOR . $ent);
|
||||
}
|
||||
}
|
||||
closedir($dp);
|
||||
rmdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
has works? yes
|
||||
no error
|
||||
eq 1.0 works? yes
|
||||
no error
|
||||
le 1.0 works? yes
|
||||
no error
|
||||
lt 1.1 works? yes
|
||||
no error
|
||||
ne 1.1 works? yes
|
||||
no error
|
||||
ge 1.0 works? yes
|
||||
no error
|
||||
ge 0.9 works? yes
|
||||
no error
|
||||
not pkg2 works? yes
|
||||
no error
|
||||
has pkg2 works? no
|
||||
$ret is PEAR_DEPENDENCY_MISSING? yes
|
||||
requires package `pear::pkg2'
|
||||
has optional pkg2 works? no
|
||||
$ret is PEAR_DEPENDENCY_MISSING_OPTIONAL? yes
|
||||
package `pear::pkg2' is recommended to utilize some features.
|
||||
le 0.9 works? no
|
||||
$ret is PEAR_DEPENDENCY_CONFLICT? yes
|
||||
requires package `pear::pkg1' <= 0.9
|
||||
optional le 0.9 works? no
|
||||
$ret is PEAR_DEPENDENCY_CONFLICT_OPTIONAL? yes
|
||||
package `pear::pkg1' version <= 0.9 is recommended to utilize some features. Installed version is 1.0
|
||||
ne 1.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_CONFLICT? yes
|
||||
requires package `pear::pkg1' != 1.0
|
||||
optional ne 1.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_CONFLICT_OPTIONAL? yes
|
||||
package `pear::pkg1' version != 1.0 is recommended to utilize some features. Installed version is 1.0
|
||||
ge 1.1 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MINOR? yes
|
||||
requires package `pear::pkg1' >= 1.1
|
||||
optional ge 1.1 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL? yes
|
||||
package `pear::pkg1' version >= 1.1 is recommended to utilize some features. Installed version is 1.0
|
||||
ge 2.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MAJOR? yes
|
||||
requires package `pear::pkg1' >= 2.0
|
||||
optional ge 2.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MAJOR_OPTIONAL? yes
|
||||
package `pear::pkg1' version >= 2.0 is recommended to utilize some features. Installed version is 1.0
|
||||
gt 1.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MINOR? yes
|
||||
requires package `pear::pkg1' > 1.0
|
||||
optional gt 1.0 works? no
|
||||
$ret is PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL? yes
|
||||
package `pear::pkg1' version > 1.0 is recommended to utilize some features. Installed version is 1.0
|
||||
not pkg1 works? no
|
||||
$ret is PEAR_DEPENDENCY_CONFLICT? yes
|
||||
conflicts with package `pear::pkg1'
|
||||
foobar pkg1 works? no
|
||||
$ret is PEAR_DEPENDENCY_BAD_DEPENDENCY? yes
|
||||
relation 'foobar' with requirement '' is not supported (name=pear::pkg1)
|
||||
@@ -1,176 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Dependency::checkPackageUninstall() test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR/Registry.php";
|
||||
require_once "PEAR/Dependency.php";
|
||||
|
||||
// snarfed from pear_registry.phpt
|
||||
$reg = new PEAR_Registry;
|
||||
@mkdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
$reg->statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp';
|
||||
|
||||
$files1 = array(
|
||||
"pkg1-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg1-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$files2 = array(
|
||||
"pkg2-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg2-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg2",
|
||||
),
|
||||
);
|
||||
$files3 = array(
|
||||
"pkg3-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg3-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg3",
|
||||
),
|
||||
);
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1,
|
||||
'release_deps' => array(
|
||||
array('type' => 'pkg', 'name' => 'pkg3', 'rel' => 'not')
|
||||
)));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = '';
|
||||
$warn = '';
|
||||
$ret = $dep->checkPackageUninstall($msg, $warn, 'pkg1');
|
||||
echo 'uninstall ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
echo $warn . "\n";
|
||||
|
||||
cleanall();
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1,
|
||||
'release_deps' => array(
|
||||
array('type' => 'pkg', 'name' => 'pkg2', 'rel' => 'ne', 'version' => '6.0')
|
||||
)));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = '';
|
||||
$warn = '';
|
||||
$ret = $dep->checkPackageUninstall($msg, $warn, 'pkg2');
|
||||
echo 'uninstall ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
echo $warn . "\n";
|
||||
|
||||
cleanall();
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1,
|
||||
'release_deps' => array(
|
||||
array('type' => 'pkg', 'name' => 'pkg2', 'rel' => 'has')
|
||||
)));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = '';
|
||||
$warn = '';
|
||||
$ret = $dep->checkPackageUninstall($msg, $warn, 'pkg2');
|
||||
echo 'uninstall ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
echo $warn . "\n";
|
||||
|
||||
cleanall();
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1,
|
||||
'release_deps' => array(
|
||||
array('type' => 'pkg', 'name' => 'pkg2', 'rel' => 'has', 'optional' => 'no')
|
||||
)));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = '';
|
||||
$warn = '';
|
||||
$ret = $dep->checkPackageUninstall($msg, $warn, 'pkg2');
|
||||
echo 'uninstall ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
echo $warn . "\n";
|
||||
|
||||
cleanall();
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1,
|
||||
'release_deps' => array(
|
||||
array('type' => 'pkg', 'name' => 'pkg2', 'rel' => 'has', 'optional' => 'yes')
|
||||
)));
|
||||
|
||||
$dep = new PEAR_Dependency($reg);
|
||||
$msg = '';
|
||||
$warn = '';
|
||||
$ret = $dep->checkPackageUninstall($msg, $warn, 'pkg2');
|
||||
echo 'uninstall ok? ';
|
||||
echo $ret ? "no\n" : "yes\n";
|
||||
echo $msg . "\n";
|
||||
echo $warn . "\n";
|
||||
|
||||
cleanall();
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function cleanall()
|
||||
{
|
||||
$dp = opendir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
while ($ent = readdir($dp)) {
|
||||
if (substr($ent, -4) == ".reg") {
|
||||
unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp' . DIRECTORY_SEPARATOR . $ent);
|
||||
}
|
||||
}
|
||||
closedir($dp);
|
||||
rmdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'checkPackagetmp');
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
uninstall ok? yes
|
||||
|
||||
|
||||
uninstall ok? yes
|
||||
|
||||
|
||||
uninstall ok? no
|
||||
Package 'pear::pkg1' depends on 'pear::pkg2'
|
||||
|
||||
|
||||
uninstall ok? no
|
||||
Package 'pear::pkg1' depends on 'pear::pkg2'
|
||||
|
||||
|
||||
uninstall ok? yes
|
||||
|
||||
|
||||
Warning: Package 'pear::pkg1' optionally depends on 'pear::pkg2'
|
||||
@@ -1,379 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Downloader::download() invalid values test
|
||||
--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');
|
||||
}
|
||||
if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'cache')) {
|
||||
mkdir($temp_path . DIRECTORY_SEPARATOR . 'cache');
|
||||
}
|
||||
// make the fake configuration - we'll use one of these and it should work
|
||||
$config = serialize(array('master_server' => $server,
|
||||
'preferred_state' => 'stable',
|
||||
'cache_dir' => $temp_path . DIRECTORY_SEPARATOR . 'cache',
|
||||
'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/Downloader.php";
|
||||
require_once 'PEAR/Installer.php';
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'download_test_classes.php.inc';
|
||||
|
||||
// no UI is needed for these tests
|
||||
$ui = false;
|
||||
$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";
|
||||
}
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
// initialize fake pear channel
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('pear');
|
||||
$chan->setSummary('PEAR');
|
||||
$chan->setServer($server);
|
||||
$chan->setDefaultPEARProtocols();
|
||||
$reg = new PEAR_Registry($config->get('php_dir'), $chan);
|
||||
$options = array();
|
||||
$installer = &new test_PEAR_Downloader($ui, $options, $config);
|
||||
|
||||
echo "-=-=-=-=-=-=-=-=- Failure Tests -=-=-=-=-=-=-=-=-=-=-\n";
|
||||
|
||||
echo "Test invalid package name:\n";
|
||||
$packages = array("/invalid+packagename");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
echo "Test download of a package with no releases:\n";
|
||||
$packages = array("noreleases");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
echo "Test download of a non-existing package version:\n";
|
||||
$packages = array("pkg1-1976.9.2");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
echo "Test download of a non-existing package release state:\n";
|
||||
$packages = array("pkg1-snapshot");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
echo "Test download of invalid release state:\n";
|
||||
$packages = array("pkg1-burgerking");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
$installer->configSet('preferred_state', 'stable');
|
||||
|
||||
echo "Test automatic version resolution (stable):\n";
|
||||
$packages = array("stabilitytoolow");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages);
|
||||
|
||||
echo "Test automatic version resolution (stable) with --force:\n";
|
||||
$packages = array("stabilitytoolow");
|
||||
$installer->setOptions(array('force' => true));
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages[0]['info']['version']);
|
||||
|
||||
$installer->configSet('preferred_state', 'beta');
|
||||
$installer->setOptions(array());
|
||||
|
||||
echo "Test automatic version resolution (beta):\n";
|
||||
$packages = array("stabilitytoolow");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages[0]['info']['version']);
|
||||
|
||||
$installer->configSet('preferred_state', 'alpha');
|
||||
|
||||
echo "Test automatic version resolution (alpha):\n";
|
||||
$packages = array("stabilitytoolow");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages[0]['info']['version']);
|
||||
|
||||
$installer->configSet('preferred_state', 'devel');
|
||||
|
||||
echo "Test automatic version resolution (devel):\n";
|
||||
$packages = array("stabilitytoolow");
|
||||
$a = $installer->doDownload($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $installpackages[0]['info']['version']);
|
||||
|
||||
echo "Test download attempt if a version is already installed:\n";
|
||||
|
||||
$forinstall = &new PEAR_Installer($ui);
|
||||
$forinstall->setOptions(array());
|
||||
$installer->setOptions(array());
|
||||
|
||||
$installer->doDownload(array('pkg6'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
$forinstall->install($pkgs[0]['file']);
|
||||
$installer->doDownload(array('pkg6'));
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
echo "Test download attempt if a version is already installed with --force:\n";
|
||||
|
||||
$installer->setOptions(array('force' => true));
|
||||
|
||||
$installer->doDownload(array('pkg6'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs(), $pkgs[0]['info']['version']);
|
||||
|
||||
echo "Test download attempt if a version is already installed with upgrade, same version:\n";
|
||||
|
||||
$installer->setOptions(array('upgrade' => true));
|
||||
|
||||
$installer->doDownload(array('pkg6'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
echo "Test download attempt if a version is already installed with upgrade, lesser version:\n";
|
||||
|
||||
$installer->setOptions(array('upgrade' => true));
|
||||
|
||||
$installer->doDownload(array('pkg6-1.1'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
echo "Test download attempt with --alldeps, but dependency has no releases:\n";
|
||||
|
||||
$installer->setOptions(array('alldeps' => true));
|
||||
|
||||
$installer->doDownload(array('depnoreleases'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
echo "Test download attempt with --onlyreqdeps, but dependency has no releases:\n";
|
||||
|
||||
$installer->setOptions(array('onlyreqdeps' => true));
|
||||
|
||||
$installer->doDownload(array('depnoreleases'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
$installer->configSet('preferred_state', 'stable');
|
||||
echo "Test download attempt with --alldeps, but dependency is too unstable:\n";
|
||||
$installer->setOptions(array('alldeps' => true));
|
||||
|
||||
$installer->doDownload(array('depunstable'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
echo "Test download attempt with --onlyreqdeps, but dependency is too unstable:\n";
|
||||
|
||||
$installer->setOptions(array('onlyreqdeps' => true));
|
||||
|
||||
$installer->doDownload(array('depunstable'));
|
||||
$pkgs = $installer->getDownloadedPackages();
|
||||
var_dump(get_class($a), $installer->getErrorMsgs());
|
||||
|
||||
chdir($curdir);
|
||||
cleanall($temp_path);
|
||||
|
||||
//echo implode("\n", array_values($GLOBALS['totalPHP']));
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
-=-=-=-=-=-=-=-=- Failure Tests -=-=-=-=-=-=-=-=-=-=-
|
||||
Test invalid package name:
|
||||
Caught error: Package name '/invalid+packagename' not valid for channel 'pear'
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test download of a package with no releases:
|
||||
Caught error: No releases found for package 'pear::noreleases'
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test download of a non-existing package version:
|
||||
Caught error: No release of 'pear::pkg1' with version '1976.9.2' found, latest release is version '2.0b1', stability 'beta', use --force to install
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test download of a non-existing package release state:
|
||||
Caught error: No release of 'pear::pkg1' with state 'snapshot' found, latest release is version '2.0b1', stability 'beta', use --force to install
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test download of invalid release state:
|
||||
Caught error: Invalid suffix '-burgerking', be sure to pass a valid PEAR version number or release state
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test automatic version resolution (stable):
|
||||
Caught error: No release of 'pear::stabilitytoolow' within preferred_state of 'stable' found, latest release is version '3.0dev', stability 'devel', use --force to install
|
||||
string(10) "pear_error"
|
||||
array(0) {
|
||||
}
|
||||
array(0) {
|
||||
}
|
||||
Test automatic version resolution (stable) with --force:
|
||||
Warning: No release of 'pear::stabilitytoolow' within preferred_state of 'stable' found, latest release, version '3.0dev', stability 'devel' will be downloaded
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
string(6) "3.0dev"
|
||||
Test automatic version resolution (beta):
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
string(5) "1.0b1"
|
||||
Test automatic version resolution (alpha):
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
string(5) "2.0a1"
|
||||
Test automatic version resolution (devel):
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
string(6) "3.0dev"
|
||||
Test download attempt if a version is already installed:
|
||||
Package 'pear::pkg6' already installed, skipping
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
Test download attempt if a version is already installed with --force:
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
string(5) "2.0b1"
|
||||
Test download attempt if a version is already installed with upgrade, same version:
|
||||
Package 'pear::pkg6', version '2.0b1' already installed, skipping
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
Test download attempt if a version is already installed with upgrade, lesser version:
|
||||
Package 'pear::pkg6' version '2.0b1' is installed and 2.0b1 is > requested '1.1', skipping
|
||||
bool(false)
|
||||
array(0) {
|
||||
}
|
||||
Test download attempt with --alldeps, but dependency has no releases:
|
||||
bool(false)
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(75) "Package 'pear::depnoreleases' dependency 'pear::noreleases' has no releases"
|
||||
}
|
||||
Test download attempt with --onlyreqdeps, but dependency has no releases:
|
||||
bool(false)
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(75) "Package 'pear::depnoreleases' dependency 'pear::noreleases' has no releases"
|
||||
}
|
||||
Test download attempt with --alldeps, but dependency is too unstable:
|
||||
bool(false)
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(103) "Release for 'pear::depunstable' dependency 'pear::stabilitytoolow' has state 'devel', requires 'stable'"
|
||||
}
|
||||
Test download attempt with --onlyreqdeps, but dependency is too unstable:
|
||||
bool(false)
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(103) "Release for 'pear::depunstable' dependency 'pear::stabilitytoolow' has state 'devel', requires 'stable'"
|
||||
}
|
||||
@@ -1,578 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Downloader::download() test
|
||||
--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');
|
||||
}
|
||||
if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'cache')) {
|
||||
mkdir($temp_path . DIRECTORY_SEPARATOR . 'cache');
|
||||
}
|
||||
// make the fake configuration - we'll use one of these and it should work
|
||||
$config = serialize(array('master_server' => $server,
|
||||
'preferred_state' => 'stable',
|
||||
'cache_dir' => $temp_path . DIRECTORY_SEPARATOR . 'cache',
|
||||
'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/Downloader.php";
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'download_test_classes.php.inc';
|
||||
|
||||
// no UI is needed for these tests
|
||||
$ui = false;
|
||||
$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 simple direct url download:\n";
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
// initialize fake pear channel
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('pear');
|
||||
$chan->setSummary('PEAR');
|
||||
$chan->setServer($server);
|
||||
$chan->setDefaultPEARProtocols();
|
||||
|
||||
$reg = new PEAR_Registry($config->get('php_dir'), $chan);
|
||||
$packages = array("http://$server/get/pkg6-1.1.tgz");
|
||||
$options = array();
|
||||
$installer = &new test_PEAR_Downloader($ui, $options, $config);
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
var_dump($installpackages);
|
||||
|
||||
echo "Test simple package name download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6');
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
var_dump($installpackages);
|
||||
|
||||
echo "Test package name with version download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-1.1');
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "Test package name with state stable download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-stable');
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "Test package name with state beta download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-beta');
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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-2.0b1.tgz'));
|
||||
$dled = implode('', file($installpackages[0]['file']));
|
||||
echo ($good == $dled) ? "yes\n" : "no\n";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "================\nTest preferred_state = beta\n";
|
||||
$installer->configSet('preferred_state', 'beta');
|
||||
|
||||
echo "Test simple package name download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6');
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
|
||||
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-2.0b1.tgz'));
|
||||
$dled = implode('', file($installpackages[0]['file']));
|
||||
echo ($good == $dled) ? "yes\n" : "no\n";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
|
||||
echo "\n================Test --alldeps\nTest preferred_state = stable\n";
|
||||
$installer->configSet('preferred_state', 'stable');
|
||||
|
||||
$installer = &new test_PEAR_Downloader($ui, array('alldeps' => true), $config);
|
||||
$packages = array("http://$server/get/pkg1-1.1.tgz");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = beta:\n";
|
||||
$installer->configSet('preferred_state', 'beta');
|
||||
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = alpha:\n";
|
||||
$installer->configSet('preferred_state', 'alpha');
|
||||
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
echo "\n================Test --onlyreqdeps\nTest preferred_state = stable\n";
|
||||
$config->set('preferred_state', 'stable');
|
||||
|
||||
$installer = &new test_PEAR_Downloader($ui, array('onlyreqdeps' => true), $config);
|
||||
$packages = array("http://$server/get/pkg1-1.1.tgz");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = beta:\n";
|
||||
$installer->configSet('preferred_state', 'beta');
|
||||
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = alpha:\n";
|
||||
$installer->configSet('preferred_state', 'alpha');
|
||||
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages);
|
||||
$installpackages = $installer->getDownloadedPackages();
|
||||
var_dump($a, $installer->getErrorMsgs());
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Test simple direct url download:
|
||||
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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Test simple package name download:
|
||||
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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Test package name with version download:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
File exists? yes
|
||||
File is the same? yes
|
||||
Test package name with state stable download:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
File exists? yes
|
||||
File is the same? yes
|
||||
Test package name with state beta download:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
File exists? yes
|
||||
File is the same? yes
|
||||
================
|
||||
Test preferred_state = beta
|
||||
Test simple package name download:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
File exists? yes
|
||||
File is the same? yes
|
||||
|
||||
================Test --alldeps
|
||||
Test preferred_state = stable
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Test preferred_state = beta:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
Test preferred_state = alpha:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.4
|
||||
pkg4AndAHalf-1.3
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
|
||||
================Test --onlyreqdeps
|
||||
Test preferred_state = stable
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Test preferred_state = beta:
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
Test preferred_state = alpha:
|
||||
skipping Package 'pear::pkg3' optional dependency 'pear::pkg4AndAHalf'
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.4
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
@@ -1,609 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test: PEAR_Installer::download() (deprecated)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
if (!defined('PATH_SEPARATOR')) {
|
||||
define('PATH_SEPARATOR', (DIRECTORY_SEPARATOR == '/') ? ':' : ';');
|
||||
}
|
||||
ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . ini_get('include_path'));
|
||||
$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');
|
||||
}
|
||||
if (!is_dir($temp_path . DIRECTORY_SEPARATOR . 'cache')) {
|
||||
mkdir($temp_path . DIRECTORY_SEPARATOR . 'cache');
|
||||
}
|
||||
// make the fake configuration - we'll use one of these and it should work
|
||||
$config = serialize(array('master_server' => $server,
|
||||
'preferred_state' => 'stable',
|
||||
'cache_dir' => $temp_path . DIRECTORY_SEPARATOR . 'cache',
|
||||
'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";
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'download_test_classes.php.inc';
|
||||
//echo 1;
|
||||
// no UI is needed for these tests
|
||||
$ui = false;
|
||||
$installer = new test_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();
|
||||
// initialize fake pear channel
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('pear');
|
||||
$chan->setSummary('PEAR');
|
||||
$chan->setServer($server);
|
||||
$chan->setDefaultPEARProtocols();
|
||||
$reg = new PEAR_Registry($config->get('php_dir'), $chan);
|
||||
$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";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
var_dump($installpackages);
|
||||
|
||||
echo "Test simple package name download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6');
|
||||
$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";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
var_dump($installpackages);
|
||||
|
||||
echo "Test package name with version download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-1.1');
|
||||
$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";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "Test package name with state stable download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-stable');
|
||||
$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";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "Test package name with state beta download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6-beta');
|
||||
$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-2.0b1.tgz'));
|
||||
$dled = implode('', file($installpackages[0]['file']));
|
||||
echo ($good == $dled) ? "yes\n" : "no\n";
|
||||
unlink($installpackages[0]['file']);
|
||||
|
||||
echo "================\nTest preferred_state = beta\n";
|
||||
$config->set('preferred_state', 'beta');
|
||||
|
||||
echo "Test simple package name download:\n";
|
||||
$installpackages = $errors = array();
|
||||
$packages = array('pkg6');
|
||||
$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-2.0b1.tgz'));
|
||||
$dled = implode('', file($installpackages[0]['file']));
|
||||
echo ($good == $dled) ? "yes\n" : "no\n";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);
|
||||
|
||||
echo "\n================Test --alldeps\nTest preferred_state = stable\n";
|
||||
$config->set('preferred_state', 'stable');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("http://$server/get/pkg1-1.1.tgz");
|
||||
$a = $installer->download($packages, array('alldeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('alldeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = beta:\n";
|
||||
$config->set('preferred_state', 'beta');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('alldeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = alpha:\n";
|
||||
$config->set('preferred_state', 'alpha');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('alldeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
echo "\n================Test --onlyreqdeps\nTest preferred_state = stable\n";
|
||||
$config->set('preferred_state', 'stable');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("http://$server/get/pkg1-1.1.tgz");
|
||||
$a = $installer->download($packages, array('onlyreqdeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('onlyreqdeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = beta:\n";
|
||||
$config->set('preferred_state', 'beta');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('onlyreqdeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
echo "Test preferred_state = alpha:\n";
|
||||
$config->set('preferred_state', 'alpha');
|
||||
|
||||
$config = &PEAR_Config::singleton();
|
||||
$packages = array("pkg1");
|
||||
$a = $installer->download($packages, array('onlyreqdeps' => true), &$config, &$installpackages, &$errors);
|
||||
var_dump($a, $errors);
|
||||
echo "Packages downloaded and version:\n";
|
||||
foreach ($installpackages as $package) {
|
||||
echo $package['pkg'] . '-' . $package['info']['version'] . "\n";
|
||||
}
|
||||
|
||||
|
||||
chdir($curdir);
|
||||
cleanall($temp_path);
|
||||
|
||||
/*
|
||||
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";
|
||||
unlink($installpackages[0]['file']);
|
||||
unset($installpackages[0]['file']);*/
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Test simple package name 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Test package name with version 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
|
||||
Test package name with state stable 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
|
||||
Test package name with state beta 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
|
||||
================
|
||||
Test preferred_state = beta
|
||||
Test simple package name 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
|
||||
|
||||
================Test --alldeps
|
||||
Test preferred_state = stable
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Test preferred_state = beta:
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
Test preferred_state = alpha:
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.4
|
||||
pkg4AndAHalf-1.3
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
|
||||
================Test --onlyreqdeps
|
||||
Test preferred_state = stable
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-1.1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-1.1
|
||||
Test preferred_state = beta:
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.1
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
Test preferred_state = alpha:
|
||||
skipping Package 'pear::pkg3' optional dependency 'pear::pkg4AndAHalf'
|
||||
Warning: PEAR Warning: PEAR_Installer::download() is deprecated in favor of PEAR_Downloader class
|
||||
NULL
|
||||
array(0) {
|
||||
}
|
||||
Packages downloaded and version:
|
||||
pkg1-2.0b1
|
||||
pkg2-1.1
|
||||
pkg3-1.4
|
||||
pkg4-1.1
|
||||
pkg5-1.1
|
||||
pkg6-2.0b1
|
||||
@@ -1,156 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Error: basic test
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php // -*- PHP -*-
|
||||
|
||||
// Test for: PEAR.php
|
||||
// Parts tested: - PEAR_Error class
|
||||
// - PEAR::isError static method
|
||||
|
||||
include_once "PEAR.php";
|
||||
|
||||
function test_error_handler($errno, $errmsg, $file, $line, $vars) {
|
||||
$errortype = array (
|
||||
1 => "Error",
|
||||
2 => "Warning",
|
||||
4 => "Parsing Error",
|
||||
8 => "Notice",
|
||||
16 => "Core Error",
|
||||
32 => "Core Warning",
|
||||
64 => "Compile Error",
|
||||
128 => "Compile Warning",
|
||||
256 => "User Error",
|
||||
512 => "User Warning",
|
||||
1024=> "User Notice"
|
||||
);
|
||||
if (preg_match('/^The call_user_method.. function is deprecated/',
|
||||
$errmsg)) {
|
||||
return;
|
||||
}
|
||||
$prefix = $errortype[$errno];
|
||||
$file = basename($file);
|
||||
print "\n$prefix: $errmsg in $file on line XXX\n";
|
||||
}
|
||||
|
||||
error_reporting(E_ALL);
|
||||
set_error_handler("test_error_handler");
|
||||
|
||||
class Foo_Error extends PEAR_Error
|
||||
{
|
||||
function Foo_Error($message = "unknown error", $code = null,
|
||||
$mode = null, $options = null, $userinfo = null)
|
||||
{
|
||||
$this->PEAR_Error($message, $code, $mode, $options, $userinfo);
|
||||
$this->error_message_prefix = 'Foo_Error prefix';
|
||||
}
|
||||
}
|
||||
|
||||
class Test1 extends PEAR {
|
||||
function Test1() {
|
||||
$this->PEAR("Foo_Error");
|
||||
}
|
||||
function runtest() {
|
||||
return $this->raiseError("test error");
|
||||
}
|
||||
}
|
||||
|
||||
function errorhandler(&$obj) {
|
||||
print "errorhandler function called, obj=".$obj->toString()."\n";
|
||||
}
|
||||
|
||||
class errorclass {
|
||||
function errorhandler(&$obj) {
|
||||
print "errorhandler method called, obj=".$obj->toString()."\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "specify error class: ";
|
||||
$obj = new Test1;
|
||||
$err = $obj->runtest();
|
||||
print $err->toString() . "\n";
|
||||
|
||||
$eo = new errorclass;
|
||||
|
||||
print "default PEAR_Error: ";
|
||||
$err = new PEAR_Error;
|
||||
print $err->toString() . "\n";
|
||||
print "Testing it: ";
|
||||
var_dump(PEAR::isError($err));
|
||||
print "This is not an error: ";
|
||||
$str = "not an error";
|
||||
var_dump(PEAR::isError($str));
|
||||
|
||||
print "Now trying a bunch of variations...\n";
|
||||
|
||||
print "different message: ";
|
||||
$err = new PEAR_Error("test error");
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "different message,code: ";
|
||||
$err = new PEAR_Error("test error", -42);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=print: ";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_PRINT);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=callback(function): ";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_CALLBACK, "errorhandler");
|
||||
|
||||
print "mode=callback(method): ";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_CALLBACK,
|
||||
array(&$eo, "errorhandler"));
|
||||
|
||||
print "mode=print&trigger: ";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_PRINT|PEAR_ERROR_TRIGGER);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=trigger:";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_TRIGGER);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=trigger,level=notice:";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_TRIGGER, E_USER_NOTICE);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=trigger,level=warning:";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_TRIGGER, E_USER_WARNING);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
print "mode=trigger,level=error:";
|
||||
$err = new PEAR_Error("test error", -42, PEAR_ERROR_TRIGGER, E_USER_ERROR);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
specify error class: [foo_error: message="test error" code=0 mode=return level=notice prefix="Foo_Error prefix" info=""]
|
||||
default PEAR_Error: [pear_error: message="unknown error" code=0 mode=return level=notice prefix="" info=""]
|
||||
Testing it: bool(true)
|
||||
This is not an error: bool(false)
|
||||
Now trying a bunch of variations...
|
||||
different message: [pear_error: message="test error" code=0 mode=return level=notice prefix="" info=""]
|
||||
different message,code: [pear_error: message="test error" code=-42 mode=return level=notice prefix="" info=""]
|
||||
mode=print: test error[pear_error: message="test error" code=-42 mode=print level=notice prefix="" info=""]
|
||||
mode=callback(function): errorhandler function called, obj=[pear_error: message="test error" code=-42 mode=callback callback=errorhandler prefix="" info=""]
|
||||
mode=callback(method): errorhandler method called, obj=[pear_error: message="test error" code=-42 mode=callback callback=errorclass::errorhandler prefix="" info=""]
|
||||
mode=print&trigger: test error
|
||||
User Notice: test error in PEAR.php on line XXX
|
||||
[pear_error: message="test error" code=-42 mode=print|trigger level=notice prefix="" info=""]
|
||||
mode=trigger:
|
||||
User Notice: test error in PEAR.php on line XXX
|
||||
[pear_error: message="test error" code=-42 mode=trigger level=notice prefix="" info=""]
|
||||
mode=trigger,level=notice:
|
||||
User Notice: test error in PEAR.php on line XXX
|
||||
[pear_error: message="test error" code=-42 mode=trigger level=notice prefix="" info=""]
|
||||
mode=trigger,level=warning:
|
||||
User Warning: test error in PEAR.php on line XXX
|
||||
[pear_error: message="test error" code=-42 mode=trigger level=warning prefix="" info=""]
|
||||
mode=trigger,level=error:
|
||||
User Error: test error in PEAR.php on line XXX
|
||||
[pear_error: message="test error" code=-42 mode=trigger level=error prefix="" info=""]
|
||||
@@ -1,27 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Error: die mode
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php // -*- C++ -*-
|
||||
|
||||
// Test for: PEAR.php
|
||||
// Parts tested: - PEAR_Error class
|
||||
// - PEAR::isError static method
|
||||
// testing PEAR_Error
|
||||
|
||||
include_once "PEAR.php";
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
print "mode=die: ";
|
||||
$err = new PEAR_Error("test error!!\n", -42, PEAR_ERROR_DIE);
|
||||
print $err->toString() . "\n";
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
mode=die: test error!!
|
||||
@@ -1,58 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Error: default error handling
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php // -*- PHP -*-
|
||||
|
||||
// Test for: PEAR.php
|
||||
// Parts tested: - PEAR_Error class
|
||||
// - PEAR::setErrorHandling
|
||||
// - PEAR::raiseError method
|
||||
|
||||
include_once "PEAR.php";
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function errorhandler($eobj)
|
||||
{
|
||||
if (PEAR::isError($eobj)) {
|
||||
print "errorhandler called with an error object.\n";
|
||||
print "error message: ".$eobj->getMessage()."\n";
|
||||
} else {
|
||||
print "errorhandler called, but without an error object.\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Test 1
|
||||
PEAR::setErrorHandling(PEAR_ERROR_PRINT, "OOPS: %s\n");
|
||||
$tmp = new PEAR;
|
||||
$tmp->raiseError("error happens");
|
||||
|
||||
// Return PEAR to its original state
|
||||
$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN;
|
||||
$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE;
|
||||
$GLOBALS['_PEAR_default_error_callback'] = '';
|
||||
|
||||
// Test 2
|
||||
$obj = new PEAR;
|
||||
$obj->setErrorHandling(PEAR_ERROR_PRINT);
|
||||
$obj->raiseError("error 1\n");
|
||||
$obj->setErrorHandling(null);
|
||||
$obj->raiseError("error 2\n");
|
||||
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "errorhandler");
|
||||
$obj->raiseError("error 3");
|
||||
$obj->setErrorHandling(PEAR_ERROR_PRINT);
|
||||
$obj->raiseError("error 4\n");
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
OOPS: error happens
|
||||
error 1
|
||||
errorhandler called with an error object.
|
||||
error message: error 3
|
||||
error 4
|
||||
@@ -1,108 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Error: expected errors
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php // -*- PHP -*-
|
||||
|
||||
// Test for: PEAR.php
|
||||
// Parts tested: - PEAR_Error class
|
||||
// - PEAR::expectError
|
||||
// - PEAR::popExpect
|
||||
|
||||
include_once "PEAR.php";
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function errorhandler($eobj)
|
||||
{
|
||||
if (PEAR::isError($eobj)) {
|
||||
print "error: ".$eobj->getMessage()."\n";
|
||||
} else {
|
||||
print "errorhandler called without error object\n";
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new PEAR;
|
||||
$obj->setErrorHandling(PEAR_ERROR_CALLBACK, "errorhandler");
|
||||
|
||||
print "subtest 1\n";
|
||||
$obj->expectError(1);
|
||||
$obj->raiseError("1", 1);
|
||||
$obj->popExpect();
|
||||
$obj->raiseError("2", 2);
|
||||
|
||||
print "subtest 2\n";
|
||||
$obj->expectError(3);
|
||||
$obj->expectError(2);
|
||||
$obj->raiseError("3", 3);
|
||||
|
||||
print "subtest 3\n";
|
||||
$obj->popExpect();
|
||||
$obj->raiseError("3", 3);
|
||||
$obj->popExpect();
|
||||
|
||||
print "subtest 4\n";
|
||||
$obj->expectError(array(1,2,3,4,5));
|
||||
$obj->raiseError("0", 0);
|
||||
$obj->raiseError("1", 1);
|
||||
$obj->raiseError("2", 2);
|
||||
$obj->raiseError("3", 3);
|
||||
$obj->raiseError("4", 4);
|
||||
$obj->raiseError("5", 5);
|
||||
$obj->raiseError("6", 6);
|
||||
$obj->raiseError("error");
|
||||
$obj->popExpect();
|
||||
|
||||
print "subtest 5\n";
|
||||
$obj->expectError("*");
|
||||
$obj->raiseError("42", 42);
|
||||
$obj->raiseError("75", 75);
|
||||
$obj->raiseError("13", 13);
|
||||
$obj->popExpect();
|
||||
|
||||
print "subtest 6\n";
|
||||
$obj->expectError();
|
||||
$obj->raiseError("123", 123);
|
||||
$obj->raiseError("456", 456);
|
||||
$obj->raiseError("789", 789);
|
||||
$obj->popExpect();
|
||||
|
||||
print "subtest 7\n";
|
||||
$obj->expectError("syntax error");
|
||||
$obj->raiseError("type mismatch");
|
||||
$obj->raiseError("syntax error");
|
||||
$obj->popExpect();
|
||||
|
||||
print "subtest 8\n";
|
||||
$obj->expectError(array(1, 2, 3));
|
||||
$obj->expectError(array(3, 4, 5));
|
||||
$obj->raiseError(4);
|
||||
$obj->delExpect(2);
|
||||
$obj->raiseError(3);
|
||||
$obj->delExpect(1, 3, 4, 5);
|
||||
$err = $obj->delExpect(2);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
subtest 1
|
||||
error: 2
|
||||
subtest 2
|
||||
error: 3
|
||||
subtest 3
|
||||
subtest 4
|
||||
error: 0
|
||||
error: 6
|
||||
error: error
|
||||
subtest 5
|
||||
subtest 6
|
||||
subtest 7
|
||||
error: type mismatch
|
||||
subtest 8
|
||||
error: 4
|
||||
error: 3
|
||||
error: The expected error you submitted does not exist
|
||||
@@ -1,213 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test extractDownloadFileName, checkDeps
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once "PEAR/Installer.php";
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
|
||||
$temp_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testinstallertemp';
|
||||
if (!is_dir($temp_path)) {
|
||||
mkdir($temp_path);
|
||||
}
|
||||
touch($temp_path . DIRECTORY_SEPARATOR . 'user.conf');
|
||||
// no UI is needed for these tests
|
||||
$ui = false;
|
||||
$config = new PEAR_Config($temp_path . DIRECTORY_SEPARATOR . 'user.conf');
|
||||
$config->set('php_dir', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'testinstallertemp');
|
||||
$reg = &new PEAR_Registry($config->get('php_dir'));
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('oddball');
|
||||
$chan->setServer('example.com');
|
||||
$chan->setSummary('oddball');
|
||||
$chan->setPackageNameRegex('[a-z][a-z0-9]*(?:\.[a-z0-9]+)*');
|
||||
$reg->addChannel($chan);
|
||||
$installer = new PEAR_Installer($ui);
|
||||
$installer->config = &$config;
|
||||
echo "test extractDownloadFileName:\n";
|
||||
echo 'existing file: ';
|
||||
echo ($temp_path . DIRECTORY_SEPARATOR . 'user.conf' ==
|
||||
$installer->extractDownloadFileName($temp_path . DIRECTORY_SEPARATOR . 'user.conf',
|
||||
$ui)) ? "yes\n" : "no\n";
|
||||
var_dump($ui);
|
||||
echo 'invalid match: ';
|
||||
echo $installer->extractDownloadFileName('27',
|
||||
$ui);
|
||||
echo "\n";
|
||||
var_dump($ui);
|
||||
echo 'valid match, no version: ';
|
||||
echo $installer->extractDownloadFileName('Testpackage', $ui);
|
||||
echo "\n";
|
||||
var_dump($ui);
|
||||
echo 'invalid match, has invalid version: ';
|
||||
echo $installer->extractDownloadFileName('Testpackage-##', $ui);
|
||||
echo "\n";
|
||||
var_dump($ui);
|
||||
echo 'valid match, has version: ';
|
||||
echo $installer->extractDownloadFileName('Testpackage-1.2', $ui);
|
||||
echo "\n";
|
||||
var_dump($ui);
|
||||
echo "valid match, has unknown channel:\n";
|
||||
var_dump($installer->extractDownloadFileName('Unknown::Testpackage', $ui));
|
||||
var_dump($ui);
|
||||
echo "invalid match, has known channel, invalid package name:\n";
|
||||
var_dump($installer->extractDownloadFileName('Oddball::Testpackage', $ui));
|
||||
var_dump($ui);
|
||||
echo "valid match, has known channel, valid package name:\n";
|
||||
var_dump($installer->extractDownloadFileName('Oddball::testpackage.third3', $ui));
|
||||
var_dump($ui);
|
||||
echo "valid match, has known channel, valid package name, version:\n";
|
||||
var_dump($installer->extractDownloadFileName('Oddball::testpackage.third3-54.7354', $ui));
|
||||
var_dump($ui);
|
||||
|
||||
echo "\ntest checkDeps 1:\n";
|
||||
$fakerel = array('release_deps' =>
|
||||
array(
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'has',
|
||||
'name' => 'foo',
|
||||
'optional' => 'yes'
|
||||
),
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'ge',
|
||||
'version' => '1.6',
|
||||
'name' => 'bar',
|
||||
),
|
||||
));
|
||||
$res = '';
|
||||
var_dump($installer->checkDeps($fakerel, $res));
|
||||
var_dump($res);
|
||||
|
||||
echo "\ntest checkDeps 1.1:\n";
|
||||
$fakerel = array('release_deps' =>
|
||||
array(
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'has',
|
||||
'name' => 'foo',
|
||||
'optional' => 'yes',
|
||||
'channel' => 'grob',
|
||||
),
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'ge',
|
||||
'version' => '1.6',
|
||||
'name' => 'bar',
|
||||
'channel' => 'prego',
|
||||
),
|
||||
));
|
||||
$res = '';
|
||||
var_dump($installer->checkDeps($fakerel, $res));
|
||||
var_dump($res);
|
||||
$fakerel = array('release_deps' =>
|
||||
array(
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'has',
|
||||
'name' => 'foo',
|
||||
'optional' => 'yes'
|
||||
),
|
||||
));
|
||||
echo "\ntest checkDeps 2:\n";
|
||||
$res = '';
|
||||
var_dump($installer->checkDeps($fakerel, $res));
|
||||
var_dump($res);
|
||||
$fakerel = array('release_deps' =>
|
||||
array(
|
||||
array(
|
||||
'type' => 'pkg',
|
||||
'rel '=> 'has',
|
||||
'name' => 'foo',
|
||||
'optional' => 'yes',
|
||||
'channel' => 'purple',
|
||||
),
|
||||
));
|
||||
echo "\ntest checkDeps 2.1:\n";
|
||||
$res = '';
|
||||
var_dump($installer->checkDeps($fakerel, $res));
|
||||
var_dump($res);
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
test extractDownloadFileName:
|
||||
existing file: yes
|
||||
bool(false)
|
||||
invalid match: 27
|
||||
NULL
|
||||
valid match, no version: Testpackage
|
||||
NULL
|
||||
invalid match, has invalid version: Testpackage-##
|
||||
NULL
|
||||
valid match, has version: Testpackage
|
||||
string(3) "1.2"
|
||||
valid match, has unknown channel:
|
||||
array(2) {
|
||||
["channel"]=>
|
||||
string(7) "Unknown"
|
||||
["package"]=>
|
||||
string(11) "Testpackage"
|
||||
}
|
||||
NULL
|
||||
invalid match, has known channel, invalid package name:
|
||||
string(20) "Oddball::Testpackage"
|
||||
NULL
|
||||
valid match, has known channel, valid package name:
|
||||
array(2) {
|
||||
["channel"]=>
|
||||
string(7) "Oddball"
|
||||
["package"]=>
|
||||
string(18) "testpackage.third3"
|
||||
}
|
||||
NULL
|
||||
valid match, has known channel, valid package name, version:
|
||||
array(2) {
|
||||
["channel"]=>
|
||||
string(7) "Oddball"
|
||||
["package"]=>
|
||||
string(18) "testpackage.third3"
|
||||
}
|
||||
string(7) "54.7354"
|
||||
|
||||
test checkDeps 1:
|
||||
bool(true)
|
||||
string(29) "
|
||||
requires package `pear::bar'"
|
||||
|
||||
test checkDeps 1.1:
|
||||
bool(true)
|
||||
string(30) "
|
||||
requires package `prego::bar'"
|
||||
|
||||
test checkDeps 2:
|
||||
bool(false)
|
||||
string(83) "Optional dependencies:
|
||||
package `pear::foo' is recommended to utilize some features."
|
||||
|
||||
test checkDeps 2.1:
|
||||
bool(false)
|
||||
string(85) "Optional dependencies:
|
||||
package `purple::foo' is recommended to utilize some features."
|
||||
@@ -1,398 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test _installFile()
|
||||
--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);
|
||||
$curdir = getcwd();
|
||||
chdir(dirname(__FILE__));
|
||||
|
||||
echo "test _installFile():\n";
|
||||
$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php', 'w');
|
||||
fwrite($fp, 'a');
|
||||
fclose($fp);
|
||||
// pretend we just parsed a package.xml
|
||||
$installer->pkginfo = array('package' => 'Foo');
|
||||
|
||||
echo "install as role=\"php\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file ext/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"ext\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'ext'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file php/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'ext' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"data\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'data'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file data/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"doc\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'doc'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file doc/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'doc' . DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"test\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'test'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"script\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file bin/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "install as invalid role=\"klingon\":\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'klingon'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . $err->getMessage() . "\n\n";
|
||||
}
|
||||
echo 'file bin/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install non-existent file:\n";
|
||||
$err = $installer->_installFile('....php', array('role' => 'php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . $err->getMessage() . "\n";
|
||||
}
|
||||
echo 'file bin/.tmp....php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmp....php') ? "yes\n" : "no\n");
|
||||
|
||||
$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php', 'w');
|
||||
fwrite($fp, '@TEST@ stuff');
|
||||
fclose($fp);
|
||||
|
||||
echo "\ntest valid md5sum:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('@TEST@ stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file bin/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "test invalid md5sum:\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('oops stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . ($err->getMessage() == 'bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php' ? 'match' : 'no match') . "\n";
|
||||
}
|
||||
echo 'file bin/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "test invalid md5sum with --force:\n";
|
||||
ob_start();
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('oops stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array('force' => true));
|
||||
$warning = ob_get_contents();
|
||||
ob_end_clean();
|
||||
echo 'warning : ';
|
||||
echo ($warning == 'warning : bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . "installer2.phpt.testfile.php\n" ? "match\n" : "no match\n");
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . ($err->getMessage() == 'bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php' ? 'match' : 'no match') . "\n";
|
||||
}
|
||||
echo 'file bin/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
define('PEARINSTALLERTEST2_FAKE_FOO_CONST', 'good');
|
||||
echo "\ntest replacements:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'php-const', 'from' => '@TEST@', 'to' => 'PEARINSTALLERTEST2_FAKE_FOO_CONST'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test php-const replacement: equals 'good stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid php-const replacement:\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'php-const', 'from' => '@TEST@', 'to' => '%PEARINSTALLERTEST2_FAKE_FOO_CONST'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'pear-config', 'from' => '@TEST@', 'to' => 'master_server'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test pear-config replacement: equals 'pear.php.net stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid pear-config replacement\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'pear-config', 'from' => '@TEST@', 'to' => 'blahblahblah'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'package-info', 'from' => '@TEST@', 'to' => 'package'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test package-info replacement: equals 'Foo stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid package-info replacement:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'package-info', 'from' => '@TEST@', 'to' => 'gronk'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "\ntest install-as:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'install-as' => 'foobar.php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test install as 'foobar.php'. file exists? ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'.tmpfoobar.php'))
|
||||
{
|
||||
echo "yes\n";
|
||||
} else {
|
||||
echo "no\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "\ntest baseinstalldir:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'baseinstalldir' => 'Foo/Mine'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test baseinstalldir = 'Foo/Mine'. file exists? ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . 'Mine' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
echo "yes\n";
|
||||
} else {
|
||||
echo "no\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
//cleanup
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
test _installFile():
|
||||
install as role="php":
|
||||
int(1)
|
||||
file ext/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="ext":
|
||||
int(1)
|
||||
file php/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="data":
|
||||
int(1)
|
||||
file data/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="doc":
|
||||
int(1)
|
||||
file doc/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="test":
|
||||
int(1)
|
||||
file test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="script":
|
||||
int(1)
|
||||
file bin/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as invalid role="klingon":
|
||||
returned PEAR_Error: yes
|
||||
message: Invalid role `klingon' for file installer2.phpt.testfile.php
|
||||
|
||||
file bin/.tmpinstaller2.phpt.testfile.php exists? => no
|
||||
install non-existent file:
|
||||
returned PEAR_Error: yes
|
||||
message: file does not exist
|
||||
file bin/.tmp....php exists? => no
|
||||
|
||||
test valid md5sum:
|
||||
int(1)
|
||||
file bin/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
test invalid md5sum:
|
||||
returned PEAR_Error: yes
|
||||
message: match
|
||||
file bin/.tmpinstaller2.phpt.testfile.php exists? => no
|
||||
test invalid md5sum with --force:
|
||||
warning : match
|
||||
returned PEAR_Error: no
|
||||
file bin/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
|
||||
test replacements:
|
||||
int(1)
|
||||
==>test php-const replacement: equals 'good stuff'? => good stuff
|
||||
==>test invalid php-const replacement:
|
||||
invalid php-const replacement: %PEARINSTALLERTEST2_FAKE_FOO_CONST
|
||||
@TEST@ stuff
|
||||
int(1)
|
||||
==>test pear-config replacement: equals 'pear.php.net stuff'? => pear.php.net stuff
|
||||
==>test invalid pear-config replacement
|
||||
invalid pear-config replacement: blahblahblah
|
||||
int(1)
|
||||
@TEST@ stuff
|
||||
int(1)
|
||||
==>test package-info replacement: equals 'Foo stuff'? => Foo stuff
|
||||
==>test invalid package-info replacement:
|
||||
invalid package-info replacement: gronk
|
||||
int(1)
|
||||
@TEST@ stuff
|
||||
|
||||
test install-as:
|
||||
int(1)
|
||||
==>test install as 'foobar.php'. file exists? yes
|
||||
|
||||
test baseinstalldir:
|
||||
int(1)
|
||||
==>test baseinstalldir = 'Foo/Mine'. file exists? yes
|
||||
|
||||
@@ -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
|
||||
@@ -1,266 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test #4: PEAR_Installer::install()
|
||||
--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);
|
||||
$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 "Test conflicting files:\n";
|
||||
$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'conflictpackage.xml');
|
||||
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--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
|
||||
Test conflicting files:
|
||||
Caught error: pear::pkg6conflict: conflicting files found:
|
||||
groob\goompness\oggbrzitzkee.php (pkg6)
|
||||
groob\goompness\Mopreeb.php (pkg6)
|
||||
|
||||
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 "<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/" : 37649 calculated, 0 expected
|
||||
Caught expected error
|
||||
array(0) {
|
||||
}
|
||||
zoorb.php exists? no
|
||||
goompness/Mopreeb.php exists? no
|
||||
goompness/oggbrzitzkee.php exists? no
|
||||
Test missing package.xml in .tgz install:
|
||||
warning : you are using an archive with an old format
|
||||
Caught error: no package.xml file after extracting the archive
|
||||
array(0) {
|
||||
}
|
||||
zoorb.php exists? no
|
||||
goompness/Mopreeb.php exists? no
|
||||
goompness/oggbrzitzkee.php exists? no
|
||||
@@ -1,224 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test #5: test directory tracking/deletion of installation
|
||||
--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);
|
||||
$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";
|
||||
}
|
||||
|
||||
$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package.xml');
|
||||
$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package2.xml');
|
||||
$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php');
|
||||
var_dump($reg->listPackages());
|
||||
$info = $reg->packageInfo('pkg1');
|
||||
echo "pkg1 dir tree contains test/? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test'])) ? "yes\n" : "no\n";
|
||||
echo "pkg1 dir tree contains test/multiplepackages? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'multiplepackages'])) ? "yes\n" : "no\n";
|
||||
echo "pkg1 dir tree contains test/pkg1? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'pkg1'])) ? "yes\n" : "no\n";
|
||||
|
||||
$info = $reg->packageInfo('pkg2');
|
||||
echo "pkg2 dir tree contains test/? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test'])) ? "yes\n" : "no\n";
|
||||
echo "pkg2 dir tree contains test/multiplepackages? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'multiplepackages'])) ? "yes\n" : "no\n";
|
||||
echo "pkg2 dir tree contains test/nestedroot? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'])) ? "yes\n" : "no\n";
|
||||
echo "pkg2 dir tree contains test/nestedroot/emptydir? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir'])) ? "yes\n" : "no\n";
|
||||
echo "pkg2 dir tree contains test/nestedroot/emptydir/nesteddir? ";
|
||||
echo (isset($info['filelist']['dirtree'][$temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir' . DIRECTORY_SEPARATOR . 'nesteddir'])) ? "yes\n" : "no\n";
|
||||
|
||||
echo "After uninstall of pkg1:\n";
|
||||
$installer->uninstall('pkg1');
|
||||
echo "test/ exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test')) ? "yes\n" : "no\n";
|
||||
echo "test/multiplepackages exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'multiplepackages')) ? "yes\n" : "no\n";
|
||||
echo "test/pkg1 exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'pkg1')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot/emptydir exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot/emptydir/nesteddir exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir'. DIRECTORY_SEPARATOR . 'nesteddir')) ? "yes\n" : "no\n";
|
||||
var_dump($reg->listPackages());
|
||||
|
||||
echo "After uninstall of pkg2:\n";
|
||||
$installer->uninstall('pkg2');
|
||||
echo "test/ exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test')) ? "yes\n" : "no\n";
|
||||
echo "test/multiplepackages exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'multiplepackages')) ? "yes\n" : "no\n";
|
||||
echo "test/pkg1 exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'pkg1')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot/emptydir exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir')) ? "yes\n" : "no\n";
|
||||
echo "test/nestedroot/emptydir/nesteddir exists? ";
|
||||
echo (is_dir($temp_path . DIRECTORY_SEPARATOR . 'php'
|
||||
. DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'nestedroot'
|
||||
. DIRECTORY_SEPARATOR . 'emptydir'. DIRECTORY_SEPARATOR . 'nesteddir')) ? "yes\n" : "no\n";
|
||||
var_dump($reg->listPackages());
|
||||
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(4) "pkg1"
|
||||
[1]=>
|
||||
string(4) "pkg2"
|
||||
}
|
||||
pkg1 dir tree contains test/? yes
|
||||
pkg1 dir tree contains test/multiplepackages? yes
|
||||
pkg1 dir tree contains test/pkg1? yes
|
||||
pkg2 dir tree contains test/? yes
|
||||
pkg2 dir tree contains test/multiplepackages? yes
|
||||
pkg2 dir tree contains test/nestedroot? yes
|
||||
pkg2 dir tree contains test/nestedroot/emptydir? yes
|
||||
pkg2 dir tree contains test/nestedroot/emptydir/nesteddir? yes
|
||||
After uninstall of pkg1:
|
||||
test/ exists? yes
|
||||
test/multiplepackages exists? yes
|
||||
test/pkg1 exists? no
|
||||
test/nestedroot exists? yes
|
||||
test/nestedroot/emptydir exists? yes
|
||||
test/nestedroot/emptydir/nesteddir exists? yes
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(4) "pkg2"
|
||||
}
|
||||
After uninstall of pkg2:
|
||||
test/ exists? no
|
||||
test/multiplepackages exists? no
|
||||
test/pkg1 exists? no
|
||||
test/nestedroot exists? no
|
||||
test/nestedroot/emptydir exists? no
|
||||
test/nestedroot/emptydir/nesteddir exists? no
|
||||
array(0) {
|
||||
}
|
||||
@@ -1,447 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test _installFile() with channels
|
||||
--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',
|
||||
'default_channel' => 'pear',
|
||||
'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 . 'tests',
|
||||
'bin_dir' => $temp_path . DIRECTORY_SEPARATOR . 'bin',
|
||||
'__channels' =>
|
||||
array(
|
||||
'test' => array(
|
||||
'php_dir' => $temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'test',
|
||||
'ext_dir' => $temp_path . DIRECTORY_SEPARATOR . 'ext' . DIRECTORY_SEPARATOR . 'test',
|
||||
'data_dir' => $temp_path . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'test',
|
||||
'doc_dir' => $temp_path . DIRECTORY_SEPARATOR . 'doc' . DIRECTORY_SEPARATOR . 'test',
|
||||
'test_dir' => $temp_path . DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'tests',
|
||||
'bin_dir' => $temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test',
|
||||
),
|
||||
)));
|
||||
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/Config.php';
|
||||
$config = &PEAR_Config::singleton($temp_path . DIRECTORY_SEPARATOR . 'pear.ini');
|
||||
require_once 'PEAR/Registry.php';
|
||||
$reg = &new PEAR_Registry($config->get('php_dir', null, 'pear'));
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('test');
|
||||
$chan->setServer('test');
|
||||
$chan->setSummary('test');
|
||||
$reg->addChannel($chan);
|
||||
require_once "PEAR/Installer.php";
|
||||
|
||||
// no UI is needed for these tests
|
||||
$ui = false;
|
||||
$installer = new PEAR_Installer($ui);
|
||||
$curdir = getcwd();
|
||||
chdir(dirname(__FILE__));
|
||||
|
||||
echo "test _installFile():\n";
|
||||
$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php', 'w');
|
||||
fwrite($fp, 'a');
|
||||
fclose($fp);
|
||||
// pretend we just parsed a package.xml
|
||||
$installer->pkginfo = array('package' => 'Foo', 'channel' => 'test');
|
||||
|
||||
echo "install as role=\"php\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file php/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'test' .
|
||||
DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"ext\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'ext'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file ext/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'ext' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"data\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'data'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file data/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"doc\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'doc'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file doc/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'doc' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"test\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'test'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file test/tests/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'test' . DIRECTORY_SEPARATOR . 'tests'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install as role=\"script\":\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file bin/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "install as invalid role=\"klingon\":\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'klingon'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . $err->getMessage() . "\n\n";
|
||||
}
|
||||
echo 'file bin/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "install non-existent file:\n";
|
||||
$err = $installer->_installFile('....php', array('role' => 'php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . $err->getMessage() . "\n";
|
||||
}
|
||||
echo 'file php/test/.tmp....php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmp....php') ? "yes\n" : "no\n");
|
||||
|
||||
$fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php', 'w');
|
||||
fwrite($fp, '@TEST@ stuff');
|
||||
fclose($fp);
|
||||
|
||||
echo "\ntest valid md5sum:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('@TEST@ stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo 'file bin/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "test invalid md5sum:\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('oops stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . ($err->getMessage() == 'bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php' ? 'match' : 'no match') . "\n";
|
||||
}
|
||||
echo 'file bin/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
echo "test invalid md5sum with --force:\n";
|
||||
ob_start();
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script', 'md5sum' => md5('oops stuff')),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array('force' => true));
|
||||
$warning = ob_get_contents();
|
||||
ob_end_clean();
|
||||
echo 'warning : ';
|
||||
echo ($warning == 'warning : bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR . "installer2.phpt.testfile.php\n" ? "match\n" : "no match\n");
|
||||
echo 'returned PEAR_Error: ' . (get_class($err) == 'pear_error' ? "yes\n" : "no\n");
|
||||
if (is_object($err)) {
|
||||
echo 'message: ' . ($err->getMessage() == 'bad md5sum for file ' . $temp_path . DIRECTORY_SEPARATOR . 'bin' .
|
||||
DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR . 'installer2.phpt.testfile.php' ? 'match' : 'no match') . "\n";
|
||||
}
|
||||
echo 'file bin/test/.tmpinstaller2.phpt.testfile.php exists? => ';
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php') ? "yes\n" : "no\n");
|
||||
|
||||
define('PEARINSTALLERTEST2_FAKE_FOO_CONST', 'good');
|
||||
echo "\ntest replacements:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'php-const', 'from' => '@TEST@', 'to' => 'PEARINSTALLERTEST2_FAKE_FOO_CONST'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test php-const replacement: equals 'good stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid php-const replacement:\n";
|
||||
$err = $installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'php-const', 'from' => '@TEST@', 'to' => '%PEARINSTALLERTEST2_FAKE_FOO_CONST'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array());
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'pear-config', 'from' => '@TEST@', 'to' => 'master_server'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test pear-config replacement: equals 'test stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid pear-config replacement\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'pear-config', 'from' => '@TEST@', 'to' => 'blahblahblah'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'package-info', 'from' => '@TEST@', 'to' => 'package'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test package-info replacement: equals 'Foo stuff'? => ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "==>test invalid package-info replacement:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'replacements' => array(array('type' => 'package-info', 'from' => '@TEST@', 'to' => 'gronk'))),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
$a = implode(file($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpinstaller2.phpt.testfile.php'), '');
|
||||
echo "$a\n";
|
||||
} else {
|
||||
echo "no! file installation failed\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "\ntest install-as:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'install-as' => 'foobar.php'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test install as 'foobar.php'. file exists? ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'.tmpfoobar.php'))
|
||||
{
|
||||
echo "yes\n";
|
||||
} else {
|
||||
echo "no\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
echo "\ntest baseinstalldir:\n";
|
||||
var_dump($installer->_installFile('installer2.phpt.testfile.php', array('role' => 'script',
|
||||
'baseinstalldir' => 'Foo/Mine'),
|
||||
$temp_path . DIRECTORY_SEPARATOR . 'tmp', array()));
|
||||
echo "==>test baseinstalldir = 'Foo/Mine'. file exists? ";
|
||||
if (file_exists($temp_path . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'test'
|
||||
. DIRECTORY_SEPARATOR .
|
||||
'Foo' . DIRECTORY_SEPARATOR . 'Mine' . DIRECTORY_SEPARATOR . '.tmpinstaller2.phpt.testfile.php'))
|
||||
{
|
||||
echo "yes\n";
|
||||
} else {
|
||||
echo "no\n";
|
||||
}
|
||||
$installer->rollbackFileTransaction();
|
||||
|
||||
//cleanup
|
||||
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 _installFile():
|
||||
install as role="php":
|
||||
int(1)
|
||||
file php/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="ext":
|
||||
int(1)
|
||||
file ext/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="data":
|
||||
int(1)
|
||||
file data/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="doc":
|
||||
int(1)
|
||||
file doc/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="test":
|
||||
int(1)
|
||||
file test/tests/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as role="script":
|
||||
int(1)
|
||||
file bin/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
install as invalid role="klingon":
|
||||
returned PEAR_Error: yes
|
||||
message: Invalid role `klingon' for file installer2.phpt.testfile.php
|
||||
|
||||
file bin/test/.tmpinstaller2.phpt.testfile.php exists? => no
|
||||
install non-existent file:
|
||||
returned PEAR_Error: yes
|
||||
message: file does not exist
|
||||
file php/test/.tmp....php exists? => no
|
||||
|
||||
test valid md5sum:
|
||||
int(1)
|
||||
file bin/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
test invalid md5sum:
|
||||
returned PEAR_Error: yes
|
||||
message: match
|
||||
file bin/test/.tmpinstaller2.phpt.testfile.php exists? => no
|
||||
test invalid md5sum with --force:
|
||||
warning : match
|
||||
returned PEAR_Error: no
|
||||
file bin/test/.tmpinstaller2.phpt.testfile.php exists? => yes
|
||||
|
||||
test replacements:
|
||||
int(1)
|
||||
==>test php-const replacement: equals 'good stuff'? => good stuff
|
||||
==>test invalid php-const replacement:
|
||||
invalid php-const replacement: %PEARINSTALLERTEST2_FAKE_FOO_CONST
|
||||
@TEST@ stuff
|
||||
int(1)
|
||||
==>test pear-config replacement: equals 'test stuff'? => test stuff
|
||||
==>test invalid pear-config replacement
|
||||
invalid pear-config replacement: blahblahblah
|
||||
int(1)
|
||||
@TEST@ stuff
|
||||
int(1)
|
||||
==>test package-info replacement: equals 'Foo stuff'? => Foo stuff
|
||||
==>test invalid package-info replacement:
|
||||
invalid package-info replacement: gronk
|
||||
int(1)
|
||||
@TEST@ stuff
|
||||
|
||||
test install-as:
|
||||
int(1)
|
||||
==>test install as 'foobar.php'. file exists? yes
|
||||
|
||||
test baseinstalldir:
|
||||
int(1)
|
||||
==>test baseinstalldir = 'Foo/Mine'. file exists? yes
|
||||
|
||||
@@ -1,214 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Installer test #4: PEAR_Installer::install() with channels
|
||||
--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');
|
||||
mkdir($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'frob');
|
||||
}
|
||||
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',
|
||||
'default_channel' => 'pear',
|
||||
'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',
|
||||
'__channels' => array(
|
||||
'frob' => array(
|
||||
'php_dir' => $temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'frob',
|
||||
))));
|
||||
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/ChannelFile.php';
|
||||
require_once 'PEAR/Registry.php';
|
||||
$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php');
|
||||
$chan = new PEAR_ChannelFile;
|
||||
$chan->setName('frob');
|
||||
$chan->setSummary('test');
|
||||
$chan->setServer('test');
|
||||
$reg->addChannel($chan);
|
||||
$chan->setName('groob');
|
||||
$reg->addChannel($chan);
|
||||
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 . 'package2.xml');
|
||||
$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php');
|
||||
var_dump($reg->listAllPackages());
|
||||
echo "zoorb.php exists? ";
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'frob'
|
||||
. 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 . 'frob'
|
||||
. 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 . 'frob'
|
||||
. DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness'
|
||||
. DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n";
|
||||
echo "goompness/test.dat exists? ";
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'pkg6'
|
||||
. DIRECTORY_SEPARATOR . 'goompness'
|
||||
. DIRECTORY_SEPARATOR . 'test.dat')) ? "yes\n" : "no\n";
|
||||
|
||||
echo "Test conflicting files:\n";
|
||||
$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'conflictpackage2.xml');
|
||||
|
||||
echo "Test unknown channel:\n";
|
||||
$installer->install(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'test-pkg6' . DIRECTORY_SEPARATOR . 'package2_invalid.xml');
|
||||
|
||||
echo "After uninstall:\n";
|
||||
$installer->uninstall('frob::pkg6');
|
||||
var_dump($reg->listAllPackages());
|
||||
echo "zoorb.php exists? ";
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'php' . DIRECTORY_SEPARATOR . 'frob'
|
||||
. 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 . 'frob'
|
||||
. 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 . 'frob'
|
||||
. DIRECTORY_SEPARATOR . 'groob' . DIRECTORY_SEPARATOR . 'goompness'
|
||||
. DIRECTORY_SEPARATOR . 'oggbrzitzkee.php')) ? "yes\n" : "no\n";
|
||||
echo "goompness/test.dat exists? ";
|
||||
echo (file_exists($temp_path . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'pkg6'
|
||||
. DIRECTORY_SEPARATOR . 'goompness'
|
||||
. DIRECTORY_SEPARATOR . 'test.dat')) ? "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(3) {
|
||||
["frob"]=>
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(4) "pkg6"
|
||||
}
|
||||
["groob"]=>
|
||||
array(0) {
|
||||
}
|
||||
["pear"]=>
|
||||
array(0) {
|
||||
}
|
||||
}
|
||||
zoorb.php exists? yes
|
||||
goompness/Mopreeb.php exists? yes
|
||||
goompness/oggbrzitzkee.php exists? yes
|
||||
goompness/test.dat exists? yes
|
||||
Test conflicting files:
|
||||
Caught error: groob::pkg6conflict: conflicting files found:
|
||||
groob\goompness\oggbrzitzkee.php (frob::pkg6)
|
||||
groob\goompness\Mopreeb.php (frob::pkg6)
|
||||
groob\goompness\test.dat (frob::pkg6)
|
||||
|
||||
Test unknown channel:
|
||||
Error: Unknown channel, "gorp"
|
||||
Caught error: Installation failed: invalid package file, use option force to install anyway
|
||||
After uninstall:
|
||||
array(3) {
|
||||
["frob"]=>
|
||||
array(0) {
|
||||
}
|
||||
["groob"]=>
|
||||
array(0) {
|
||||
}
|
||||
["pear"]=>
|
||||
array(0) {
|
||||
}
|
||||
}
|
||||
zoorb.php exists? no
|
||||
goompness/Mopreeb.php exists? no
|
||||
goompness/oggbrzitzkee.php exists? no
|
||||
goompness/test.dat exists? no
|
||||
@@ -1,396 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Packager test
|
||||
--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/Packager.php";
|
||||
require_once 'PEAR/Registry.php';
|
||||
$reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php');
|
||||
$packager = new PEAR_Packager();
|
||||
$packager->setRegistry($reg);
|
||||
$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";
|
||||
}
|
||||
ob_start();
|
||||
if (!file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS')) {
|
||||
mkdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS');
|
||||
touch(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS' . DIRECTORY_SEPARATOR . 'Root');
|
||||
}
|
||||
$packager->package(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package.xml');
|
||||
$packager->package(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package2.xml');
|
||||
$stuff = str_replace(array(dirname(__FILE__) . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR), array('', '/'),
|
||||
ob_get_contents());
|
||||
ob_end_clean();
|
||||
echo $stuff;
|
||||
|
||||
$archive1 = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz');
|
||||
$archive1c = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' .
|
||||
DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz');
|
||||
$x1 = $archive1->listContent();
|
||||
$x2 = $archive1c->listContent();
|
||||
for($i=0;$i<count($x1); $i++) {
|
||||
// if ($x1[$i]['filename'] == 'package.xml') {
|
||||
unset($x1[$i]['mtime']);
|
||||
unset($x1[$i]['checksum']);
|
||||
// }
|
||||
}
|
||||
for($i=0;$i<count($x2); $i++) {
|
||||
// if ($x2[$i]['filename'] == 'package.xml') {
|
||||
unset($x2[$i]['mtime']);
|
||||
unset($x2[$i]['checksum']);
|
||||
// }
|
||||
}
|
||||
var_dump($x1, $x2);
|
||||
$archive1 = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg2-1.0.tgz');
|
||||
$archive1c = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' .
|
||||
DIRECTORY_SEPARATOR . 'pkg2-1.0.tgz');
|
||||
$x1 = $archive1->listContent();
|
||||
$x2 = $archive1c->listContent();
|
||||
for($i=0;$i<count($x1); $i++) {
|
||||
// if ($x1[$i]['filename'] == 'package.xml') {
|
||||
unset($x1[$i]['mtime']);
|
||||
unset($x1[$i]['checksum']);
|
||||
// }
|
||||
}
|
||||
for($i=0;$i<count($x2); $i++) {
|
||||
// if ($x2[$i]['filename'] == 'package.xml') {
|
||||
unset($x2[$i]['mtime']);
|
||||
unset($x2[$i]['checksum']);
|
||||
// }
|
||||
}
|
||||
var_dump($x1, $x2);
|
||||
|
||||
echo "test failure:\n";
|
||||
$packager->package(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package-fail.xml');
|
||||
|
||||
unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz');
|
||||
unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg2-1.0.tgz');
|
||||
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);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Analyzing multiplepackages/pkg1file.php
|
||||
Analyzing pkg1/randomfile.php
|
||||
Package pkg1-1.0.tgz done
|
||||
Tag the released code with `pear cvstag package.xml'
|
||||
(or set the CVS tag RELEASE_1_0 by hand)
|
||||
Analyzing multiplepackages/pkg2file.php
|
||||
Analyzing nestedroot/rootfile.php
|
||||
Analyzing nestedroot/emptydir/nesteddir/nestedfile.php
|
||||
Package pkg2-1.0.tgz done
|
||||
Tag the released code with `pear cvstag package2.xml'
|
||||
(or set the CVS tag RELEASE_1_0 by hand)
|
||||
array(3) {
|
||||
[0]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(11) "package.xml"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(817)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[1]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(38) "pkg1-1.0/multiplepackages/pkg1file.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[2]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(28) "pkg1-1.0/pkg1/randomfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
}
|
||||
array(3) {
|
||||
[0]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(11) "package.xml"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(817)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[1]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(38) "pkg1-1.0/multiplepackages/pkg1file.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[2]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(28) "pkg1-1.0/pkg1/randomfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
}
|
||||
array(4) {
|
||||
[0]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(11) "package.xml"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(921)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[1]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(38) "pkg2-1.0/multiplepackages/pkg2file.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[2]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(32) "pkg2-1.0/nestedroot/rootfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[3]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(53) "pkg2-1.0/nestedroot/emptydir/nesteddir/nestedfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
}
|
||||
array(4) {
|
||||
[0]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(11) "package.xml"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(921)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[1]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(38) "pkg2-1.0/multiplepackages/pkg2file.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[2]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(32) "pkg2-1.0/nestedroot/rootfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
[3]=>
|
||||
array(6) {
|
||||
["filename"]=>
|
||||
string(53) "pkg2-1.0/nestedroot/emptydir/nesteddir/nestedfile.php"
|
||||
["mode"]=>
|
||||
int(33206)
|
||||
["uid"]=>
|
||||
int(0)
|
||||
["gid"]=>
|
||||
int(0)
|
||||
["size"]=>
|
||||
int(0)
|
||||
["typeflag"]=>
|
||||
string(0) ""
|
||||
}
|
||||
}
|
||||
test failure:
|
||||
Analyzing multiplepackages\pkg2file.php
|
||||
Analyzing nestedroot\rootfile.php
|
||||
Analyzing nestedroot\emptydir\nesteddir\nestedfile.php
|
||||
Analyzing nestedroot\emptydir\nesteddir\doesntexist.php
|
||||
Caught error: File does not exist: nestedroot\emptydir\nesteddir\doesntexist.php
|
||||
@@ -1,141 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Registry
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
exit();
|
||||
}
|
||||
$statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'registry_tester';
|
||||
if (file_exists($statedir)) {
|
||||
// don't delete existing directories!
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pear_registry_inc.php.inc';
|
||||
include_once "PEAR/Registry.php";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s\n");
|
||||
$statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'registry_tester';
|
||||
cleanall();
|
||||
|
||||
$files1 = array(
|
||||
"pkg1-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg1-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$files2 = array(
|
||||
"pkg2-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg2-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg2",
|
||||
),
|
||||
);
|
||||
$files3 = array(
|
||||
"pkg3-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg3-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg3",
|
||||
),
|
||||
);
|
||||
$files3_new = array(
|
||||
"pkg3-3.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg3",
|
||||
),
|
||||
"pkg3-4.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
);
|
||||
|
||||
print "creating registry object\n";
|
||||
$reg = new PEAR_Registry($statedir);
|
||||
dumpall($reg);
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->updatePackage("pkg2", array("version" => "2.1"));
|
||||
dumpall($reg);
|
||||
|
||||
var_dump($reg->deletePackage("pkg2"));
|
||||
dumpall($reg);
|
||||
|
||||
var_dump($reg->deletePackage("pkg2"));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->updatePackage("pkg3", array("version" => "3.1b1", "status" => "beta"));
|
||||
dumpall($reg);
|
||||
|
||||
$testing = $reg->checkFilemap(array_merge($files3, $files2));
|
||||
$ok = ($testing == array('pkg3-1.php' => 'pkg3', 'pkg3' . DIRECTORY_SEPARATOR . 'pkg3-2.php' => 'pkg3'));
|
||||
echo 'filemap OK? ' . ($ok ? "yes\n" : "no\n");
|
||||
if (!$ok) {
|
||||
var_dump($testing);
|
||||
}
|
||||
|
||||
$reg->updatePackage("pkg3", array("filelist" => $files3_new));
|
||||
dumpall($reg);
|
||||
|
||||
print "tests done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
creating registry object
|
||||
dumping registry...
|
||||
channel pear:
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg2: version="2.0" filelist=array(pkg2-1.php[role=php],pkg2-2.php[role=php,baseinstalldir=pkg2])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg2: version="2.1" filelist=array(pkg2-1.php[role=php],pkg2-2.php[role=php,baseinstalldir=pkg2])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
bool(true)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
bool(false)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3]) status="beta"
|
||||
dump done
|
||||
filemap OK? yes
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
dump done
|
||||
tests done
|
||||
@@ -1,292 +0,0 @@
|
||||
--TEST--
|
||||
PEAR_Registry v1.1
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
exit();
|
||||
}
|
||||
$statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'registry_tester';
|
||||
if (file_exists($statedir)) {
|
||||
// don't delete existing directories!
|
||||
echo 'skip';
|
||||
}
|
||||
include_once 'PEAR/Registry.php';
|
||||
$pv = phpversion() . '';
|
||||
$av = $pv{0} == '4' ? 'apiversion' : 'apiVersion';
|
||||
if (!in_array($av, get_class_methods('PEAR_Registry'))) {
|
||||
echo 'skip';
|
||||
exit();
|
||||
}
|
||||
if (PEAR_Registry::apiVersion() != '1.1') {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pear_registry_inc.php.inc';
|
||||
include_once "PEAR/Registry.php";
|
||||
PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s\n");
|
||||
$statedir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'registry_tester';
|
||||
cleanall();
|
||||
|
||||
$files1 = array(
|
||||
"pkg1-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg1-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$files1_test = array(
|
||||
"pkg12-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg12-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$files1_grnok = array(
|
||||
"pkg32-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg32-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg1",
|
||||
),
|
||||
);
|
||||
$files2 = array(
|
||||
"pkg2-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg2-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg2",
|
||||
),
|
||||
);
|
||||
$files3 = array(
|
||||
"pkg3-1.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
"pkg3-2.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg3",
|
||||
),
|
||||
);
|
||||
$files3_new = array(
|
||||
"pkg3-3.php" => array(
|
||||
"role" => "php",
|
||||
"baseinstalldir" => "pkg3",
|
||||
),
|
||||
"pkg3-4.php" => array(
|
||||
"role" => "php",
|
||||
),
|
||||
);
|
||||
|
||||
print "creating registry object\n";
|
||||
$reg = new PEAR_Registry($statedir);
|
||||
dumpall($reg);
|
||||
|
||||
$reg->addPackage("pkg1", array("name" => "pkg1", "version" => "1.0", "filelist" => $files1));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->addPackage("pkg2", array("name" => "pkg2", "version" => "2.0", "filelist" => $files2));
|
||||
$reg->addPackage("pkg3", array("name" => "pkg3", "version" => "3.0", "filelist" => $files3));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->updatePackage("pkg2", array("version" => "2.1"));
|
||||
dumpall($reg);
|
||||
|
||||
var_dump($reg->deletePackage("pkg2"));
|
||||
dumpall($reg);
|
||||
|
||||
var_dump($reg->deletePackage("pkg2"));
|
||||
dumpall($reg);
|
||||
|
||||
$reg->updatePackage("pkg3", array("version" => "3.1b1", "status" => "beta"));
|
||||
dumpall($reg);
|
||||
|
||||
$testing = $reg->checkFilemap(array_merge($files3, $files2));
|
||||
$ok = ($testing == array('pkg3-1.php' => 'pkg3', 'pkg3' . DIRECTORY_SEPARATOR . 'pkg3-2.php' => 'pkg3'));
|
||||
echo 'filemap OK? ' . ($ok ? "yes\n" : "no\n");
|
||||
if (!$ok) {
|
||||
var_dump($testing);
|
||||
}
|
||||
|
||||
$reg->updatePackage("pkg3", array("filelist" => $files3_new));
|
||||
dumpall($reg);
|
||||
|
||||
echo "testing channel registry\n\n";
|
||||
|
||||
print "test add channel\n";
|
||||
|
||||
require_once 'PEAR/ChannelFile.php';
|
||||
$chan = new PEAR_ChannelFile;
|
||||
|
||||
$chan->setName('test');
|
||||
$chan->setServer('pear.php.net');
|
||||
$chan->setSummary('hello');
|
||||
$reg->addChannel($chan);
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
echo "test add bad channel\n";
|
||||
$chan = new PEAR_ChannelFile;
|
||||
|
||||
$chan->setServer('pear.php.net');
|
||||
$chan->setSummary('hello');
|
||||
$reg->addChannel($chan);
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
print "test add good package\n";
|
||||
$reg->addPackage('pkg1', array('name' => 'pkg1', 'version' => '1.0', 'filelist' => $files1_test), 'test');
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
echo "test add package with unknown channel\n";
|
||||
|
||||
var_dump($reg->addPackage('pkg2', array('name'=> 'pkg2', 'version' => '1.0', 'filelist' => $files1_grnok), 'grnok'));
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
echo "test channel exists\n";
|
||||
|
||||
var_dump($reg->channelExists('test'));
|
||||
var_dump($reg->channelExists('pear'));
|
||||
var_dump($reg->channelExists('grnok'));
|
||||
|
||||
echo "testing restart with new object\n";
|
||||
|
||||
unset($reg);
|
||||
|
||||
$reg = &new PEAR_Registry($statedir);
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
echo "test delete channel with packages\n";
|
||||
var_dump($reg->deleteChannel('test'));
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
echo "test delete channel with no packages\n";
|
||||
$reg->deletePackage('pkg1', 'test');
|
||||
|
||||
var_dump($reg->deleteChannel('test'));
|
||||
|
||||
dumpall($reg);
|
||||
|
||||
print "tests done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
creating registry object
|
||||
dumping registry...
|
||||
channel pear:
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg2: version="2.0" filelist=array(pkg2-1.php[role=php],pkg2-2.php[role=php,baseinstalldir=pkg2])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg2: version="2.1" filelist=array(pkg2-1.php[role=php],pkg2-2.php[role=php,baseinstalldir=pkg2])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
bool(true)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
bool(false)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.0" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3])
|
||||
dump done
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-1.php[role=php],pkg3-2.php[role=php,baseinstalldir=pkg3]) status="beta"
|
||||
dump done
|
||||
filemap OK? yes
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
dump done
|
||||
testing channel registry
|
||||
|
||||
test add channel
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
dump done
|
||||
test add bad channel
|
||||
caught ErrorStack error:
|
||||
message: Missing channel name
|
||||
code: 6
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
dump done
|
||||
test add good package
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
pkg1: version="1.0" filelist=array(pkg12-1.php[role=php],pkg12-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
test add package with unknown channel
|
||||
bool(false)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
pkg1: version="1.0" filelist=array(pkg12-1.php[role=php],pkg12-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
test channel exists
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
testing restart with new object
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
pkg1: version="1.0" filelist=array(pkg12-1.php[role=php],pkg12-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
test delete channel with packages
|
||||
bool(false)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
channel test:
|
||||
pkg1: version="1.0" filelist=array(pkg12-1.php[role=php],pkg12-2.php[role=php,baseinstalldir=pkg1])
|
||||
dump done
|
||||
test delete channel with no packages
|
||||
bool(true)
|
||||
dumping registry...
|
||||
channel pear:
|
||||
pkg1: version="1.0" filelist=array(pkg1-1.php[role=php],pkg1-2.php[role=php,baseinstalldir=pkg1])
|
||||
pkg3: version="3.1b1" filelist=array(pkg3-3.php[role=php,baseinstalldir=pkg3],pkg3-4.php[role=php]) status="beta"
|
||||
dump done
|
||||
tests done
|
||||
@@ -1,74 +0,0 @@
|
||||
<?php
|
||||
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
function cleanall($dir = null)
|
||||
{
|
||||
if ($dir !== null) {
|
||||
$statedir = $dir;
|
||||
} else {
|
||||
$statedir = $GLOBALS['statedir'];
|
||||
}
|
||||
if (file_exists($statedir)) {
|
||||
$dp = opendir($statedir);
|
||||
while ($ent = readdir($dp)) {
|
||||
if (in_array($ent, array('.', '..'))) {
|
||||
continue;
|
||||
}
|
||||
if (is_dir($statedir . DIRECTORY_SEPARATOR . $ent)) {
|
||||
cleanall($statedir . DIRECTORY_SEPARATOR . $ent);
|
||||
continue;
|
||||
}
|
||||
unlink($statedir . DIRECTORY_SEPARATOR . $ent);
|
||||
}
|
||||
closedir($dp);
|
||||
rmdir($statedir);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function dumpall(&$reg)
|
||||
{
|
||||
print "dumping registry...\n";
|
||||
$infos = $reg->allPackageInfo();
|
||||
foreach ($infos as $channel => $info) {
|
||||
echo "channel $channel:\n";
|
||||
foreach ($info as $pkg) {
|
||||
print $pkg["name"] . ":";
|
||||
unset($pkg["name"]);
|
||||
foreach ($pkg as $k => $v) {
|
||||
if ($k == '_lastmodified') continue;
|
||||
if (is_array($v) && $k == 'filelist') {
|
||||
print " $k=array(";
|
||||
$i = 0;
|
||||
foreach ($v as $k2 => $v2) {
|
||||
if ($i++ > 0) print ",";
|
||||
print "{$k2}[";
|
||||
$j = 0;
|
||||
foreach ($v2 as $k3 => $v3) {
|
||||
if ($j++ > 0) print ",";
|
||||
print "$k3=$v3";
|
||||
}
|
||||
print "]";
|
||||
}
|
||||
print ")";
|
||||
} else {
|
||||
print " $k=\"$v\"";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
print "dump done\n";
|
||||
}
|
||||
|
||||
require_once 'PEAR/ErrorStack.php';
|
||||
function dump_error($err)
|
||||
{
|
||||
echo "caught ErrorStack error:\n";
|
||||
echo "message: ". $err['message'] . "\n";
|
||||
echo "code: ". $err['code'] . "\n";
|
||||
}
|
||||
PEAR_ErrorStack::setDefaultCallback('dump_error');
|
||||
register_shutdown_function('cleanall');
|
||||
?>
|
||||
@@ -1,110 +0,0 @@
|
||||
--TEST--
|
||||
System commands tests
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!getenv('PHP_PEAR_RUNTESTS')) {
|
||||
echo 'skip';
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
require_once 'System.php';
|
||||
|
||||
$sep = DIRECTORY_SEPARATOR;
|
||||
$ereg_sep = $sep;
|
||||
if (OS_WINDOWS) {
|
||||
$ereg_sep .= $sep;
|
||||
}
|
||||
/*******************
|
||||
mkDir
|
||||
********************/
|
||||
// Single directory creation
|
||||
System::mkDir('singledir');
|
||||
if( !is_dir('singledir') ){
|
||||
print "System::mkDir('singledir'); failed\n";
|
||||
}
|
||||
System::rm('singledir');
|
||||
|
||||
// Multiple directory creation
|
||||
System::mkDir('dir1 dir2 dir3');
|
||||
if (!@is_dir('dir1') || !@is_dir('dir2') || !@is_dir('dir3')) {
|
||||
print "System::mkDir('dir1 dir2 dir3'); failed\n";
|
||||
}
|
||||
|
||||
// Parent creation without "-p" fail
|
||||
if (@System::mkDir("dir4{$sep}dir3")) {
|
||||
print "System::mkDir(\"dir4{$sep}dir3\") did not failed\n";
|
||||
}
|
||||
|
||||
// Create a directory which is a file already fail
|
||||
touch('file4');
|
||||
$res = @System::mkDir('file4 dir5');
|
||||
if ($res) {
|
||||
print "System::mkDir('file4 dir5') did not failed\n";
|
||||
}
|
||||
if (!@is_dir('dir5')) {
|
||||
print "System::mkDir('file4 dir5') failed\n";
|
||||
}
|
||||
|
||||
// Parent directory creation
|
||||
System::mkDir("-p dir2{$sep}dir21 dir6{$sep}dir61{$sep}dir611");
|
||||
if (!@is_dir("dir2{$sep}dir21") || !@is_dir("dir6{$sep}dir61{$sep}dir611")) {
|
||||
print "System::mkDir(\"-p dir2{$sep}dir21 dir6{$sep}dir61{$sep}dir611\")); failed\n";
|
||||
}
|
||||
|
||||
/*******************
|
||||
mkTemp
|
||||
********************/
|
||||
|
||||
// Create a temporal file with "tst" as filename prefix
|
||||
$tmpfile = System::mkTemp('tst');
|
||||
$tmpenv = str_replace($sep, $ereg_sep, System::tmpDir());
|
||||
if (!@is_file($tmpfile) || !ereg("^$tmpenv{$ereg_sep}tst", $tmpfile)) {
|
||||
print "System::mkTemp('tst') failed\n";
|
||||
var_dump(is_file($tmpfile), $tmpfile, "^$tmpenv{$ereg_sep}tst", !ereg("^$tmpenv{$ereg_sep}tst", $tmpfile));
|
||||
}
|
||||
|
||||
// Create a temporal dir in "dir1" with default prefix "tmp"
|
||||
$tmpdir = System::mkTemp('-d -t dir1');
|
||||
if (!@is_dir($tmpdir) || !ereg("^dir1{$ereg_sep}tmp", $tmpdir)) {
|
||||
print "System::mkTemp('-d -t dir1') failed\n";
|
||||
}
|
||||
|
||||
/*******************
|
||||
rm
|
||||
********************/
|
||||
|
||||
// Try to delete a dir without "-r" option
|
||||
if (@System::rm('dir1')) {
|
||||
print "System::rm('dir1') did not fail\n";
|
||||
}
|
||||
|
||||
// Multiple and recursive delete
|
||||
$del = "dir1 dir2 dir3 file4 dir5 dir6";
|
||||
if (!@System::rm("-r $del")) {
|
||||
print "System::rm(\"-r $del\") failed\n";
|
||||
}
|
||||
|
||||
/*******************
|
||||
which
|
||||
********************/
|
||||
|
||||
if (OS_UNIX) {
|
||||
if (System::which('ls') != '/bin/ls') {
|
||||
print "System::which('ls') failed\n";
|
||||
}
|
||||
if (System::which('i_am_not_a_command')) {
|
||||
print "System::which('i_am_not_a_command') did not failed\n";
|
||||
}
|
||||
} // XXX Windows test
|
||||
|
||||
/*******************
|
||||
cat
|
||||
********************/
|
||||
// Missing tests yet
|
||||
|
||||
print "end\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
end
|
||||
@@ -1,2 +0,0 @@
|
||||
; php.ini for PEAR tests
|
||||
include_path=..
|
||||
@@ -1,57 +0,0 @@
|
||||
<?php
|
||||
class PHP_Dump {
|
||||
var $_var;
|
||||
function PHP_Dump($var)
|
||||
{
|
||||
$this->_var = $var;
|
||||
}
|
||||
|
||||
function toPHP()
|
||||
{
|
||||
return $this->_toUnknown($this->_var);
|
||||
}
|
||||
|
||||
function _toUnknown($var, $indent = ' ')
|
||||
{
|
||||
switch (gettype($var)) {
|
||||
case 'array' :
|
||||
return $this->_toArray($var, $indent);
|
||||
case 'boolean' :
|
||||
return $this->_toBool($var, $indent);
|
||||
case 'double' :
|
||||
case 'integer' :
|
||||
return $this->_toNumber($var, $indent);
|
||||
case 'NULL' :
|
||||
return "{$indent}null";
|
||||
case 'string' :
|
||||
return $this->_toString($var, $indent);
|
||||
}
|
||||
}
|
||||
|
||||
function _toString($var, $indent)
|
||||
{
|
||||
return $indent . '"' . addslashes($var) . '"';
|
||||
}
|
||||
|
||||
function _toBool($var, $indent)
|
||||
{
|
||||
return $indent . ($var ? 'true' : 'false');
|
||||
}
|
||||
|
||||
function _toNumber($var, $indent)
|
||||
{
|
||||
return $indent . $var;
|
||||
}
|
||||
|
||||
function _toArray($var, $indent = ' ')
|
||||
{
|
||||
$ret = $indent . "array(\n";
|
||||
foreach ($var as $key => $value) {
|
||||
$ret .= $indent . ((is_int($key) || is_double($key)) ? $key : "'$key'") . " =>\n";
|
||||
$ret .= $this->_toUnknown($value, "$indent ") . ",\n";
|
||||
}
|
||||
$ret .= $indent . ')';
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
a:1:{s:13:"master_server";s:12:"pear.php.net";}
|
||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
||||
#PEAR_Config 2.0
|
||||
master_server = pear.php.net
|
||||
@@ -1 +0,0 @@
|
||||
a:0:{}
|
||||
@@ -1 +0,0 @@
|
||||
a:1:{s:7:"verbose";i:2;}
|
||||
@@ -1 +0,0 @@
|
||||
a:2:{s:7:"verbose";i:60;s:10:"__channels";a:2:{s:5:"test1";a:1:{s:7:"verbose";i:70;}s:5:"test2";a:1:{s:7:"verbose";i:71;}}}
|
||||
Reference in New Issue
Block a user