Hello community,

here is the log from the commit of package php5-pear-Horde_Test for 
openSUSE:Factory
checked in at Tue Aug 16 11:47:04 CEST 2011.



--------
--- php5-pear-Horde_Test/php5-pear-Horde_Test.changes   2011-06-15 
16:06:54.000000000 +0200
+++ 
/mounts/work_src_done/STABLE/php5-pear-Horde_Test/php5-pear-Horde_Test.changes  
    2011-08-15 00:19:39.000000000 +0200
@@ -1,0 +2,7 @@
+Sun Aug 14 22:19:55 UTC 2011 - [email protected]
+
+- version 1.1.2
+- [gwr] Improve detection of the lib directory.
+- [gwr] Extract the setup pieces we do in the AllTests helper and heed the 
Autoload.php file of a test suite.
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  Horde_Test-1.1.1.tgz

New:
----
  Horde_Test-1.1.2.tgz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ php5-pear-Horde_Test.spec ++++++
--- /var/tmp/diff_new_pack.YwIuL2/_old  2011-08-16 11:46:17.000000000 +0200
+++ /var/tmp/diff_new_pack.YwIuL2/_new  2011-08-16 11:46:17.000000000 +0200
@@ -22,9 +22,9 @@
 Summary:        PEAR: Horde testing base classes
 
 Name:           php5-pear-Horde_Test
-Version:        1.1.1
+Version:        1.1.2
 Release:        1
-License:        LGPL-3.0+
+License:        LGPLv2.1
 Group:          Development/Libraries/PHP
 Source0:        http://pear.horde.org/get/Horde_Test-%{version}.tgz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ Horde_Test-1.1.1.tgz -> Horde_Test-1.1.2.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/AllTests.php 
new/Horde_Test-1.1.1/lib/Horde/Test/AllTests.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/AllTests.php    2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/AllTests.php    1970-01-01 
01:00:00.000000000 +0100
@@ -1,99 +0,0 @@
-<?php
-/**
- * Horde base test suite
- *
- * @author     Jan Schneider <[email protected]>
- * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
- * @category   Horde
- * @package    Test
- * @subpackage UnitTests
- */
-
-if (!defined('PHPUnit_MAIN_METHOD')) {
-    define('PHPUnit_MAIN_METHOD', 'Horde_Test_AllTests::main');
-}
-
-require_once 'PHPUnit/Autoload.php';
-
-/**
- * @package    Test
- * @subpackage UnitTests
- */
-class Horde_Test_AllTests
-{
-    /** @todo: Use protected properties and LSB with PHP 5.3. */
-    private static $_file = __FILE__;
-    private static $_package = 'Horde_Test';
-
-    /**
-     * Main entry point for running the suite.
-     */
-    public static function main($package = null, $file = null)
-    {
-        if ($package) {
-            self::$_package = $package;
-        }
-        if ($file) {
-            self::$_file = $file;
-        }
-        PHPUnit_TextUI_TestRunner::run(self::suite());
-    }
-
-    /**
-     * Initialize the test suite class.
-     *
-     * @param string $package The name of the package tested by this suite.
-     * @param string $file    The path of the AllTests class.
-     *
-     * @return NULL
-     */
-    public static function init($package, $file)
-    {
-        self::$_package = $package;
-        self::$_file = $file;
-    }
-
-    /**
-     * Collect the unit tests of this directory into a new suite.
-     *
-     * @return PHPUnit_Framework_TestSuite The test suite.
-     */
-    public static function suite()
-    {
-        // Catch strict standards
-        error_reporting(E_ALL | E_STRICT);
-
-        // Set up autoload
-        $basedir = dirname(self::$_file);
-        set_include_path($basedir . '/../../../lib' . PATH_SEPARATOR . 
get_include_path());
-        require_once 'Horde/Test/Autoload.php';
-
-        $suite = new PHPUnit_Framework_TestSuite('Horde Framework - ' . 
self::$_package);
-        $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
-
-        foreach (new RecursiveIteratorIterator(new 
RecursiveDirectoryIterator($basedir)) as $file) {
-            if ($file->isFile() && preg_match('/Test.php$/', 
$file->getFilename())) {
-                $pathname = $file->getPathname();
-                if (require $pathname) {
-                    $class = str_replace(DIRECTORY_SEPARATOR, '_',
-                                         
preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
-                    try {
-                        $suite->addTestSuite(self::$_package . '_' . $class);
-                    } catch (InvalidArgumentException $e) {
-                        throw new Horde_Test_Exception(
-                            sprintf(
-                                'Failed adding test suite "%s" from file "%s": 
%s',
-                                self::$_package . '_' . $class,
-                                $pathname,
-                                $e->getMessage()
-                            )
-                        );
-                    }
-                }
-            }
-        }
-
-        return $suite;
-    }
-
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Application.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Application.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Application.php 2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Application.php 1970-01-01 
01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-<?php
-/**
- * A test helper for unit testing Horde applications.
- *
- * PHP version 5
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-
-/**
- * A test helper for unit testing Horde applications.
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-class Horde_Test_Application extends Horde_Test_Case
-{
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Autoload.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Autoload.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Autoload.php    2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Autoload.php    1970-01-01 
01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-<?php
-/**
- * Reduced Horde Autoloader for test suites.
- *
- * @author     Jan Schneider <[email protected]>
- * @author     Gunnar Wrobel <[email protected]>
- * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
- * @category   Horde
- * @package    Test
- * @subpackage UnitTests
- */
-$autoloaders = spl_autoload_functions();
-if (!empty($autoloaders)) {
-    /**
-     * Ignore autoloaders which are incapable of loading Horde
-     * classes (e.g. PHPUnit >= 3.5.0)
-     */
-    $autoloaders = array_diff($autoloaders, array('phpunit_autoload'));
-}
-if (empty($autoloaders)) {
-    $mapping = '';
-    if (!empty($mappings)) {
-        foreach ($mappings as $prefix => $path) {
-            $mapping .= 'if ($filename == "' . $prefix . '") {'
-                . '  $filename = "' . $path . '$filename";'
-                . '}';
-            $mapping .= 'if (substr($filename, 0, ' . strlen($prefix) . ') == 
"' . $prefix . '") {'
-                . '  $filename = substr($filename, ' . strlen($prefix) . ');'
-                . '  $filename = "' . $path . '$filename";'
-                . '}';
-        }
-        unset($mappings);
-    }
-    spl_autoload_register(
-        create_function(
-            '$class',
-            '$filename = str_replace(array(\'::\', \'_\'), \'/\', $class);'
-            . $mapping
-            . '$err_mask = error_reporting() & ~E_WARNING;'
-            . '$oldErrorReporting = error_reporting($err_mask);'
-            . 'include "$filename.php";'
-            . 'error_reporting($oldErrorReporting);'
-        )
-    );
-}
-
-unset($autoloaders, $mapping);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Case.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Case.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Case.php        2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Case.php        1970-01-01 
01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-<?php
-class Horde_Test_Case extends PHPUnit_Framework_TestCase
-{
-    /**
-     * Useful shorthand if you are mocking a class with a private constructor
-     */
-    public function getMockSkipConstructor($className, array $methods = 
array(), array $arguments = array(), $mockClassName = '')
-    {
-        return $this->getMock($className, $methods, $arguments, 
$mockClassName, /* $callOriginalConstructor */ false);
-    }
-
-    /**
-     * Helper method for loading test configuration from a file.
-     *
-     * The configuration can be specified by an environment variable. If the
-     * variable content is a file name, the configuration is loaded from the
-     * file. Otherwise it's assumed to be a json encoded configuration hash. If
-     * the environment variable is not set, the method tries to load a conf.php
-     * file from the same directory as the test case.
-     *
-     * @param string $env     An environment variable name.
-     * @param array $default  Some default values that are merged into the
-     *                        configuration if specified as a json hash.
-     *
-     * @return mixed  The value of the configuration file's $conf variable, or
-     *                null.
-     */
-    static public function getConfig($env, $path = null, $default = array())
-    {
-        $config = getenv($env);
-        if ($config) {
-            $json = json_decode($config, true);
-            if ($json) {
-                return Horde_Array::replaceRecursive($default, $json);
-            }
-        } else {
-            if (!$path) {
-                $backtrace = new Horde_Support_Backtrace();
-                $caller = $backtrace->getCurrentContext();
-                $path = dirname($caller['file']);
-            }
-            $config = $path . '/conf.php';
-        }
-
-        if (file_exists($config)) {
-            require $config;
-            return $conf;
-        }
-
-        return null;
-    }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Exception.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Exception.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Exception.php   2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Exception.php   1970-01-01 
01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-<?php
-/**
- * The exception specific to this package.
- *
- * PHP version 5
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-
-/**
- * The exception specific to this package.
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-class Horde_Test_Exception extends Horde_Exception_Wrapped
-{
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Functional.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Functional.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Functional.php  2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Functional.php  1970-01-01 
01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-<?php
-class Horde_Test_Functional extends Horde_Test_Case
-{
-    /**
-     * Test two XML strings for equivalency (e.g., identical up to reordering 
of
-     * attributes).
-     */
-    public function assertDomEquals($expected, $actual, $message = null)
-    {
-        $expectedDom = new DOMDocument();
-        $expectedDom->loadXML($expected);
-
-        $actualDom = new DOMDocument();
-        $actualDom->loadXML($actual);
-
-        $this->assertEquals($expectedDom->saveXML(), $actualDom->saveXML(), 
$message);
-    }
-
-    /**
-     * Test two HTML strings for equivalency (e.g., identical up to reordering
-     * of attributes).
-     */
-    public function assertHtmlDomEquals($expected, $actual, $message = null)
-    {
-        $expectedDom = new DOMDocument();
-        $expectedDom->loadHTML($expected);
-
-        $actualDom = new DOMDocument();
-        $actualDom->loadHTML($actual);
-
-        $this->assertEquals($expectedDom->saveHTML(), $actualDom->saveHTML(), 
$message);
-    }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Log.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Log.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Log.php 2011-06-14 14:55:55.000000000 
+0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Log.php 1970-01-01 01:00:00.000000000 
+0100
@@ -1,118 +0,0 @@
-<?php
-/**
- * Provides utilities to test for log output.
- *
- * PHP version 5
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-
-/**
- * Provides utilities to test for log output.
- *
- * Copyright 2011 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license instorageion (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @since Horde_Test 1.1.0
- *
- * @category Horde
- * @package  Test
- * @author   Gunnar Wrobel <[email protected]>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Test
- */
-class Horde_Test_Log extends Horde_Test_Case
-{
-    /**
-     * The log handler.
-     *
-     * @var Horde_Log_Handler_Base
-     */
-    private $_logHandler;
-
-    /**
-     * Returns a log handler.
-     *
-     * @return Horde_Log_Logger
-     */
-    public function getLogger()
-    {
-        if (!class_exists('Horde_Log_Logger')) {
-            $this->markTestSkipped('The "Horde_Log" package is missing!');
-        }
-        $this->_logHandler = new Horde_Log_Handler_Mock();
-        return new Horde_Log_Logger($this->_logHandler);
-    }
-
-    /**
-     * Asserts that the log contains the given number of messages.
-     *
-     * You *MUST* fetch the logger via $this->getLogger() before using this
-     * method. This will store a reference to an internal mock log handler that
-     * will later be used to analyze the log events.
-     *
-     * @param int $count The expected number of messages.
-     *
-     * @return Horde_Log_Logger
-     */
-    public function assertLogCount($count)
-    {
-        $this->assertEquals(count($this->_logHandler->events), $count);
-    }
-
-    /**
-     * Asserts that the log contains at least one message matching the 
provided string.
-     *
-     * You *MUST* fetch the logger via $this->getLogger() before using this
-     * method. This will store a reference to an internal mock log handler that
-     * will later be used to analyze the log events.
-     *
-     * @param string $message The expected log message.
-     *
-     * @return Horde_Log_Logger
-     */
-    public function assertLogContains($message)
-    {
-        $messages = array();
-        $found = false;
-        foreach ($this->_logHandler->events as $event) {
-            if (strstr($event['message'], $message) !== false) {
-                $found = true;
-                break;
-            }
-            $messages[] = $event['message'];
-        }
-        $this->assertTrue($found, sprintf("Did not find \"%s\" in [\n%s\n]", 
$message, join("\n", $messages)));
-    }
-
-    /**
-     * Asserts that the log contains at least one message matching the 
provided regular_expression.
-     *
-     * You *MUST* fetch the logger via $this->getLogger() before using this
-     * method. This will store a reference to an internal mock log handler that
-     * will later be used to analyze the log events.
-     *
-     * @param string $regular_expression The expected regular expression.
-     *
-     * @return Horde_Log_Logger
-     */
-    public function assertLogRegExp($regular_expression)
-    {
-        $messages = array();
-        $found = false;
-        foreach ($this->_logHandler->events as $event) {
-            if (preg_match($regular_expression, $event['message'], $matches) 
!== false) {
-                $found = true;
-                break;
-            }
-            $messages[] = $event['message'];
-        }
-        $this->assertTrue($found, sprintf("Did not find \"%s\" in [\n%s\n]", 
$message, join("\n", $messages)));
-    }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Stub/Cli.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Stub/Cli.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Stub/Cli.php    2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Stub/Cli.php    1970-01-01 
01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-<?php
-class Horde_Test_Stub_Cli extends Horde_Cli
-{
-    /**
-     * Displays a fatal error message.
-     *
-     * @param mixed $error  The error text to display, an exception or an
-     *                      object with a getMessage() method.
-     */
-    public function fatal($error)
-    {
-        if ($error instanceof Exception) {
-            $trace = $error;
-        } else {
-            $trace = debug_backtrace();
-        }
-        $backtrace = new Horde_Support_Backtrace($trace);
-        if (is_object($error) && method_exists($error, 'getMessage')) {
-            $error = $error->getMessage();
-        }
-        $this->writeln($this->red('===================='));
-        $this->writeln();
-        $this->writeln($this->red('Fatal Error:'));
-        $this->writeln($this->red($error));
-        $this->writeln();
-        $this->writeln((string)$backtrace);
-        $this->writeln($this->red('===================='));
-    }
-}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.1/lib/Horde/Test/Stub/Parser.php 
new/Horde_Test-1.1.1/lib/Horde/Test/Stub/Parser.php
--- old/Horde_Test-1.1.1/lib/Horde/Test/Stub/Parser.php 2011-06-14 
14:55:55.000000000 +0200
+++ new/Horde_Test-1.1.1/lib/Horde/Test/Stub/Parser.php 1970-01-01 
01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-<?php
-class Horde_Test_Stub_Parser
-extends Horde_Argv_Parser
-{
-    /**
-     * Print a usage message incorporating $msg to stderr and exit.
-     * If you override this in a subclass, it should not return -- it
-     * should either exit or raise an exception.
-     *
-     * @param string $msg
-     */
-    public function parserError($msg)
-    {
-        $this->printUsage();
-        $this->parserExit(2, sprintf("%s: error: %s\n", $this->getProgName(), 
$msg));
-    }
-
-    public function parserExit($status = 0, $msg = null)
-    {
-        if ($msg) {
-            echo $msg;
-        }
-    }
-}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/AllTests.php 
new/Horde_Test-1.1.2/lib/Horde/Test/AllTests.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/AllTests.php    1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/AllTests.php    2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,137 @@
+<?php
+/**
+ * Horde base test suite
+ *
+ * @author     Jan Schneider <[email protected]>
+ * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @category   Horde
+ * @package    Test
+ * @subpackage UnitTests
+ */
+
+if (!defined('PHPUnit_MAIN_METHOD')) {
+    define('PHPUnit_MAIN_METHOD', 'Horde_Test_AllTests::main');
+}
+
+require_once 'PHPUnit/Autoload.php';
+
+/**
+ * @package    Test
+ * @subpackage UnitTests
+ */
+class Horde_Test_AllTests
+{
+    /** @todo: Use protected properties and LSB with PHP 5.3. */
+    private static $_file = __FILE__;
+    private static $_package = 'Horde_Test';
+
+    /**
+     * Main entry point for running the suite.
+     */
+    public static function main($package = null, $file = null)
+    {
+        if ($package) {
+            self::$_package = $package;
+        }
+        if ($file) {
+            self::$_file = $file;
+        }
+        PHPUnit_TextUI_TestRunner::run(self::suite());
+    }
+
+    /**
+     * Initialize the test suite class.
+     *
+     * @param string $package The name of the package tested by this suite.
+     * @param string $file    The path of the AllTests class.
+     *
+     * @return NULL
+     */
+    public static function init($package, $file)
+    {
+        self::$_package = $package;
+        self::$_file = $file;
+    }
+
+    /**
+     * Collect the unit tests of this directory into a new suite.
+     *
+     * @return PHPUnit_Framework_TestSuite The test suite.
+     */
+    public static function suite()
+    {
+        self::setup();
+
+        $suite = new PHPUnit_Framework_TestSuite('Horde Framework - ' . 
self::$_package);
+
+        $basedir = dirname(self::$_file);
+        $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
+
+        foreach (new RecursiveIteratorIterator(new 
RecursiveDirectoryIterator($basedir)) as $file) {
+            if ($file->isFile() && preg_match('/Test.php$/', 
$file->getFilename())) {
+                $pathname = $file->getPathname();
+                if (include $pathname) {
+                    $class = str_replace(DIRECTORY_SEPARATOR, '_',
+                                         
preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
+                    try {
+                        $suite->addTestSuite(self::$_package . '_' . $class);
+                    } catch (InvalidArgumentException $e) {
+                        throw new Horde_Test_Exception(
+                            sprintf(
+                                'Failed adding test suite "%s" from file "%s": 
%s',
+                                self::$_package . '_' . $class,
+                                $pathname,
+                                $e->getMessage()
+                            )
+                        );
+                    }
+                }
+            }
+        }
+
+        return $suite;
+    }
+
+    /**
+     * Basic test suite setup. This includes error checking and autoloading.
+     *
+     * In the default situation this will set the error reporting to E_ALL |
+     * E_STRICT and pull in Horde/Test/Autoload.php as autoloading
+     * definition. If there is an Autoload.php alongside the AllTests.php
+     * represented by self::$_file, then only this file will be used.
+     *
+     * In addition the setup() call will attempt to detect the "lib" directory
+     * of the component currently under test and add it to the
+     * include_path. This ensures that the component code from the checkout is
+     * preferred over whatever else might be available in the default
+     * include_path.
+     *
+     * @return NULL
+     */
+    public static function setup()
+    {
+        // Detect component root and add "lib" to the include path.
+        for ($dirname = self::$_file, $i = 0;
+             $dirname != '/', $i < 5;
+             $dirname = dirname($dirname), $i++) {
+            if (basename($dirname) == 'test' &&
+                file_exists(dirname($dirname) . '/lib')) {
+                set_include_path(
+                    dirname($dirname) . '/lib' . PATH_SEPARATOR . 
get_include_path()
+                );
+                break;
+            }
+        }
+
+        $autoload = dirname(self::$_file) . '/Autoload.php';
+        if (!file_exists($autoload)) {
+            // Catch strict standards
+            error_reporting(E_ALL | E_STRICT);
+
+            // Set up autoload
+            require_once 'Horde/Test/Autoload.php';
+        } else {
+            require_once $autoload;
+        }
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Application.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Application.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Application.php 1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Application.php 2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,25 @@
+<?php
+/**
+ * A test helper for unit testing Horde applications.
+ *
+ * PHP version 5
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+
+/**
+ * A test helper for unit testing Horde applications.
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+class Horde_Test_Application extends Horde_Test_Case
+{
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Autoload.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Autoload.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Autoload.php    1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Autoload.php    2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Reduced Horde Autoloader for test suites.
+ *
+ * @author     Jan Schneider <[email protected]>
+ * @author     Gunnar Wrobel <[email protected]>
+ * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @category   Horde
+ * @package    Test
+ * @subpackage UnitTests
+ */
+$autoloaders = spl_autoload_functions();
+if (!empty($autoloaders)) {
+    /**
+     * Ignore autoloaders which are incapable of loading Horde
+     * classes (e.g. PHPUnit >= 3.5.0)
+     */
+    $autoloaders = array_diff($autoloaders, array('phpunit_autoload'));
+}
+if (empty($autoloaders)) {
+    $mapping = '';
+    if (!empty($mappings)) {
+        foreach ($mappings as $prefix => $path) {
+            $mapping .= 'if ($filename == "' . $prefix . '") {'
+                . '  $filename = "' . $path . '$filename";'
+                . '}';
+            $mapping .= 'if (substr($filename, 0, ' . strlen($prefix) . ') == 
"' . $prefix . '") {'
+                . '  $filename = substr($filename, ' . strlen($prefix) . ');'
+                . '  $filename = "' . $path . '$filename";'
+                . '}';
+        }
+        unset($mappings);
+    }
+    spl_autoload_register(
+        create_function(
+            '$class',
+            '$filename = str_replace(array(\'::\', \'_\'), \'/\', $class);'
+            . $mapping
+            . '$err_mask = error_reporting() & ~E_WARNING;'
+            . '$oldErrorReporting = error_reporting($err_mask);'
+            . 'include "$filename.php";'
+            . 'error_reporting($oldErrorReporting);'
+        )
+    );
+}
+
+unset($autoloaders, $mapping);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Case.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Case.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Case.php        1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Case.php        2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,52 @@
+<?php
+class Horde_Test_Case extends PHPUnit_Framework_TestCase
+{
+    /**
+     * Useful shorthand if you are mocking a class with a private constructor
+     */
+    public function getMockSkipConstructor($className, array $methods = 
array(), array $arguments = array(), $mockClassName = '')
+    {
+        return $this->getMock($className, $methods, $arguments, 
$mockClassName, /* $callOriginalConstructor */ false);
+    }
+
+    /**
+     * Helper method for loading test configuration from a file.
+     *
+     * The configuration can be specified by an environment variable. If the
+     * variable content is a file name, the configuration is loaded from the
+     * file. Otherwise it's assumed to be a json encoded configuration hash. If
+     * the environment variable is not set, the method tries to load a conf.php
+     * file from the same directory as the test case.
+     *
+     * @param string $env     An environment variable name.
+     * @param array $default  Some default values that are merged into the
+     *                        configuration if specified as a json hash.
+     *
+     * @return mixed  The value of the configuration file's $conf variable, or
+     *                null.
+     */
+    static public function getConfig($env, $path = null, $default = array())
+    {
+        $config = getenv($env);
+        if ($config) {
+            $json = json_decode($config, true);
+            if ($json) {
+                return Horde_Array::replaceRecursive($default, $json);
+            }
+        } else {
+            if (!$path) {
+                $backtrace = new Horde_Support_Backtrace();
+                $caller = $backtrace->getCurrentContext();
+                $path = dirname($caller['file']);
+            }
+            $config = $path . '/conf.php';
+        }
+
+        if (file_exists($config)) {
+            require $config;
+            return $conf;
+        }
+
+        return null;
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Exception.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Exception.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Exception.php   1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Exception.php   2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,25 @@
+<?php
+/**
+ * The exception specific to this package.
+ *
+ * PHP version 5
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+
+/**
+ * The exception specific to this package.
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+class Horde_Test_Exception extends Horde_Exception_Wrapped
+{
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Functional.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Functional.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Functional.php  1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Functional.php  2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,33 @@
+<?php
+class Horde_Test_Functional extends Horde_Test_Case
+{
+    /**
+     * Test two XML strings for equivalency (e.g., identical up to reordering 
of
+     * attributes).
+     */
+    public function assertDomEquals($expected, $actual, $message = null)
+    {
+        $expectedDom = new DOMDocument();
+        $expectedDom->loadXML($expected);
+
+        $actualDom = new DOMDocument();
+        $actualDom->loadXML($actual);
+
+        $this->assertEquals($expectedDom->saveXML(), $actualDom->saveXML(), 
$message);
+    }
+
+    /**
+     * Test two HTML strings for equivalency (e.g., identical up to reordering
+     * of attributes).
+     */
+    public function assertHtmlDomEquals($expected, $actual, $message = null)
+    {
+        $expectedDom = new DOMDocument();
+        $expectedDom->loadHTML($expected);
+
+        $actualDom = new DOMDocument();
+        $actualDom->loadHTML($actual);
+
+        $this->assertEquals($expectedDom->saveHTML(), $actualDom->saveHTML(), 
$message);
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Log.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Log.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Log.php 1970-01-01 01:00:00.000000000 
+0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Log.php 2011-07-05 14:57:19.000000000 
+0200
@@ -0,0 +1,118 @@
+<?php
+/**
+ * Provides utilities to test for log output.
+ *
+ * PHP version 5
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+
+/**
+ * Provides utilities to test for log output.
+ *
+ * Copyright 2011 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license instorageion (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @since Horde_Test 1.1.0
+ *
+ * @category Horde
+ * @package  Test
+ * @author   Gunnar Wrobel <[email protected]>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Test
+ */
+class Horde_Test_Log extends Horde_Test_Case
+{
+    /**
+     * The log handler.
+     *
+     * @var Horde_Log_Handler_Base
+     */
+    private $_logHandler;
+
+    /**
+     * Returns a log handler.
+     *
+     * @return Horde_Log_Logger
+     */
+    public function getLogger()
+    {
+        if (!class_exists('Horde_Log_Logger')) {
+            $this->markTestSkipped('The "Horde_Log" package is missing!');
+        }
+        $this->_logHandler = new Horde_Log_Handler_Mock();
+        return new Horde_Log_Logger($this->_logHandler);
+    }
+
+    /**
+     * Asserts that the log contains the given number of messages.
+     *
+     * You *MUST* fetch the logger via $this->getLogger() before using this
+     * method. This will store a reference to an internal mock log handler that
+     * will later be used to analyze the log events.
+     *
+     * @param int $count The expected number of messages.
+     *
+     * @return Horde_Log_Logger
+     */
+    public function assertLogCount($count)
+    {
+        $this->assertEquals(count($this->_logHandler->events), $count);
+    }
+
+    /**
+     * Asserts that the log contains at least one message matching the 
provided string.
+     *
+     * You *MUST* fetch the logger via $this->getLogger() before using this
+     * method. This will store a reference to an internal mock log handler that
+     * will later be used to analyze the log events.
+     *
+     * @param string $message The expected log message.
+     *
+     * @return Horde_Log_Logger
+     */
+    public function assertLogContains($message)
+    {
+        $messages = array();
+        $found = false;
+        foreach ($this->_logHandler->events as $event) {
+            if (strstr($event['message'], $message) !== false) {
+                $found = true;
+                break;
+            }
+            $messages[] = $event['message'];
+        }
+        $this->assertTrue($found, sprintf("Did not find \"%s\" in [\n%s\n]", 
$message, join("\n", $messages)));
+    }
+
+    /**
+     * Asserts that the log contains at least one message matching the 
provided regular_expression.
+     *
+     * You *MUST* fetch the logger via $this->getLogger() before using this
+     * method. This will store a reference to an internal mock log handler that
+     * will later be used to analyze the log events.
+     *
+     * @param string $regular_expression The expected regular expression.
+     *
+     * @return Horde_Log_Logger
+     */
+    public function assertLogRegExp($regular_expression)
+    {
+        $messages = array();
+        $found = false;
+        foreach ($this->_logHandler->events as $event) {
+            if (preg_match($regular_expression, $event['message'], $matches) 
!== false) {
+                $found = true;
+                break;
+            }
+            $messages[] = $event['message'];
+        }
+        $this->assertTrue($found, sprintf("Did not find \"%s\" in [\n%s\n]", 
$message, join("\n", $messages)));
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Stub/Cli.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Stub/Cli.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Stub/Cli.php    1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Stub/Cli.php    2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,29 @@
+<?php
+class Horde_Test_Stub_Cli extends Horde_Cli
+{
+    /**
+     * Displays a fatal error message.
+     *
+     * @param mixed $error  The error text to display, an exception or an
+     *                      object with a getMessage() method.
+     */
+    public function fatal($error)
+    {
+        if ($error instanceof Exception) {
+            $trace = $error;
+        } else {
+            $trace = debug_backtrace();
+        }
+        $backtrace = new Horde_Support_Backtrace($trace);
+        if (is_object($error) && method_exists($error, 'getMessage')) {
+            $error = $error->getMessage();
+        }
+        $this->writeln($this->red('===================='));
+        $this->writeln();
+        $this->writeln($this->red('Fatal Error:'));
+        $this->writeln($this->red($error));
+        $this->writeln();
+        $this->writeln((string)$backtrace);
+        $this->writeln($this->red('===================='));
+    }
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Horde_Test-1.1.2/lib/Horde/Test/Stub/Parser.php 
new/Horde_Test-1.1.2/lib/Horde/Test/Stub/Parser.php
--- old/Horde_Test-1.1.2/lib/Horde/Test/Stub/Parser.php 1970-01-01 
01:00:00.000000000 +0100
+++ new/Horde_Test-1.1.2/lib/Horde/Test/Stub/Parser.php 2011-07-05 
14:57:19.000000000 +0200
@@ -0,0 +1,24 @@
+<?php
+class Horde_Test_Stub_Parser
+extends Horde_Argv_Parser
+{
+    /**
+     * Print a usage message incorporating $msg to stderr and exit.
+     * If you override this in a subclass, it should not return -- it
+     * should either exit or raise an exception.
+     *
+     * @param string $msg
+     */
+    public function parserError($msg)
+    {
+        $this->printUsage();
+        $this->parserExit(2, sprintf("%s: error: %s\n", $this->getProgName(), 
$msg));
+    }
+
+    public function parserExit($status = 0, $msg = null)
+    {
+        if ($msg) {
+            echo $msg;
+        }
+    }
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package.xml new/package.xml
--- old/package.xml     2011-06-14 14:55:55.000000000 +0200
+++ new/package.xml     2011-07-05 14:57:19.000000000 +0200
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.9.1" version="2.0" 
xmlns="http://pear.php.net/dtd/package-2.0"; 
xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 
http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 
http://pear.php.net/dtd/package-2.0.xsd";>
+<package packagerversion="1.9.3" version="2.0" 
xmlns="http://pear.php.net/dtd/package-2.0"; 
xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 
http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 
http://pear.php.net/dtd/package-2.0.xsd";>
  <name>Horde_Test</name>
  <channel>pear.horde.org</channel>
  <summary>Horde testing base classes</summary>
@@ -16,10 +16,10 @@
   <email>[email protected]</email>
   <active>yes</active>
  </lead>
- <date>2011-06-14</date>
- <time>14:55:55</time>
+ <date>2011-07-05</date>
+ <time>14:57:19</time>
  <version>
-  <release>1.1.1</release>
+  <release>1.1.2</release>
   <api>1.1.0</api>
  </version>
  <stability>
@@ -28,13 +28,14 @@
  </stability>
  <license uri="http://www.gnu.org/copyleft/lesser.html";>LGPL</license>
  <notes>
-* [jan] Fix Horde_Text_Exception extending the wrong class name.
+* [gwr] Improve detection of the lib directory.
+* [gwr] Extract the setup pieces we do in the AllTests helper and heed the 
Autoload.php file of a test suite.
  </notes>
  <contents>
   <dir baseinstalldir="/" name="/">
    <file baseinstalldir="/" md5sum="0d8c2a4f095d13b177be2c98ec728bec" 
name="lib/Horde/Test/Stub/Cli.php" role="php" />
    <file baseinstalldir="/" md5sum="5deb1d5e62f15992b9fb576508ca46be" 
name="lib/Horde/Test/Stub/Parser.php" role="php" />
-   <file baseinstalldir="/" md5sum="f37a57a7e32ef00d99068dab8d1a5910" 
name="lib/Horde/Test/AllTests.php" role="php" />
+   <file baseinstalldir="/" md5sum="3bffd906191fdaa3f379d8f0250d56a0" 
name="lib/Horde/Test/AllTests.php" role="php" />
    <file baseinstalldir="/" md5sum="5132082a500e7d06915ccfb9e56733d8" 
name="lib/Horde/Test/Application.php" role="php" />
    <file baseinstalldir="/" md5sum="0227b63fbfc3e87f5de52b0efca1fc9d" 
name="lib/Horde/Test/Autoload.php" role="php" />
    <file baseinstalldir="/" md5sum="06fa7e7e29ed70bc34ef91148618ca4b" 
name="lib/Horde/Test/Case.php" role="php" />
@@ -214,5 +215,21 @@
 * [jan] Fix Horde_Text_Exception extending the wrong class name.
    </notes>
   </release>
+  <release>
+   <version>
+    <release>1.1.2</release>
+    <api>1.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2011-07-05</date>
+   <license uri="http://www.gnu.org/copyleft/lesser.html";>LGPL</license>
+   <notes>
+* [gwr] Improve detection of the lib directory.
+* [gwr] Extract the setup pieces we do in the AllTests helper and heed the 
Autoload.php file of a test suite.
+   </notes>
+  </release>
  </changelog>
 </package>


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to