+++ /dev/null
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4: */
-// +----------------------------------------------------------------------+
-// | PHP Version 5 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2004 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 3.0 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available through the world-wide-web at the following url: |
-// | http://www.php.net/license/3_0.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Author: Andrei Zmievski <andrei@php.net> |
-// +----------------------------------------------------------------------+
-//
-// $Id$
-
-require_once 'PEAR.php';
-
-/**
- * Command-line options parsing class.
- *
- * @author Andrei Zmievski <andrei@php.net>
- *
- */
-class Console_Getopt {
- /**
- * Parses the command-line options.
- *
- * The first parameter to this function should be the list of command-line
- * arguments without the leading reference to the running program.
- *
- * The second parameter is a string of allowed short options. Each of the
- * option letters can be followed by a colon ':' to specify that the option
- * requires an argument, or a double colon '::' to specify that the option
- * takes an optional argument.
- *
- * The third argument is an optional array of allowed long options. The
- * leading '--' should not be included in the option name. Options that
- * require an argument should be followed by '=', and options that take an
- * option argument should be followed by '=='.
- *
- * The return value is an array of two elements: the list of parsed
- * options and the list of non-option command-line arguments. Each entry in
- * the list of parsed options is a pair of elements - the first one
- * specifies the option, and the second one specifies the option argument,
- * if there was one.
- *
- * Long and short options can be mixed.
- *
- * Most of the semantics of this function are based on GNU getopt_long().
- *
- * @param array $args an array of command-line arguments
- * @param string $short_options specifies the list of allowed short options
- * @param array $long_options specifies the list of allowed long options
- *
- * @return array two-element array containing the list of parsed options and
- * the non-option arguments
- *
- * @access public
- *
- */
- function getopt2($args, $short_options, $long_options = null)
- {
- return Console_Getopt::doGetopt(2, $args, $short_options, $long_options);
- }
-
- /**
- * This function expects $args to start with the script name (POSIX-style).
- * Preserved for backwards compatibility.
- * @see getopt2()
- */
- function getopt($args, $short_options, $long_options = null)
- {
- return Console_Getopt::doGetopt(1, $args, $short_options, $long_options);
- }
-
- /**
- * The actual implementation of the argument parsing code.
- */
- function doGetopt($version, $args, $short_options, $long_options = null)
- {
- // in case you pass directly readPHPArgv() as the first arg
- if (PEAR::isError($args)) {
- return $args;
- }
- if (empty($args)) {
- return array(array(), array());
- }
- $opts = array();
- $non_opts = array();
-
- settype($args, 'array');
-
- if ($long_options) {
- sort($long_options);
- }
-
- /*
- * Preserve backwards compatibility with callers that relied on
- * erroneous POSIX fix.
- */
- if ($version < 2) {
- if (isset($args[0]{0}) && $args[0]{0} != '-') {
- array_shift($args);
- }
- }
-
- reset($args);
- while (list($i, $arg) = each($args)) {
-
- /* The special element '--' means explicit end of
- options. Treat the rest of the arguments as non-options
- and end the loop. */
- if ($arg == '--') {
- $non_opts = array_merge($non_opts, array_slice($args, $i + 1));
- break;
- }
-
- if ($arg{0} != '-' || (strlen($arg) > 1 && $arg{1} == '-' && !$long_options)) {
- $non_opts = array_merge($non_opts, array_slice($args, $i));
- break;
- } elseif (strlen($arg) > 1 && $arg{1} == '-') {
- $error = Console_Getopt::_parseLongOption(substr($arg, 2), $long_options, $opts, $args);
- if (PEAR::isError($error))
- return $error;
- } else {
- $error = Console_Getopt::_parseShortOption(substr($arg, 1), $short_options, $opts, $args);
- if (PEAR::isError($error))
- return $error;
- }
- }
-
- return array($opts, $non_opts);
- }
-
- /**
- * @access private
- *
- */
- function _parseShortOption($arg, $short_options, &$opts, &$args)
- {
- for ($i = 0; $i < strlen($arg); $i++) {
- $opt = $arg{$i};
- $opt_arg = null;
-
- /* Try to find the short option in the specifier string. */
- if (($spec = strstr($short_options, $opt)) === false || $arg{$i} == ':')
- {
- return PEAR::raiseError("Console_Getopt: unrecognized option -- $opt");
- }
-
- if (strlen($spec) > 1 && $spec{1} == ':') {
- if (strlen($spec) > 2 && $spec{2} == ':') {
- if ($i + 1 < strlen($arg)) {
- /* Option takes an optional argument. Use the remainder of
- the arg string if there is anything left. */
- $opts[] = array($opt, substr($arg, $i + 1));
- break;
- }
- } else {
- /* Option requires an argument. Use the remainder of the arg
- string if there is anything left. */
- if ($i + 1 < strlen($arg)) {
- $opts[] = array($opt, substr($arg, $i + 1));
- break;
- } else if (list(, $opt_arg) = each($args))
- /* Else use the next argument. */;
- else
- return PEAR::raiseError("Console_Getopt: option requires an argument -- $opt");
- }
- }
-
- $opts[] = array($opt, $opt_arg);
- }
- }
-
- /**
- * @access private
- *
- */
- function _parseLongOption($arg, $long_options, &$opts, &$args)
- {
- @list($opt, $opt_arg) = explode('=', $arg, 2);
- $opt_len = strlen($opt);
-
- for ($i = 0; $i < count($long_options); $i++) {
- $long_opt = $long_options[$i];
- $opt_start = substr($long_opt, 0, $opt_len);
-
- /* Option doesn't match. Go on to the next one. */
- if ($opt_start != $opt)
- continue;
-
- $opt_rest = substr($long_opt, $opt_len);
-
- /* Check that the options uniquely matches one of the allowed
- options. */
- if ($opt_rest != '' && $opt{0} != '=' &&
- $i + 1 < count($long_options) &&
- $opt == substr($long_options[$i+1], 0, $opt_len)) {
- return PEAR::raiseError("Console_Getopt: option --$opt is ambiguous");
- }
-
- if (substr($long_opt, -1) == '=') {
- if (substr($long_opt, -2) != '==') {
- /* Long option requires an argument.
- Take the next argument if one wasn't specified. */;
- if (!strlen($opt_arg) && !(list(, $opt_arg) = each($args))) {
- return PEAR::raiseError("Console_Getopt: option --$opt requires an argument");
- }
- }
- } else if ($opt_arg) {
- return PEAR::raiseError("Console_Getopt: option --$opt doesn't allow an argument");
- }
-
- $opts[] = array('--' . $opt, $opt_arg);
- return;
- }
-
- return PEAR::raiseError("Console_Getopt: unrecognized option --$opt");
- }
-
- /**
- * Safely read the $argv PHP array across different PHP configurations.
- * Will take care on register_globals and register_argc_argv ini directives
- *
- * @access public
- * @return mixed the $argv PHP array or PEAR error if not registered
- */
- function readPHPArgv()
- {
- global $argv;
- if (!is_array($argv)) {
- if (!@is_array($_SERVER['argv'])) {
- if (!@is_array($GLOBALS['HTTP_SERVER_VARS']['argv'])) {
- return PEAR::raiseError("Console_Getopt: Could not read cmd args (register_argc_argv=Off?)");
- }
- return $GLOBALS['HTTP_SERVER_VARS']['argv'];
- }
- return $_SERVER['argv'];
- }
- return $argv;
- }
-
-}
-
-?>
+++ /dev/null
---TEST--
-Console_Getopt
---SKIPIF--
-skip
---FILE--
-<?php
-
-error_reporting(E_ALL);
-chdir(dirname(__FILE__));
-include "../Getopt.php";
-PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s\n\n");
-
-function test($argstr, $optstr) {
- $argv = split('[[:space:]]+', $argstr);
- if (PEAR::isError($options = Console_Getopt::getopt($argv, $optstr))) {
- return;
- }
- $opts = $options[0];
- $non_opts = $options[1];
- $i = 0;
- print "options: ";
- foreach ($opts as $o => $d) {
- if ($i++ > 0) {
- print ", ";
- }
- print $d[0] . '=' . $d[1];
- }
- print "\n";
- print "params: " . implode(", ", $non_opts) . "\n";
- print "\n";
-}
-
-test("-abc", "abc");
-test("-abc foo", "abc");
-test("-abc foo", "abc:");
-test("-abc foo bar gazonk", "abc");
-test("-abc foo bar gazonk", "abc:");
-test("-a -b -c", "abc");
-test("-a -b -c", "abc:");
-test("-abc", "ab:c");
-test("-abc foo -bar gazonk", "abc");
-?>
---EXPECT--
-options: a=, b=, c=
-params:
-
-options: a=, b=, c=
-params: foo
-
-options: a=, b=, c=foo
-params:
-
-options: a=, b=, c=
-params: foo, bar, gazonk
-
-options: a=, b=, c=foo
-params: bar, gazonk
-
-options: a=, b=, c=
-params:
-
-Console_Getopt: option requires an argument -- c
-
-options: a=, b=c
-params:
-
-options: a=, b=, c=
-params: foo, -bar, gazonk
+++ /dev/null
-<?php
-//
-// +----------------------------------------------------------------------+
-// | PHP Version 5 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2004 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 3.0 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available through the world-wide-web at the following url: |
-// | http://www.php.net/license/3_0.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Authors: Stig Bakken <ssb@php.net> |
-// | |
-// +----------------------------------------------------------------------+
-//
-// $Id$
-
-// {{{ uname examples
-
-// php_uname() without args returns the same as 'uname -a', or a PHP-custom
-// string for Windows.
-// PHP versions prior to 4.3 return the uname of the host where PHP was built,
-// as of 4.3 it returns the uname of the host running the PHP code.
-//
-// PC RedHat Linux 7.1:
-// Linux host.example.com 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
-//
-// PC Debian Potato:
-// Linux host 2.4.17 #2 SMP Tue Feb 12 15:10:04 CET 2002 i686 unknown
-//
-// PC FreeBSD 3.3:
-// FreeBSD host.example.com 3.3-STABLE FreeBSD 3.3-STABLE #0: Mon Feb 21 00:42:31 CET 2000 root@example.com:/usr/src/sys/compile/CONFIG i386
-//
-// PC FreeBSD 4.3:
-// FreeBSD host.example.com 4.3-RELEASE FreeBSD 4.3-RELEASE #1: Mon Jun 25 11:19:43 EDT 2001 root@example.com:/usr/src/sys/compile/CONFIG i386
-//
-// PC FreeBSD 4.5:
-// FreeBSD host.example.com 4.5-STABLE FreeBSD 4.5-STABLE #0: Wed Feb 6 23:59:23 CET 2002 root@example.com:/usr/src/sys/compile/CONFIG i386
-//
-// PC FreeBSD 4.5 w/uname from GNU shellutils:
-// FreeBSD host.example.com 4.5-STABLE FreeBSD 4.5-STABLE #0: Wed Feb i386 unknown
-//
-// HP 9000/712 HP-UX 10:
-// HP-UX iq B.10.10 A 9000/712 2008429113 two-user license
-//
-// HP 9000/712 HP-UX 10 w/uname from GNU shellutils:
-// HP-UX host B.10.10 A 9000/712 unknown
-//
-// IBM RS6000/550 AIX 4.3:
-// AIX host 3 4 000003531C00
-//
-// AIX 4.3 w/uname from GNU shellutils:
-// AIX host 3 4 000003531C00 unknown
-//
-// SGI Onyx IRIX 6.5 w/uname from GNU shellutils:
-// IRIX64 host 6.5 01091820 IP19 mips
-//
-// SGI Onyx IRIX 6.5:
-// IRIX64 host 6.5 01091820 IP19
-//
-// SparcStation 20 Solaris 8 w/uname from GNU shellutils:
-// SunOS host.example.com 5.8 Generic_108528-12 sun4m sparc
-//
-// SparcStation 20 Solaris 8:
-// SunOS host.example.com 5.8 Generic_108528-12 sun4m sparc SUNW,SPARCstation-20
-//
-// Mac OS X (Darwin)
-// Darwin home-eden.local 7.5.0 Darwin Kernel Version 7.5.0: Thu Aug 5 19:26:16 PDT 2004; root:xnu/xnu-517.7.21.obj~3/RELEASE_PPC Power Macintosh
-//
-// Mac OS X early versions
-//
-
-// }}}
-
-/* TODO:
- * - define endianness, to allow matchSignature("bigend") etc.
- */
-
-class OS_Guess
-{
- var $sysname;
- var $nodename;
- var $cpu;
- var $release;
- var $extra;
-
- function OS_Guess($uname = null)
- {
- list($this->sysname,
- $this->release,
- $this->cpu,
- $this->extra,
- $this->nodename) = $this->parseSignature($uname);
- }
-
- function parseSignature($uname = null)
- {
- static $sysmap = array(
- 'HP-UX' => 'hpux',
- 'IRIX64' => 'irix',
- );
- static $cpumap = array(
- 'i586' => 'i386',
- 'i686' => 'i386',
- 'ppc' => 'powerpc',
- );
- if ($uname === null) {
- $uname = php_uname();
- }
- $parts = split('[[:space:]]+', trim($uname));
- $n = count($parts);
-
- $release = $machine = $cpu = '';
- $sysname = $parts[0];
- $nodename = $parts[1];
- $cpu = $parts[$n-1];
- $extra = '';
- if ($cpu == 'unknown') {
- $cpu = $parts[$n-2];
- }
-
- switch ($sysname) {
- case 'AIX':
- $release = "$parts[3].$parts[2]";
- break;
- case 'Windows':
- switch ($parts[1]) {
- case '95/98':
- $release = '9x';
- break;
- default:
- $release = $parts[1];
- break;
- }
- $cpu = 'i386';
- break;
- case 'Linux':
- $extra = $this->_detectGlibcVersion();
- // use only the first two digits from the kernel version
- $release = ereg_replace('^([[:digit:]]+\.[[:digit:]]+).*', '\1', $parts[2]);
- break;
- case 'Mac' :
- $sysname = 'darwin';
- $nodename = $parts[2];
- $release = $parts[3];
- if ($cpu == 'Macintosh') {
- if ($parts[$n - 2] == 'Power') {
- $cpu = 'powerpc';
- }
- }
- break;
- case 'Darwin' :
- if ($cpu == 'Macintosh') {
- if ($parts[$n - 2] == 'Power') {
- $cpu = 'powerpc';
- }
- }
- $release = ereg_replace('^([[:digit:]]+\.[[:digit:]]+).*', '\1', $parts[2]);
- break;
- default:
- $release = ereg_replace('-.*', '', $parts[2]);
- break;
- }
-
-
- if (isset($sysmap[$sysname])) {
- $sysname = $sysmap[$sysname];
- } else {
- $sysname = strtolower($sysname);
- }
- if (isset($cpumap[$cpu])) {
- $cpu = $cpumap[$cpu];
- }
- return array($sysname, $release, $cpu, $extra, $nodename);
- }
-
- function _detectGlibcVersion()
- {
- // Use glibc's <features.h> header file to
- // get major and minor version number:
- include_once "System.php";
- $tmpfile = System::mktemp("glibctest");
- $fp = fopen($tmpfile, "w");
- fwrite($fp, "#include <features.h>\n__GLIBC__ __GLIBC_MINOR__\n");
- fclose($fp);
- $cpp = popen("/usr/bin/cpp $tmpfile", "r");
- $major = $minor = 0;
- while ($line = fgets($cpp, 1024)) {
- if ($line{0} == '#' || trim($line) == '') {
- continue;
- }
- if (list($major, $minor) = explode(' ', trim($line))) {
- break;
- }
- }
- pclose($cpp);
- unlink($tmpfile);
- if (!($major && $minor) && is_link('/lib/libc.so.6')) {
- // Let's try reading the libc.so.6 symlink
- if (ereg('^libc-([.*])\.so$', basename(readlink('/lib/libc.so.6')), $matches)) {
- list($major, $minor) = explode('.', $matches);
- }
- }
- if (!($major && $minor)) {
- return '';
- }
- return "glibc{$major}.{$minor}";
- }
-
- function getSignature()
- {
- if (empty($this->extra)) {
- return "{$this->sysname}-{$this->release}-{$this->cpu}";
- }
- return "{$this->sysname}-{$this->release}-{$this->cpu}-{$this->extra}";
- }
-
- function getSysname()
- {
- return $this->sysname;
- }
-
- function getNodename()
- {
- return $this->nodename;
- }
-
- function getCpu()
- {
- return $this->cpu;
- }
-
- function getRelease()
- {
- return $this->release;
- }
-
- function getExtra()
- {
- return $this->extra;
- }
-
- function matchSignature($match)
- {
- if (is_array($match)) {
- $fragments = $match;
- } else {
- $fragments = explode('-', $match);
- }
- $n = count($fragments);
- $matches = 0;
- if ($n > 0) {
- $matches += $this->_matchFragment($fragments[0], $this->sysname);
- }
- if ($n > 1) {
- $matches += $this->_matchFragment($fragments[1], $this->release);
- }
- if ($n > 2) {
- $matches += $this->_matchFragment($fragments[2], $this->cpu);
- }
- if ($n > 3) {
- $matches += $this->_matchFragment($fragments[3], $this->extra);
- }
- return ($matches == $n);
- }
-
- function _matchFragment($fragment, $value)
- {
- if (strcspn($fragment, '*?') < strlen($fragment)) {
- $reg = '^' . str_replace(array('*', '?', '/'), array('.*', '.', '\\/'), $fragment) . '$';
- return eregi($reg, $value);
- }
- return ($fragment == '*' || !strcasecmp($fragment, $value));
- }
-
-}
-
-/*
- * Local Variables:
- * indent-tabs-mode: nil
- * c-basic-offset: 4
- * End:
- */
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-class testgemessage
-{
- function __toString()
- {
- return '__toString() called';
- }
-}
-class testgemessage1 {}
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_getErrorMessage extends PHPUnit_TestCase
-{
-
- function Error_Stack_TestCase_getErrorMessage($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('test');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function returnsignore($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_IGNORE;
- }
-
- function test_basic()
- {
- if (!$this->_methodExists('getErrorMessage')) {
- return;
- }
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack,
- array('message' => 'boo', 'params' => array(), 'code' => 6));
- $this->assertEquals('boo', $msg);
- }
-
- function test_basic_template()
- {
- if (!$this->_methodExists('getErrorMessage')) {
- return;
- }
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack,
- array('message' => 'boo', 'params' => array()), 'far%__msg%');
- $this->assertEquals('farboo', $msg);
- }
-
- function test_basic_params()
- {
- if (!$this->_methodExists('getErrorMessage')) {
- return;
- }
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => 'hello')), '%bar% foo');
- $this->assertEquals('hello foo', $msg, 'string');
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => array('hello', 'there'))), '%bar% foo');
- $this->assertEquals('hello, there foo', $msg, 'array');
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => new testgemessage)), '%bar% foo');
- $this->assertEquals('__toString() called foo', $msg, 'first object, __toString()');
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => new testgemessage1)), '%bar% foo');
- $this->assertEquals('Object foo', $msg, 'second object, no __toString()');
- $errs = PEAR_ErrorStack::staticGetErrors();
- unset($errs['PEAR_ErrorStack'][0]['context']);
- unset($errs['PEAR_ErrorStack'][0]['time']);
- $this->assertEquals(
- array('PEAR_ErrorStack' =>
- array(
- array(
- 'code' => PEAR_ERRORSTACK_ERR_OBJTOSTRING,
- 'params' => array('obj' => 'testgemessage1'),
- 'package' => 'PEAR_ErrorStack',
- 'level' => 'warning',
- 'message' => 'object testgemessage1 passed into getErrorMessage, but has no __toString() method',
- ))), $errs, 'warning not raised');
- }
-
- function test_basic_params_with_template()
- {
- if (!$this->_methodExists('getErrorMessage')) {
- return;
- }
- $this->stack->setErrorMessageTemplate(array(6 => '%bar% foo'));
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => 'hello'), 'code' => 6));
- $this->assertEquals('hello foo', $msg, 'string');
- $msg = PEAR_ErrorStack::getErrorMessage($this->stack, array('message' => '',
- 'params' => array('bar' => 'hello'), 'code' => 7));
- $this->assertEquals('', $msg, 'string');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_getErrorMessageTemplate extends PHPUnit_TestCase
-{
-
- function Error_Stack_TestCase_getErrorMessageTemplate($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('test');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function returnsignore($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_IGNORE;
- }
-
- function test_normal()
- {
- if (!$this->_methodExists('getErrorMessageTemplate')) {
- return;
- }
- $this->assertEquals('%__msg%', $this->stack->getErrorMessageTemplate(23));
- }
-
- function test_normal_hascode()
- {
- if (!$this->_methodExists('getErrorMessageTemplate')) {
- return;
- }
- if (!$this->_methodExists('setErrorMessageTemplate')) {
- return;
- }
- $this->stack->setErrorMessageTemplate(array(23 => '%foo% has %__msg%'));
- $this->assertEquals('%foo% has %__msg%', $this->stack->getErrorMessageTemplate(23));
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_getErrors extends PHPUnit_TestCase
-{
-
- function Error_Stack_TestCase_getErrors($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('test');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function returnsignore($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_IGNORE;
- }
-
- function test_none()
- {
- if (!$this->_methodExists('getErrors')) {
- return;
- }
- $this->assertEquals(array(), $this->stack->getErrors());
- $this->assertEquals(array(), $this->stack->getErrors(true));
- }
-
- function test_normal()
- {
- if (!$this->_methodExists('getErrors')) {
- return;
- }
- $this->assertEquals(array(), $this->stack->getErrors());
- $this->stack->push(1);
- $this->stack->push(2, 'warning');
- $this->stack->push(3, 'foo');
- $ret = $this->stack->getErrors();
- for ($i= 0; $i < 3; $i++) {
- unset($ret[$i]['time']);
- unset($ret[$i]['context']);
- }
- $this->assertEquals(
- array(
- array('code' => 3,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'foo',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- ), $ret, 'incorrect errors, non-purge');
- $ret = $this->stack->getErrors(true);
- for ($i= 0; $i < 3; $i++) {
- unset($ret[$i]['time']);
- unset($ret[$i]['context']);
- }
- $this->assertEquals(
- array(
- array('code' => 3,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'foo',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- ), $ret, 'incorrect errors, purge');
- $this->assertEquals(array(), $this->stack->getErrors());
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_pushpop extends PHPUnit_TestCase
-{
- /**
- * A PEAR_PackageFileManager object
- * @var object
- */
- var $packagexml;
-
- function Error_Stack_TestCase_pushpop($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('test');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function test_valid_basic()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack->push(1);
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_params()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $z = $this->stack->push(2, 'exception', array('my' => 'param'), 'hello',
- array('test'), array(array('file' => 'boof', 'line' => 34)));
- $err = $this->stack->pop('exception');
- $this->assertEquals($z, $err, 'popped different error');
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 2,
- 'params' => array('my' => 'param'),
- 'package' => 'test',
- 'message' => 'hello',
- 'level' => 'exception',
- 'context' =>
- array(
- 'file' => 'boof',
- 'line' => 34,
- ),
- 'repackage' => array('test'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_paramscompat()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = new PEAR_ErrorStack('test', false, null, true);
- $z = $this->stack->push(2, 'exception', array('my' => 'param'), 'hello',
- array('test'), array(array('file' => 'boof', 'line' => 34)));
- $this->assertEquals('pear_error', strtolower(get_class($z)), 'not pear_error');
- $err = $this->stack->pop('exception');
- if (is_a($z, 'PEAR_Error')) {
- $this->assertEquals($err, $z->getUserInfo(), 'userinfo wrong');
- }
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 2,
- 'params' => array('my' => 'param'),
- 'package' => 'test',
- 'message' => 'hello',
- 'level' => 'exception',
- 'context' =>
- array(
- 'file' => 'boof',
- 'line' => 34,
- ),
- 'repackage' => array('test'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function contextcallback($code, $params, $trace)
- {
- $this->assertEquals(4, $code, 'wrong context code');
- $this->assertEquals(array('hello' => 6), $params, 'wrong context params');
- $this->wasCalled = true;
- return array('hi' => 'there', 'you' => 'fool');
- }
-
- function test_valid_contextconstructor()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = new PEAR_ErrorStack('test', false, array(&$this, 'contextcallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'context callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- 'context' => array('hi' => 'there', 'you' => 'fool'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_contextsingleton()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test', false, array(&$this, 'contextcallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'context callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- 'context' => array('hi' => 'there', 'you' => 'fool'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_context_setcontext()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('setContextCallback')) {
- return;
- }
- $this->stack->setContextCallback(array(&$this, 'contextcallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'context callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- 'context' => array('hi' => 'there', 'you' => 'fool'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function messagecallback(&$stack, $err)
- {
- $this->assertEquals(4, $err['code'], 'wrong message code');
- $this->assertEquals(array('hello' => 6), $err['params'], 'wrong message params');
- $this->assertEquals('test1', $err['package'], 'wrong error stack');
- $this->wasCalled = true;
- return 'my silly message';
- }
-
- function test_valid_msgcallbackconstructor()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = new PEAR_ErrorStack('test1', array(&$this, 'messagecallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'message callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- unset($err['context']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test1',
- 'message' => 'my silly message',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_msgcallbacksingleton()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test1', array(&$this, 'messagecallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'message callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- unset($err['context']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test1',
- 'message' => 'my silly message',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_msgcallback_setmsgcallback()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('setContextCallback')) {
- return;
- }
- $this->stack = new PEAR_ErrorStack('test1');
- $this->stack->setMessageCallback(array(&$this, 'messagecallback'));
- $this->wasCalled = false;
- $this->stack->push(4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'message callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- unset($err['context']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test1',
- 'message' => 'my silly message',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_pushpopcallback extends PHPUnit_TestCase
-{
- /**
- * A PEAR_PackageFileManager object
- * @var object
- */
- var $packagexml;
-
- function Error_Stack_TestCase_pushpopcallback($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('test');
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function returnsignore($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_IGNORE;
- }
-
- function test_return_ignore()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('pushCallback')) {
- return;
- }
- if (!$this->_methodExists('popCallback')) {
- return;
- }
- $this->stack->pushCallback(array(&$this, 'returnsignore'));
- $this->wasCalled = false;
- $this->stack->push(1);
- $this->assertTrue($this->wasCalled, 'returnsignore not called');
- $err = $this->stack->pop();
- $this->assertFalse($err, 'error was not ignored!');
- $this->stack->popCallback();
- $this->wasCalled = false;
- $this->stack->push(1);
- $this->assertFalse($this->wasCalled, 'returnsignore called');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
-
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function returnsnothing($err)
- {
- $this->wasCalled = true;
- }
-
- function test_return_nothing()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('pushCallback')) {
- return;
- }
- if (!$this->_methodExists('popCallback')) {
- return;
- }
- $this->stack->pushCallback(array(&$this, 'returnsnothing'));
- $this->wasCalled = false;
- $this->stack->push(1);
- $this->assertTrue($this->wasCalled, 'returnsnothing not called');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $this->stack->popCallback();
- $this->wasCalled = false;
- $this->stack->push(1);
- $this->assertFalse($this->wasCalled, 'returnsnothing called');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
-
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function returnspush($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_PUSH;
- }
-
- function test_return_push()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('pushCallback')) {
- return;
- }
- if (!$this->_methodExists('popCallback')) {
- return;
- }
- if (!$this->_methodExists('setLogger')) {
- return;
- }
- $this->stack->pushCallback(array(&$this, 'returnspush'));
- $log = new BurfLog;
- $log->setTestCase($this);
- $log->curMethod(__FUNCTION__);
- $this->stack->setLogger($log);
- $this->wasCalled = false;
- $this->stack->push(1);
- $this->assertTrue($this->wasCalled, 'returnspush not called');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else 1'
- );
- $this->stack->popCallback();
- $log->pushExpect('', PEAR_LOG_ERR, array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ));
- $this->wasCalled = false;
- $this->wasLogged = false;
- $this->stack->push(1);
- $this->assertFalse($this->wasCalled, 'returnspush called');
- $this->assertTrue($this->wasLogged, 'was not logged!');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else 2'
- );
-
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function returnslog($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_LOG;
- }
-
- function test_return_log()
- {
- if (!$this->_methodExists('push')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('pushCallback')) {
- return;
- }
- if (!$this->_methodExists('popCallback')) {
- return;
- }
- if (!$this->_methodExists('setLogger')) {
- return;
- }
- $this->stack->pushCallback(array(&$this, 'returnslog'));
- $log = new BurfLog;
- $log->setTestCase($this);
- $log->curMethod(__FUNCTION__);
- $this->stack->setLogger($log);
- $this->wasCalled = false;
- $this->wasLogged = false;
- $log->pushExpect('', PEAR_LOG_ERR, array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ));
- $this->stack->push(1);
- $this->assertTrue($this->wasCalled, 'returnslog not called');
- $this->assertTrue($this->wasLogged, 'was not logged!');
- $err = $this->stack->pop();
- $this->assertFalse($err, 'an error was pushed!');
- $this->stack->popCallback();
- $log->clearExpect();
- $log->pushExpect('', PEAR_LOG_ERR, array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ));
- $this->wasCalled = false;
- $this->wasLogged = false;
- $this->stack->push(1);
- $this->assertFalse($this->wasCalled, 'returnspush called');
- $this->assertTrue($this->wasLogged, 'was not logged!');
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else 2'
- );
-
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_pushpopstatic extends PHPUnit_TestCase
-{
- /**
- * A PEAR_PackageFileManager object
- * @var object
- */
- var $packagexml;
-
- function Error_Stack_TestCase_pushpopstatic($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function test_valid_basic()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test');
- PEAR_ErrorStack::staticPush('test', 1);
- $err = $this->stack->pop();
- unset($err['context']);
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_params()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test');
- $z = PEAR_ErrorStack::staticPush('test', 2, 'exception', array('my' => 'param'), 'hello',
- array('test'), array(array('file' => 'boof', 'line' => 34)));
- $err = $this->stack->pop('exception');
- $this->assertEquals($z, $err, 'popped different error');
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 2,
- 'params' => array('my' => 'param'),
- 'package' => 'test',
- 'message' => 'hello',
- 'level' => 'exception',
- 'context' =>
- array(
- 'file' => 'boof',
- 'line' => 34,
- ),
- 'repackage' => array('test'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_paramscompat()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test', false, null, 'PEAR_ErrorStack', true);
- $z = PEAR_ErrorStack::staticPush('test', 2, 'exception', array('my' => 'param'), 'hello',
- array('test'), array(array('file' => 'boof', 'line' => 34)));
- $this->assertEquals('pear_error', strtolower(get_class($z)), 'not pear_error');
- $err = $this->stack->pop('exception');
- if (is_a($z, 'PEAR_Error')) {
- $this->assertEquals($err, $z->getUserInfo(), 'userinfo wrong');
- }
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 2,
- 'params' => array('my' => 'param'),
- 'package' => 'test',
- 'message' => 'hello',
- 'level' => 'exception',
- 'context' =>
- array(
- 'file' => 'boof',
- 'line' => 34,
- ),
- 'repackage' => array('test'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function contextcallback($code, $params, $trace)
- {
- $this->assertEquals(4, $code, 'wrong context code');
- $this->assertEquals(array('hello' => 6), $params, 'wrong context params');
- $this->wasCalled = true;
- return array('hi' => 'there', 'you' => 'fool');
- }
-
- function test_valid_contextsingleton()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test', false, array(&$this, 'contextcallback'));
- $this->wasCalled = false;
- PEAR_ErrorStack::staticPush('test', 4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'context callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- 'context' => array('hi' => 'there', 'you' => 'fool'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_context_setcontext()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('setContextCallback')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test');
- $this->stack->setContextCallback(array(&$this, 'contextcallback'));
- $this->wasCalled = false;
- PEAR_ErrorStack::staticPush('test', 4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'context callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test',
- 'message' => '',
- 'level' => 'error',
- 'context' => array('hi' => 'there', 'you' => 'fool'),
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function messagecallback(&$stack, $err)
- {
- $this->assertEquals(4, $err['code'], 'wrong message code');
- $this->assertEquals(array('hello' => 6), $err['params'], 'wrong message params');
- $this->assertEquals('test1', $err['package'], 'wrong error stack');
- $this->wasCalled = true;
- return 'my silly message';
- }
-
- function test_valid_msgcallbacksingleton()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test1', array(&$this, 'messagecallback'));
- $this->wasCalled = false;
- PEAR_ErrorStack::staticPush('test1', 4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'message callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- unset($err['context']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test1',
- 'message' => 'my silly message',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-
- function test_valid_msgcallback_setmsgcallback()
- {
- if (!$this->_methodExists('staticPush')) {
- return;
- }
- if (!$this->_methodExists('singleton')) {
- return;
- }
- if (!$this->_methodExists('pop')) {
- return;
- }
- if (!$this->_methodExists('setContextCallback')) {
- return;
- }
- $this->stack = &PEAR_ErrorStack::singleton('test1');
- $this->stack->setMessageCallback(array(&$this, 'messagecallback'));
- $this->wasCalled = false;
- PEAR_ErrorStack::staticPush('test1', 4, 'error', array('hello' => 6));
- $this->assertTrue($this->wasCalled, 'message callback was not called!');
- $err = $this->stack->pop();
- unset($err['time']);
- unset($err['context']);
- $this->assertEquals(
- array(
- 'code' => 4,
- 'params' => array('hello' => 6),
- 'package' => 'test1',
- 'message' => 'my silly message',
- 'level' => 'error',
- ),
- $err, 'popped something else'
- );
- $err = $this->stack->pop();
- $this->assertFalse($err, 'stack not empty!');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_singleton extends PHPUnit_TestCase
-{
- /**
- * A PEAR_PackageFileManager object
- * @var object
- */
- var $packagexml;
-
- function Error_Stack_TestCase_singleton($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = new PEAR_ErrorStack('');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function test_valid_singleton()
- {
- if (!$this->_methodExists('singleton')) {
- return;
- }
- $one = &PEAR_ErrorStack::singleton('first');
- $two = &PEAR_ErrorStack::singleton('first');
- $two->testme = 2;
- $this->assertEquals(2, $two->testme, 'duh test');
- $one->testme = 4;
- $this->assertEquals(4, $one->testme, 'duh test 2');
- $this->assertEquals(4, $two->testme, 'same object test');
- }
-
- function test_invalid_singleton()
- {
- if (!$this->_methodExists('singleton')) {
- return;
- }
- $one = &PEAR_ErrorStack::singleton('first');
- $two = &PEAR_ErrorStack::singleton('second');
- $two->testme = 2;
- $this->assertEquals(2, $two->testme, 'duh test');
- $one->testme = 4;
- $this->assertEquals(4, $one->testme, 'duh test 2');
- $this->assertEquals(2, $two->testme, 'not same object test');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * API Unit tests for PEAR_ErrorStack package.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
- * @author Greg Beaver
- * @package PEAR_ErrorStack
- */
-
-/**
- * @package PEAR_ErrorStack
- */
-
-class Error_Stack_TestCase_staticGetErrors extends PHPUnit_TestCase
-{
-
- function Error_Stack_TestCase_staticGetErrors($name)
- {
- $this->PHPUnit_TestCase($name);
- }
-
- function setUp()
- {
- error_reporting(E_ALL);
- $this->errorOccured = false;
- set_error_handler(array(&$this, 'errorHandler'));
- $this->stack = &PEAR_ErrorStack::singleton('test');
- $s = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
- $s->pushCallback(array('PEAR_ErrorStack', '_handleError'));
- }
-
- function tearDown()
- {
- unset($this->stack);
- unset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON']);
- }
-
-
- function _stripWhitespace($str)
- {
- return preg_replace('/\\s+/', '', $str);
- }
-
- function _methodExists($name)
- {
- if (in_array(strtolower($name), get_class_methods($this->stack))) {
- return true;
- }
- $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->stack));
- return false;
- }
-
- function errorHandler($errno, $errstr, $errfile, $errline) {
- //die("$errstr in $errfile at line $errline: $errstr");
- $this->errorOccured = true;
- $this->assertTrue(false, "$errstr at line $errline, $errfile");
- }
-
- function returnsignore($err)
- {
- $this->wasCalled = true;
- return PEAR_ERRORSTACK_IGNORE;
- }
-
- function test_none()
- {
- if (!$this->_methodExists('staticGetErrors')) {
- return;
- }
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors());
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors(true));
- }
-
- function test_normal()
- {
- if (!$this->_methodExists('staticGetErrors')) {
- return;
- }
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors());
- $this->stack->push(1);
- $this->stack->push(2, 'warning');
- $this->stack->push(3, 'foo');
- $ret = PEAR_ErrorStack::staticGetErrors();
- for ($i= 0; $i < 3; $i++) {
- unset($ret['test'][$i]['time']);
- unset($ret['test'][$i]['context']);
- }
- $this->assertEquals(
- array( 'test' => array(
- array('code' => 3,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'foo',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- )), $ret, 'incorrect errors, non-purge');
- $ret = PEAR_ErrorStack::staticGetErrors(true);
- for ($i= 0; $i < 3; $i++) {
- unset($ret['test'][$i]['time']);
- unset($ret['test'][$i]['context']);
- }
- $this->assertEquals(
- array( 'test' => array(
- array('code' => 3,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'foo',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- )), $ret, 'incorrect errors, purge');
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors());
- }
-
- function test_merge()
- {
- if (!$this->_methodExists('staticGetErrors')) {
- return;
- }
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors());
- $this->stack->push(1);
- for($i=0;$i<10000;$i++);
- $this->stack->push(2, 'warning');
- for($i=0;$i<10000;$i++);
- PEAR_ErrorStack::staticPush('fronk', 3, 'foo');
- $ret = PEAR_ErrorStack::staticGetErrors(true, false, true);
- for ($i= 0; $i < 3; $i++) {
- unset($ret[$i]['time']);
- unset($ret[$i]['context']);
- }
- $this->assertEquals(
- array(
- array('code' => 3,
- 'params' => array(),
- 'package' => 'fronk',
- 'level' => 'foo',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- ), $ret, 'incorrect errors, non-purge');
- $test = PEAR_ErrorStack::staticGetErrors();
- $this->assertEquals(array(), $test, 'normal array');
- }
-
- function _sortErrorsRev($a, $b)
- {
- $this->wasCalled = true;
- if ($a['time'] == $b['time']) {
- return 0;
- }
- if ($a['time'] < $b['time']) {
- return -1;
- }
- return 1;
- }
-
- function test_merge_sortfunc()
- {
- if (!$this->_methodExists('staticGetErrors')) {
- return;
- }
- $this->assertEquals(array(), PEAR_ErrorStack::staticGetErrors());
- $this->stack->push(1);
- for($i=0;$i<10000;$i++);
- $this->stack->push(2, 'warning');
- for($i=0;$i<10000;$i++);
- PEAR_ErrorStack::staticPush('fronk', 3, 'foo');
- $this->wasCalled = false;
- $ret = PEAR_ErrorStack::staticGetErrors(true, false, true, array(&$this, '_sortErrorsRev'));
- $this->assertTrue($this->wasCalled, '_sortErrorsRev not called!');
- for ($i= 0; $i < 3; $i++) {
- unset($ret[$i]['time']);
- unset($ret[$i]['context']);
- }
- $this->assertEquals(
- array(
- array('code' => 1,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'error',
- 'message' => ''),
- array('code' => 2,
- 'params' => array(),
- 'package' => 'test',
- 'level' => 'warning',
- 'message' => ''),
- array('code' => 3,
- 'params' => array(),
- 'package' => 'fronk',
- 'level' => 'foo',
- 'message' => ''),
- ), $ret, 'incorrect errors, non-purge');
- $test = PEAR_ErrorStack::staticGetErrors();
- $this->assertEquals(array(), $test, 'normal array');
- }
-}
-
-?>
+++ /dev/null
-<?php
-
-/**
- * Provides a nice HTML output for PHPUnit suite tests.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org>
- * @package HTML_CSS
- */
-
-class HTML_TestListener extends PHPUnit_TestListener {
-
- function HTML_TestListener() {
-
-$report = <<<EOS
-<table cellspacing="1" cellpadding="1" border="0" width="90%" align="center" class="details">
-<tr><th>Class</th><th>Function</th><th>Success</th><th>Meta-result</th></tr>
-EOS;
- echo $report;
- }
-
- function addError(&$test, &$t) {
- $this->_errors += 1;
- }
-
- function addFailure(&$test, &$t) {
- $this->_fails += 1;
- }
-
- function endTest(&$test) {
- /* Report both the test result and, for this special situation
- where some tests are expected to fail, a "meta" test result
- which indicates whether the test result matches the
- expected result.
- */
- $expect_failure = preg_match('/fail/i', $test->getName());
- $test_passed = ($this->_fails == 0 && $this->_errors == 0);
-
- if ($this->_errors > 0) {
- $outcome = "<span class=\"Error\">ERROR</span>";
- } else if ($this->_fails > 0) {
- $outcome = "<span class=\"Failure\">FAIL</span>";
- } else {
- $outcome = "<span class=\"Pass\">OK</span>";
- }
- if ($this->_errors > 0) {
- $meta_outcome = '<span class="Unknown">unknown</span>';
- } else {
- $meta_outcome = ($expect_failure xor $test_passed)
- ? '<span class="Expected">as expected</span>'
- : '<span class="Unexpected">UNEXPECTED</span>';
- }
- printf("<td>$outcome</td><td>$meta_outcome</td></tr>");
- }
-
- function startTest(&$test) {
- $this->_fails = 0;
- $this->_errors = 0;
- printf("<tr><td>%s </td><td>%s </td>", get_class($test), $test->getName());
- }
-
-
-}
-?>
\ No newline at end of file
+++ /dev/null
-<?php
-
-/**
- * TestUnit runs a TestSuite and returns a TestResult object.
- * And more than PHPUnit attach a listener to TestResult.
- *
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org>
- * @package HTML_CSS
- */
-
-require_once 'PHPUnit.php';
-
-class TestUnit extends PHPUnit {
-
- function &run(&$suite, $listener) {
- $result = new TestResult();
- $result->addListener($listener);
- $suite->run($result);
-
- return $result;
- }
-}
-
-class TestResult extends PHPUnit_TestResult {
-
- /* report result of test run */
- function report() {
- echo "</TABLE>";
-
- $nRun = $this->runCount();
- $nErrors = $this->errorCount();
- $nFailures = $this->failureCount();
- echo "<h2>Summary</h2>";
-
- printf("<p>%s test%s run.<br>", $nRun, ($nRun > 1) ? 's' : '');
- printf("%s error%s.<br>\n", $nErrors, ($nErrors > 1) ? 's' : '');
- printf("%s failure%s.<br>\n", $nFailures, ($nFailures > 1) ? 's' : '');
- if ($nFailures > 0) {
- echo "<h2>Failure Details</h2>";
- print("<ol>\n");
- $failures = $this->failures();
- while (list($i, $failure) = each($failures)) {
- $failedTest = $failure->failedTest();
- printf("<li>%s\n", $failedTest->getName() );
- print("<ul>");
- printf("<li>%s\n", $failure->thrownException() );
- print("</ul>");
- }
- print("</ol>\n");
- }
- }
-
-}
-?>
+++ /dev/null
-<?php
-// $Revision$
-/**
- * Basic regression test for PEAR_ErrorStack::getFileLine()
- *
- * phpUnit can't test global code properly because of its design, so I designed
- * this instead
- * @package PEAR_ErrorStack
- * @subpackage tests
- * @author Greg Beaver <cellog@php.net>
- */
-require_once 'PEAR/ErrorStack.php';
-$result = array(
-'passed' => array(),
-'failed' => array()
-);
-$stack = &PEAR_ErrorStack::singleton('test');
-$testNumber = 1;
-// test basic global file/line
-$stack->push(3);
-$testline = __LINE__ - 1;
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'function' => 'include_once',
- 'line' => $testline));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test basic in-function file/line #2
-function testfunc() { global $stack, $testline;
-$stack->push(3);
-$testline = __LINE__ - 1;
-}
-testfunc();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'testfunc'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test basic in-static method file/line #3
-class stclass {
-function stfunc() { global $stack, $testline;
-$stack->push(3);
-$testline = __LINE__ - 1;
-}
-}
-stclass::stfunc();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'stfunc',
- 'class' => 'stclass'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test basic in-method file/line #4
-class normalclass {
-function normalfunc() { global $stack, $testline;
-$stack->push(3);
-$testline = __LINE__ - 1;
-}
-}
-$z = new normalclass;
-$z->normalfunc();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'normalfunc',
- 'class' => 'normalclass'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test global eval file/line #5
-eval('$stack->push(3);');
-$testline = __LINE__ - 1;
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'function' => 'include_once',
- 'line' => $testline));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-function eval file/line #6
-function test2() {
- global $testline, $stack;
-eval('$stack->push(3);');
-$testline = __LINE__ - 1;
-}
-test2();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test2'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-static method eval file/line #7
-class test3 {
-function test3() {
- global $testline, $stack;
-eval('$stack->push(3);');
-$testline = __LINE__ - 1;
-}
-}
-test3::test3();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test3',
- 'class' => 'test3'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-method eval file/line #8
-class test4 {
-function test4() {
- global $testline, $stack;
-eval('$stack->push(3);');
-$testline = __LINE__ - 1;
-}
-}
-$z = new test4;
-$z->test4();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test4',
- 'class' => 'test4'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test global create_function file/line #9
-$a = create_function('', '$GLOBALS["stack"]->push(3);');
-$testline = __LINE__ - 1;
-$a();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-function create_function file/line #10
-function test7() { global $a;
-$a();
-}
-test7();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-static method create_function file/line #11
-class test8 {
-function test8() { global $a;
-$a();
-}
-}
-test8::test8();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test in-method create_function file/line #12
-class test9 {
-function test9() { global $a;
-$a();
-}
-}
-$z = new test9;
-$z->test9();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$result['number'] = $testNumber;
-
-$testNumber++;
-// test static basic global file/line #13
-PEAR_ErrorStack::staticPush('test', 3);
-$testline = __LINE__ - 1;
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'function' => 'include_once',
- 'line' => $testline));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static basic in-function file/line #14
-function testfunc2() { global $stack, $testline;
-PEAR_ErrorStack::staticPush('test', 3);
-$testline = __LINE__ - 1;
-}
-testfunc2();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'testfunc2'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static basic in-static method file/line #15
-class stclass2 {
-function stfunc() { global $stack, $testline;
-PEAR_ErrorStack::staticPush('test', 3);
-$testline = __LINE__ - 1;
-}
-}
-stclass2::stfunc();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'stfunc',
- 'class' => 'stclass2'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static basic in-method file/line #16
-class normalclass2 {
-function normalfunc() { global $stack, $testline;
-PEAR_ErrorStack::staticPush('test', 3);
-$testline = __LINE__ - 1;
-}
-}
-$z = new normalclass2;
-$z->normalfunc();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'normalfunc',
- 'class' => 'normalclass2'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static global eval file/line #17
-eval('PEAR_ErrorStack::staticPush(\'test\', 3);');
-$testline = __LINE__ - 1;
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'function' => 'include_once',
- 'line' => $testline));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-function eval file/line #18
-function test22() {
- global $testline, $stack;
-eval('PEAR_ErrorStack::staticPush("test", 3);');
-$testline = __LINE__ - 1;
-}
-test22();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test22'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-static method eval file/line #19
-class test32 {
-function test3() {
- global $testline, $stack;
-eval('PEAR_ErrorStack::staticPush(\'test\',3);');
-$testline = __LINE__ - 1;
-}
-}
-test32::test3();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test3',
- 'class' => 'test32'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-method eval file/line #20
-class test42 {
-function test4() {
- global $testline, $stack;
-eval('PEAR_ErrorStack::staticPush(\'test\',3);');
-$testline = __LINE__ - 1;
-}
-}
-$z = new test42;
-$z->test4();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'test4',
- 'class' => 'test42'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static global create_function file/line #21
-$a = create_function('', 'PEAR_ErrorStack::staticPush("test",3);');
-$testline = __LINE__ - 1;
-$a();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-function create_function file/line #22
-function test72() { global $a;
-$a();
-}
-test72();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-static method create_function file/line #23
-class test82 {
-function test8() { global $a;
-$a();
-}
-}
-test82::test8();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$testNumber++;
-// test static in-method create_function file/line #24
-class test92 {
-function test9() { global $a;
-$a();
-}
-}
-$z = new test92;
-$z->test9();
-
-$ret = $stack->pop();
-$diff = array_diff_assoc($ret['context'],
-array('file' => __FILE__,
- 'line' => $testline,
- 'function' => 'create_function() code'));
-
-if ($diff !== array()) {
- $result['failed'][$testNumber] = $diff;
-} else {
- $result['passed'][$testNumber] = true;
-}
-
-$result['number'] = $testNumber;
-
-return $result;
-/**
- * Utility function
- */
-function isIncludeable($path)
-{
- if (file_exists(realpath($path)) && is_readable(realpath($path))) {
- return true;
- }
- foreach (explode(PATH_SEPARATOR, get_include_path()) as $prepend) {
- $test = realpath($prepend . DIRECTORY_SEPARATOR . $path);
- if (file_exists($test) && is_readable($test)) {
- return true;
- }
- }
-}
-/**
- * Mock PHPUnit object
- */
-class Mock_PHPUnit {
- var $name;
- function getName()
- {
- return 'base regression test ' . $this->name;
- }
-}
-?>
\ No newline at end of file
+++ /dev/null
-/* $Id$ */
-
-body {
- font:normal 68% verdana,arial,helvetica;
- color:#000000;
-}
-table tr td, table tr th {
- font-size: 68%;
-}
-table.details tr th{
- font-weight: bold;
- text-align:left;
- background:#a6caf0;
-}
-table.details tr{
- background:#eeeee0;
-}
-
-p {
- line-height:1.5em;
- margin-top:0.5em; margin-bottom:1.0em;
-}
-h1 {
- margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
-}
-h2 {
- margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
-}
-h3 {
- margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
-}
-h4 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
-}
-h5 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
-}
-h6 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
-}
-.Error {
- font-weight:bold; color:red;
-}
-.Failure, .Unexpected {
- background:#ff0000; font-weight:bold; color:black;
-}
-.Unknown {
- background:#ffff00; font-weight:bold; color:black;
-}
-.Pass, .Expected {
- background:#00ff00; font-weight:bold; color:black;
-}
-.Properties {
- text-align:right;
-}
-
-CODE.expected {
- color: green; background: none; font-weight: normal;
-}
-CODE.actual {
- color: red; background: none; font-weight: normal;
-}
-.typeinfo {
- color: gray;
-}
+++ /dev/null
-<?php
-
-/**
- * HTML output for PHPUnit suite tests.
- *
- * Copied for PEAR_PackageFileManager from HTML_CSS
- * @version $Id$
- * @author Laurent Laville <pear@laurent-laville.org>
- * @package HTML_CSS
- */
-
-require_once 'TestUnit.php';
-require_once 'HTML_TestListener.php';
-require_once 'PEAR/ErrorStack.php';
-
-$title = 'PhpUnit test run, PEAR_ErrorStack package';
-?>
-<html>
-<head>
-<title><?php echo $title; ?></title>
-<link rel="stylesheet" href="stylesheet.css" type="text/css" />
-</head>
-<body>
-<h1><?php echo $title; ?></h1>
- <p>
- This page runs all the phpUnit self-tests, and produces nice HTML output.
- </p>
- <p>
- Unlike typical test run, <strong>expect many test cases to
- fail</strong>. Exactly those with <code>pass</code> in their name
- should succeed.
- </p>
- <p>
- For each test we display both the test result -- <span
- class="Pass">ok</span>, <span class="Failure">FAIL</span>, or
- <span class="Error">ERROR</span> -- and also a meta-result --
- <span class="Expected">as expected</span>, <span
- class="Unexpected">UNEXPECTED</span>, or <span
- class="Unknown">unknown</span> -- that indicates whether the
- expected test result occurred. Although many test results will
- be 'FAIL' here, all meta-results should be 'as expected', except
- for a few 'unknown' meta-results (because of errors) when running
- in PHP3.
- </p>
-
-<h2>Tests</h2>
- <?php
- $testcases = array(
- 'Error_Stack_TestCase_singleton',
- 'Error_Stack_TestCase_pushpop',
- 'Error_Stack_TestCase_pushpopstatic',
- 'Error_Stack_TestCase_pushpopcallback',
- 'Error_Stack_TestCase_getErrorMessage',
- 'Error_Stack_TestCase_getErrorMessageTemplate',
- 'Error_Stack_TestCase_getErrors',
- 'Error_Stack_TestCase_staticGetErrors',
- );
-define('PEAR_LOG_EMERG', 0); /** System is unusable */
-define('PEAR_LOG_ALERT', 1); /** Immediate action required */
-define('PEAR_LOG_CRIT', 2); /** Critical conditions */
-define('PEAR_LOG_ERR', 3); /** Error conditions */
-define('PEAR_LOG_WARNING', 4); /** Warning conditions */
-define('PEAR_LOG_NOTICE', 5); /** Normal but significant */
-define('PEAR_LOG_INFO', 6); /** Informational */
-define('PEAR_LOG_DEBUG', 7); /** Debug-level messages */
-/**
-* Mock Log object
-*/
-class BurfLog {
- var $testcase;
- var $method;
- var $expect = array();
- function setTestCase(&$testcase)
- {
- $this->testcase = &$testcase;
- }
-
- function curMethod($method)
- {
- $this->method = $method;
- }
-
- function pushExpect($message, $priority, $errarray)
- {
- unset($errarray['time']);
- unset($errarray['context']);
- array_push($this->expect, array($message, $priority, $errarray));
- }
-
- function clearExpect()
- {
- $this->expect = array();
- }
-
- function log($message, $priority, $errarray)
- {
- $this->testcase->wasLogged = true;
- if (!is_a($this->testcase, 'PHPUnit_TestCase')) {
- trigger_error('ERROR: burflog never set up', E_USER_ERROR);
- return;
- }
- if (!isset($this->method)) {
- $this->testcase->assertFalse(true, 'ERROR: burflog never set up');
- return;
- }
- if (!count($this->expect)) {
- $this->testcase->assertFalse(true, "method $this->method: logged, but no log expected");
- $this->testcase->assertFalse(true, "method $this->method: log message = $message");
- $this->testcase->assertFalse(true, "method $this->method: log priority = $priority");
- return;
- }
- unset($errarray['time']);
- unset($errarray['context']);
- $expect = array_pop($this->expect);
- $this->testcase->assertEquals($expect[0], $message, "method $this->method: wrong message");
- $this->testcase->assertEquals($expect[1], $priority, "method $this->method: wrong priority");
- $this->testcase->assertEquals($expect[2], $errarray, "method $this->method: wrong errarray");
- }
-}
-
- $suite = new PHPUnit_TestSuite();
-
- foreach ($testcases as $testcase) {
- include_once $testcase . '.php';
- $suite->addTestSuite($testcase);
- }
-
- $listener = new HTML_TestListener();
- $finalresult = TestUnit::run($suite, $listener);
- $results = include_once dirname(__FILE__) . '/base_regression.php';
- $num = $results['number'];
- $failed = $results['failed'];
- $passed = $results['passed'];
- for ($i = 1; $i <= $num; $i++) {
- $bla = new Mock_PHPUnit;
- $bla->name = $i;
- $listener->startTest($bla);
- if (isset($failed[$i])) {
- $listener->addFailure($bla, $failed[$i]);
- $finalresult->addFailure($bla, $a = 'context had additional ' . serialize($failed[$i]));
- }
- $listener->endTest($bla);
- }
-
- $finalresult->removeListener($listener);
- // hack in the base regression test count
- $finalresult->_runTests += count($results['failed']) + count($results['passed']);
- $finalresult->report();
-
- ?>
-</body>
-</html>
+++ /dev/null
-<?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.0</version>
- <date>2003-12-11</date>
- <state>stable</state>
- <notes>
- second package
- </notes>
- <filelist>
- <dir name="/" baseinstalldir="test" role="php">
- <dir name="multiplepackages" role="php">
- <file>pkg2file.php</file>
- </dir>
- <dir name="nestedroot" role="php">
- <file>rootfile.php</file>
- <dir name="emptydir" role="php">
- <dir name="nesteddir" role="php">
- <file>nestedfile.php</file>
- <file>doesntexist.php</file>
- </dir>
- </dir>
- </dir>
- </dir>
- </filelist>
- </release>
- </package>
+++ /dev/null
-<?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.0</version>
- <date>2003-12-11</date>
- <state>stable</state>
- <notes>
- first package
- </notes>
- <filelist>
- <dir name="/" baseinstalldir="test" role="php">
- <dir name="multiplepackages" role="php">
- <file>pkg1file.php</file>
- </dir>
- <dir name="pkg1" role="php">
- <file>randomfile.php</file>
- </dir>
- </dir>
- </filelist>
- </release>
- </package>
+++ /dev/null
-<?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.0</version>
- <date>2003-12-11</date>
- <state>stable</state>
- <notes>
- second package
- </notes>
- <filelist>
- <dir name="/" baseinstalldir="test" role="php">
- <dir name="multiplepackages" role="php">
- <file>pkg2file.php</file>
- </dir>
- <dir name="nestedroot" role="php">
- <file>rootfile.php</file>
- <dir name="emptydir" role="php">
- <dir name="nesteddir" role="php">
- <file>nestedfile.php</file>
- </dir>
- </dir>
- </dir>
- </dir>
- </filelist>
- </release>
- </package>