tmpwGvIX9/0000700000175000017500000000000012654222554012543 5ustar mathieumathieutmpwGvIX9/package.xml0000644000175000017500000144577412654075614014723 0ustar mathieumathieu Horde_Test pear.horde.org Horde testing base classes Horde-specific PHPUnit base classes. Chuck Hagenbuch chuck chuck@horde.org yes Jan Schneider jan jan@horde.org yes 2016-02-02 2.6.0 2.6.0 stable stable LGPL-2.1 * [jan] Add Horde_Test_Stub_Registry#setConfigFile() to provide pre-configured Horde_Test_Stub_Registry_Loadconfig objects. 5.3.0 8.0.0alpha1 8.0.0alpha1 1.7.0 Horde_Support pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Util pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Cli pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Log pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 dom json 1.0.0alpha1 1.0.0 alpha alpha 2011-03-08 LGPL-2.1 * First alpha release for Horde 4. 1.0.0beta1 1.0.0 beta beta 2011-03-16 LGPL-2.1 * First beta release for Horde 4. 1.0.0RC1 1.0.0 beta beta 2011-03-23 LGPL-2.1 * First release candidate for Horde 4. 1.0.0RC2 1.0.0 beta beta 2011-03-29 LGPL-2.1 * Second release candidate for Horde 4. 1.0.0 1.0.0 stable stable 2011-04-06 LGPL-2.1 * First stable release for Horde 4. 1.1.0 1.1.0 stable stable 2011-06-01 LGPL-2.1 * [gwr] Added test case for log output. * [gwr] Added stub for application testing. 1.1.1 1.1.0 stable stable 2011-06-14 LGPL-2.1 * [jan] Fix Horde_Text_Exception extending the wrong class name. 1.1.2 1.1.0 stable stable 2011-07-05 LGPL-2.1 * [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. 1.2.0 1.2.0 stable stable 2011-10-11 LGPL-2.1 * [gwr] Added Horde_Test_Stub_Factory as a simple factory stub. * [gwr] Add Horde_Test_Setup for complex test suite setups. 1.2.1 1.2.0 stable stable 2011-11-08 LGPL-2.1 * [jan] Require PHPUnit 3.5 due to BC breaking changes in 3.6. 1.3.0 1.3.0 stable stable 2011-12-13 LGPL-2.1 * [gwr] Added Alarm, Cache, and Session stub factories * [gwr] Fix autoloading to work with PHPUnit-3.6. 2.0.0alpha1 1.3.0 alpha stable 2012-07-06 LGPL-2.1 * First alpha release for Horde 5. 2.0.0beta1 1.3.0 beta stable 2012-07-19 LGPL-2.1 * First beta release for Horde 5. 2.0.0 1.3.0 stable stable 2012-10-30 LGPL-2.1 * First stable release for Horde 5. 2.1.0 2.0.0 stable stable 2012-11-17 LGPL-2.1 * [mms] Refactor Horde_Test_AllTests. * [mms] Add Horde_Test_Bootstrap. 2.2.0 2.0.0 stable stable 2013-02-11 LGPL-2.1 * [jan] Add test/ directory to include_path to allow autoloading of test classes. 2.2.1 2.0.0 stable stable 2013-03-05 LGPL-2.1 * [jan] Return to old directory after running all tests. 2.2.2 2.0.0 stable stable 2013-05-06 LGPL-2.1 * [mms] Add test factory for MongoDB. 2.2.3 2.0.0 stable stable 2013-08-27 LGPL-2.1 * [jan] Define missing Horde_Test_Stub_Registry property. 2.2.4 2.0.0 stable stable 2013-10-28 LGPL-2.1 * [mms] Fix autoloading from a PHP-defined namespace. 2.2.5 2.0.0 stable stable 2013-11-12 LGPL-2.1 * [mms] Restore error reporting level after running tests via Horde_Test_AllTests#run(). 2.2.6 2.0.0 stable stable 2013-12-06 LGPL-2.1 * [jan] Correctly set up include paths on installed packages. 2.3.0 2.3.0 stable stable 2014-03-10 LGPL-2.1 * [jan] Add stubs for Horde_Registry_Loadconfig and Horde_Registry::loadConfigFile(). * [mms] Add factory for a HashTable instance. 2.3.1 2.3.0 stable stable 2014-05-02 LGPL-2.1 * [mms] Fix loading PHPUnit from PHAR file. 2.4.0 2.3.0 stable stable 2014-05-05 LGPL-2.1 * [jan] Bundle PHPUnit and dependencies. 2.4.1 2.3.0 stable stable 2014-05-06 LGPL-2.1 * [jan] Fix running tests from PEAR-installed version. 2.4.2 2.3.0 stable stable 2014-07-01 LGPL-2.1 * [jan] Update to PHPUnit 4.1.3. 2.4.3 2.3.0 stable stable 2014-08-29 LGPL-2.1 * [mms] Fix determination of test cases using AllTests.php. * [mms] Fix AllTests.php when dealing with test cases that inherit from parent test cases. 2.4.4 2.3.0 stable stable 2014-10-02 LGPL-2.1 * [jan] Don't report hooks loading as successful. 2.4.5 2.3.0 stable stable 2014-10-27 LGPL-2.1 * [jan] Update to PHPUnit 4.3.4 and dependencies. * [jan] Raise priority of Horde_Test autoloader. 2.4.6 2.3.0 stable stable 2014-11-18 LGPL-2.1 * [jan] Add convertUsername() to Horde_Test_Stub_Registry. 2.4.7 2.3.0 stable stable 2014-12-29 LGPL-2.1 * [mms] Update to PHPUnit 4.4.0 and dependencies. * [jan] Add remoteHost() to Horde_Test_Stub_Registry. 2.4.8 2.3.0 stable stable 2015-01-13 LGPL-2.1 * [mms] Fix install location for the phpunit libraries packaged locally via composer. 2.5.0 2.5.0 stable stable 2015-02-10 LGPL-2.1 * [mjr] Add method to obtain all logged events. 2.5.1 2.5.0 stable stable 2015-04-13 LGPL-2.1 * [mms] Update to PHPUnit 4.5.0 and dependencies. 2.6.0 2.6.0 stable stable 2016-02-02 LGPL-2.1 * [jan] Add Horde_Test_Stub_Registry#setConfigFile() to provide pre-configured Horde_Test_Stub_Registry_Loadconfig objects. tmpwGvIX9/Horde_Test-2.6.0/0000755000175000017500000000000012654222554015256 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/0000755000175000017500000000000012654222554016023 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/Horde/0000755000175000017500000000000012654222554017064 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/0000755000175000017500000000000012654222554020003 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/template/0000755000175000017500000000000012654222554021616 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/template/packagetest/0000755000175000017500000000000012654222554024111 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/template/packagetest/AllTests.php0000644000175000017500000000013212654075613026353 0ustar mathieumathieurun(); tmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/template/packagetest/phpunit.xml0000644000175000017500000000005612654075613026325 0ustar mathieumathieu tmpwGvIX9/Horde_Test-2.6.0/doc/Horde/Test/template/packagetest/bootstrap.php0000644000175000017500000000014312654075613026637 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test * @package Test */ class Horde_Test_Bootstrap { /** * Only run bootstrap code once. * * @var boolean */ private static $_runonce = false; /** * Bootstrap code for Horde PEAR packages. * * @param string $dir Base directory of tests. * @param boolean $no_autoload Don't run default Horde_Test autoload * tasks. */ public static function bootstrap($dir, $no_autoload = false) { if (self::$_runonce) { return; } if (!$no_autoload) { // Catch strict standards error_reporting(E_ALL | E_STRICT); // Set up autoload $base = $dir; while ($base != '/' && basename($base) != 'Horde') { $base = dirname($base); } $base = dirname($base); if ($base) { set_include_path( $base . PATH_SEPARATOR . $base . '/../lib' . PATH_SEPARATOR . get_include_path() ); } require_once 'Horde/Test/Autoload.php'; Horde_Test_Autoload::init(); } if (file_exists($dir . '/Autoload.php')) { require_once $dir . '/Autoload.php'; } self::$_runonce = true; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Case.php0000644000175000017500000000527212654075613021400 0ustar mathieumathieu * @author Jan Schneider * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Basic Horde test case helper. * * Copyright 2009-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Chuck Hagenbuch * @author Jan Schneider * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ 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 string $path The path to use. * @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. */ public static function getConfig($env, $path = null, $default = array()) { $config = getenv($env); if ($config) { $json = json_decode($config, true); if ($json) { return array_replace_recursive($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; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Log.php0000644000175000017500000000741412654075613021246 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Provides utilities to test for log output. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_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))); } /** * Utility function to return the array of logged events. * * @return array */ public function getLogOutput() { return $this->_logHandler->events; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/AllTests.php0000644000175000017500000000744212654075613022261 0ustar mathieumathieu * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Horde base test suite * * Copyright 2009-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Jan Schneider * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_AllTests { private $_dir; private $_package; /** * Create a Horde_Test_AllTests object. * * @param string $file Filename of the AllTests.php script. * * @return Horde_Test_AllTests Test object. */ public static function init($file) { $file = dirname($file); $parts = array(); foreach (array_reverse(explode(DIRECTORY_SEPARATOR, $file)) as $val) { if ($val == 'test' || $val == implode('_', array_reverse($parts))) { break; } $parts[] = $val; } return new self( implode('_', array_reverse($parts)), $file ); } /** * Constructor. * * @param string $package The name of the package tested by this suite. * @param string $dir The path of the AllTests class. */ public function __construct($package, $dir) { $this->_package = $package; $this->_dir = $dir; } /** * Main entry point for running the suite. * * @return boolean */ public function run() { $old_dir = getcwd(); chdir($this->_dir); $old_error = error_reporting(); $suite = $this->suite(); $result = PHPUnit_TextUI_TestRunner::run($suite); error_reporting($old_error); chdir($old_dir); return $result; } /** * Collect the unit tests of this directory into a new suite. * * @return PHPUnit_Framework_TestSuite The test suite. */ public function suite() { $this->setup(); $runner = new Horde_Test_AllTests_TestRunner(); return $runner->getSuite($this->_package, $this->_dir); } /** * 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 in $_dir, 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. */ public function setup() { // Detect component root and add "lib" and "test" to the include path. $base = $this->_dir; while ($base != '/' && basename($base) != 'test') { $base = dirname($base); } if ($base) { set_include_path( $base . PATH_SEPARATOR . $base . '/../lib' . PATH_SEPARATOR . get_include_path() ); } require_once 'Horde/Test/Bootstrap.php'; Horde_Test_Bootstrap::bootstrap($this->_dir); if (file_exists($this->_dir . '/Autoload.php')) { require_once $this->_dir . '/Autoload.php'; } } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/AllTests/0000755000175000017500000000000012654222554021537 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/AllTests/TestRunner.php0000644000175000017500000000240312654075613024362 0ustar mathieumathieu * @category Horde * @copyright 2014-2016 Horde LLC * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test * @package Test */ class Horde_Test_AllTests_TestRunner extends PHPUnit_Runner_BaseTestRunner { /** * Get the test suite. * * @param string $package The name of the package tested by this suite. * @param string $dir The path of the AllTests class. */ public function getSuite($package, $dir) { $suite = $this->getTest( $dir, '', 'Test.php' ); $suite->setName('Horde Framework - ' . $package); return $suite; } /** */ protected function runFailed($message) { } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Exception.php0000644000175000017500000000143112654075613022454 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * The exception specific to this package. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Exception extends Horde_Exception_Wrapped { } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/0000755000175000017500000000000012654222554020721 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Cli.php0000644000175000017500000000321712654075613022146 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * A test helper for testing Horde_Cli based classes. * * Copyright 2010-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ 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('====================')); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Factory.php0000644000175000017500000000311212654075613023040 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * A test helper replacing real factories. * * The Horde_Injector is often queried for factories that allow to generate more * complex objects. The factories usually implement the create() method as * primary variant for generating the instance. This test replacement is meant * to be used as a prepared stub that can be provided to the injector and will * return the instance required for testing. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Stub_Factory { /** * The instance to be returned. * * @var mixed */ private $_instance; /** * Constructor. * * @param mixed $instance The instance that the factory should return. */ public function __construct($instance) { $this->_instance = $instance; } /** * Create an instance. * * @return mixed The predefined instance. */ public function create() { return $this->_instance; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Registry/0000755000175000017500000000000012654222554022531 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Registry/Loadconfig.php0000644000175000017500000000154712654075613025320 0ustar mathieumathieu * @category Horde * @copyright 2014-2016 Horde LLC * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Core */ class Horde_Test_Stub_Registry_Loadconfig { public $app; public $conf_files; public $vars; public function __contruct($app, $conf_file, $vars) { $this->app = $app; $this->conf_file = $conf_file; $this->vars = $vars; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Registry.php0000644000175000017500000001546112654075613023253 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * A test replacement for Horde_Registry. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Stub_Registry { /** * A flag that is set once the basic horde application has been * minimally configured. * * @var boolean */ public $hordeInit = false; /** * The currrent user. * * @var string */ protected $_user; /** * The current application. * * @var string */ protected $_app; /** * List of pre-configured configuration objects. * * @var array */ protected $_configObjects = array(); /** * Constructor. * * @param string $user The current user. * @param string $app The current application. */ public function __construct($user, $app) { $this->_user = $user; $this->_app = $app; } /** * Converts an authentication username to a unique Horde username. * * @param string $userId The username to convert. * @param boolean $toHorde If true, convert to a Horde username. If * false, convert to the auth username. * * @return string The converted username. * @throws Horde_Exception */ public function convertUsername($userId, $toHorde) { return $userId; } /** * Returns the currently logged in user, if there is one. * * @param string $format The return format, defaults to the unique Horde * ID. Alternative formats: *
     * bare - Horde ID without any domain information.
     *        EXAMPLE: foo@example.com would be returned as 'foo'.
     * domain: Domain of the Horde ID.
     *         EXAMPLE: foo@example.com would be returned as 'example.com'.
     * original: The username used to originally login to Horde.
     * 
* * @return mixed The user ID or false if no user is logged in. */ public function getAuth($format = null) { return $this->_user; } /** * Is a user an administrator? * * @param array $options Options: *
     * 'permission' - (string) Allow users with this permission admin access
     *                in the current context.
     * 'permlevel' - (integer) The level of permissions to check for.
     *               Defaults to Horde_Perms::EDIT.
     * 'user' - (string) The user to check.
     *          Defaults to self::getAuth().
     * 
* * @return boolean Whether or not this is an admin user. */ public function isAdmin(array $options = array()) { return false; } /** * Returns information about the remote host. * * @return object An object with the following properties: *
     *   - addr: (string) Remote IP address.
     *   - host: (string) Remote hostname (if resolvable; otherwise, this value
     *           is identical to 'addr').
     *   - proxy: (boolean) True if this user is connecting through a proxy.
     * 
*/ public function remoteHost() { return (object)array( 'addr' => '1.2.3.4', 'host' => 'example.com', 'proxy' => false ); } /** * Assigns a (pre-configured) Loadconfig object. * * This object will be returned by loadConfig(), if the same parameters are * used. * * @since Horde_Test 2.6.0 * * @param object $loadconfig Configuration object. * @param string $conf_file Configuration file name. * @param mixed $vars List of config variables to load. * @param string $app Application. */ public function setConfigFile( $loadconfig, $conf_file, $vars = null, $app = null ) { $sig = serialize(array($conf_file, $vars, $app)); $this->configObjects[$sig] = $loadconfig; } /** * Load a configuration file from a Horde application's config directory. * This call is cached (a config file is only loaded once, regardless of * the $vars value). * * @param string $conf_file Configuration file name. * @param mixed $vars List of config variables to load. * @param string $app Application. * * @return Horde_Test_Stub_Registry_Loadconfig The config object. * @throws Horde_Exception */ public function loadConfigFile($conf_file, $vars = null, $app = null) { if ($conf_file == 'hooks.php') { throw new Horde_Exception('Failed to import configuration file "hooks.php".'); } $sig = serialize(array($conf_file, $vars, $app)); if (isset($this->configObjects[$sig])) { return $this->configObjects[$sig]; } return new Horde_Test_Stub_Registry_Loadconfig( $app, $conf_file, $vars ); } /** * Return the requested configuration parameter for the specified * application. If no application is specified, the value of * the current application is used. However, if the parameter is not * present for that application, the Horde-wide value is used instead. * If that is not present, we return null. * * @param string $parameter The configuration value to retrieve. * @param string $app The application to get the value for. * * @return string The requested parameter, or null if it is not set. */ public function get($parameter, $app = null) { return ''; } /** * Return the current application - the app at the top of the application * stack. * * @return string The current application. */ public function getApp() { return $this->_app; } /** * Determine if an interface is implemented by an active application. * * @param string $interface The interface to check for. * * @return mixed The application implementing $interface if we have it, * false if the interface is not implemented. */ public function hasInterface($interface) { return false; } /** * Returns all available registry APIs. * * @return array The API list. */ public function listAPIs() { return array(); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Stub/Parser.php0000644000175000017500000000247112654075613022674 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * A test helper for testing Horde_Argv based classes. * * Copyright 2010-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ 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; } } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Functional.php0000644000175000017500000000321012654075613022615 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Horde test case helper. * * Copyright 2009-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Chuck Hagenbuch * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ 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); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Autoload.php0000644000175000017500000000474212654075613022276 0ustar mathieumathieu * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Autoload { /** * Prefix mappings. * * @var array */ private static $_mappings = array(); /** * Only run init code once. * * @var boolean */ private static $_runonce = false; /** * Base autoloader code for Horde PEAR packages. */ public static function init() { if (self::$_runonce) { return; } if (file_exists(__DIR__ . '/vendor/autoload.php')) { require __DIR__ . '/vendor/autoload.php'; } else { require __DIR__ . '/../../../bundle/vendor/autoload.php'; } spl_autoload_register( function($class) { $filename = Horde_Test_Autoload::resolve($class); $err_mask = error_reporting() & ~E_WARNING; $old_err = error_reporting($err_mask); include "$filename.php"; error_reporting($old_err); }, true, true ); self::$_runonce = true; } /** * Add a prefix to the autoloader. * * @param string $prefix Prefix to add. * @param string $path Path to the prefix. */ public static function addPrefix($prefix, $path) { self::$_mappings[$prefix] = $path; } /** * Resolve classname to a filename. * * @param string $class Class name. * * @return string Resolved filename. */ public static function resolve($class) { $filename = str_replace(array('::', '_', '\\'), '/', $class); foreach (self::$_mappings as $prefix => $path) { if ((strpos($filename, "/") === false) && ($filename == $prefix)) { $filename = $path . '/' . $filename; } if (substr($filename, 0, strlen($prefix)) == $prefix) { $filename = $path . substr($filename, strlen($prefix)); } } return $filename; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Setup.php0000644000175000017500000001350112654075613021617 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * A test helper for generating complex test setups. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Setup { /** * The Horde_Injector instance which serves as our service container. * * @var Horde_Injector */ private $_injector; /** * In case the setup turns out to be unfullfillable this should contain an * appropriate message indicating the problem. * * @var string */ private $_error; /** * Global parameters that apply to several factories. * * @var string */ private $_params = array(); /** * Constructor. */ public function __construct() { if (class_exists('Horde_Injector')) { $this->_injector = new Horde_Injector(new Horde_Injector_TopLevel()); $this->_injector->setInstance('Horde_Injector', $this->_injector); } else { $this->_error = 'The Horde_Injector class is unavailable!'; } } /** * Add a new set of elements to the service container. * * @param array $params All parameters necessary for creating the services. * The keys of the array elements define the name that * will be used for registering the test service with * the injector. The element values are a * configuration array with the following elements: *
     * 'factory' - (string) Name of the factory. Can be a full class name or an
     *             abbreviated name that will get prepended with
     *             'Horde_Test_Factory_'
     * 'method' - (string) Method name that will be invoked on the above factory
     *            to generate the test service.
     * 'params' - (array) Any parameters the factory method might require for
     *            generating the test service. See the various factories/methods
     *            for details.
     * 
* * @return NULL */ public function setup($params) { if (isset($params['_PARAMS'])) { $this->_params = $params['_PARAMS']; unset($params['_PARAMS']); } foreach ($params as $interface => $setup) { if (is_array($setup)) { $factory = $setup['factory']; $method = isset($setup['method']) ? $setup['method'] : 'create'; $params = isset($setup['params']) ? $setup['params'] : array(); } else { $factory = $setup; $method = 'create'; $params = array(); } if (!empty($this->_error)) { break; } $this->add($interface, $factory, $method, $params); } } /** * Add a new element to the service container. * * @oaram string $interface The interface name to register the service with. * @param string $factory The (abbreviated) name of the factory. * @param string $method The factory method that will generate the * service. * @param array $params All parameters necessary for creating the * service. * * @return NULL */ public function add($interface, $factory, $method, $params) { if (!empty($this->_error)) { return; } if (!class_exists('Horde_Test_Factory_' . $factory) && !class_exists($factory)) { $this->_error = "Neither the class \"Horde_Test_Factory_$factory\" nor \"$factory\" exist. \"$interface\" cannot be created!"; return; } if (class_exists('Horde_Test_Factory_' . $factory)) { $f = $this->_injector->getInstance('Horde_Test_Factory_' . $factory); } else { $f = $this->_injector->getInstance($factory); } if (!method_exists($f, $method) && !method_exists($f, 'create' . $method)) { $this->_error = "The factory lacks the specified method \"$method\"!"; return; } if (method_exists($f, 'create' . $method)) { $method = 'create' . $method; } $params = array_merge($this->_params, $params); try { $this->_injector->setInstance($interface, $f->{$method}($params)); } catch (Horde_Test_Exception $e) { $this->_error = $e->getMessage() . "\n\n" . $e->getFile() . ':' . $e->getLine(); } } /** * Export elements from the injector into global scope. * * @param array $elements The elements to export. * * @return NULL */ public function makeGlobal($elements) { if (!empty($this->_error)) { return; } foreach ($elements as $key => $interface) { $GLOBALS[$key] = $this->_injector->getInstance($interface); } } /** * Return any potential setup error. * * @return string The error. */ public function getError() { return $this->_error; } /** * Return the service container. * * @return Horde_Injector The injector. */ public function getInjector() { return $this->_injector; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/0000755000175000017500000000000012654222554021413 5ustar mathieumathieutmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Hashtable.php0000644000175000017500000000216612654075613024026 0ustar mathieumathieu * @category Horde * @copyright 2014-2016 Horde LLC * @ignore * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test * @package Test */ class Horde_Test_Factory_Hashtable { /** * Create a hashtable object for testing. * * @return Horde_HashTable_Memory The hashtable object. * @throws Horde_Test_Exception */ public function create() { if (!class_exists('Horde_HashTable_Base')) { throw new Horde_Test_Exception('The HashTable package is unavailable!'); } return new Horde_HashTable_Memory(); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Db.php0000644000175000017500000000430112654075613022451 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates test database connectors. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Db { /** * Create a connector to an in-memory sqlite DB. * * @param array $params Additional options. *
     * 'migrations' - (array) An list of migrations that should be run.
     *                Each element must contain the keys 'migrationsPath'
     *                and 'schemaTableName'.
     *                DEFAULT: empty
     * 
* * @return Horde_Db_Adapter_Pdo_Sqlite The DB adapter. */ public function create($params = array()) { if (!extension_loaded('pdo') || !in_array('sqlite', PDO::getAvailableDrivers())) { throw new Horde_Test_Exception('No sqlite extension or no sqlite PDO driver'); } if (!class_exists('Horde_Db_Adapter_Pdo_Sqlite')) { throw new Horde_Test_Exception('The "Horde_Db_Adapter_Pdo_Sqlite" class is unavailable!'); } $db = new Horde_Db_Adapter_Pdo_Sqlite(array('dbname' => ':memory:', 'charset' => 'utf-8')); if (isset($params['migrations'])) { if (isset($params['migrations']['migrationsPath'])) { $migrations = array($params['migrations']); } else { $migrations = $params['migrations']; } foreach ($migrations as $migration) { $migrator = new Horde_Db_Migration_Migrator( $db, null, $migration ); $migrator->up(); } } return $db; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Prefs.php0000644000175000017500000000253012654075613023205 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates preferences services for testing purposes. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Prefs { /** * Create a null preferences service for testing. * * @param array $params Additional options. *
     * 'app' - (string) The application name.
     * 'user' - (string) The current user.
     * 
* * @return Horde_Prefs The test service. */ public function create($params) { if (!class_exists('Horde_Prefs')) { throw new Horde_Test_Exception('The "Horde_Prefs" class is unavailable!'); } return new Horde_Prefs($params['app'], new Horde_Prefs_Storage_Null($params['user'])); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Registry.php0000644000175000017500000000230212654075613023733 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates registry services for testing purposes. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Registry { /** * Create a stub registry service for testing. * * @param array $params Additional options. *
     * 'app' - (string) The application name.
     * 'user' - (string) The current user.
     * 
* * @return Horde_Test_Stub_Registry The test registry. */ public function create($params) { return new Horde_Test_Stub_Registry($params['user'], $params['app']); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Group.php0000644000175000017500000000211312654075613023217 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates test group services. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Group { /** * Create a mock group handler for testing. * * @return Horde_Group_Mock The mock service. */ public function create() { if (!class_exists('Horde_Group_Mock')) { throw new Horde_Test_Exception('The "Horde_Group_Mock" class is unavailable!'); } return new Horde_Group_Mock(); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Mongo.php0000644000175000017500000000315512654075613023211 0ustar mathieumathieu * @category Horde * @copyright 2013-2016 Horde LLC * @ignore * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test * @package Test */ class Horde_Test_Factory_Mongo { const DEFAULT_DB = 'horde_mongo_testdb'; /** * Create a connector to a temporary MongoDB instance. * * @param array $params Additional options: *
     *   - config: (array) Configuration for Horde_Mongo_Client.
     *   - dbname: (string) Database name to use.
     * 
* * @return Horde_Mongo_Client|null The DB object. */ public function create(array $params = array()) { $mongo = null; if (extension_loaded('mongo') && class_exists('Horde_Mongo_Client') && !empty($params['config'])) { try { $mongo = new Horde_Mongo_Client($params['config']); $mongo->dbname = isset($params['dbname']) ? $params['dbname'] : self::DEFAULT_DB; $mongo->selectDB(null)->drop(); } catch (Exception $e) {} } return $mongo; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Session.php0000644000175000017500000000231712654075613023554 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates a dummy session. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Session { /** * Create a mock session for testing. * * @return Horde_Session The mock session. */ public function create() { if (!class_exists('Horde_Session')) { throw new Horde_Test_Exception('The "Horde_Session" class is unavailable!'); } $session = new Horde_Session(); $session->sessionHandler = new Horde_SessionHandler( new Horde_SessionHandler_Storage_Builtin() ); return $session; } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Share.php0000644000175000017500000000736612654075613023204 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates test database connectors. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Share { /** * The injector. * * @var Horde_Injector */ private $_injector; /** * Constructor. * * @param Horde_Injector $injector The injector. */ public function __construct(Horde_Injector $injector) { $this->_injector = $injector; } /** * Create a SQL next generate share setup. * * @param array $params Additional options. *
     * 'app' - (string) The application name.
     * 'user' - (string) The current user.
     * 
* * @return Horde_Share_Sqlng The share setup. */ public function create($params) { $shares = $this->_createShares('Horde_Share_Sqlng', $params); try { $db = $this->_injector->getInstance('Horde_Db_Adapter'); } catch (Exception $e) { throw new Horde_Test_Exception( sprintf( 'Failed creating the "Horde_Db_Adapter" service: %s', $e->getMessage() ) ); } $shares->setStorage($db); return $shares; } /** * Create a Kolab share setup. * * @param array $params Additional options. *
     * 'app' - (string) The application name.
     * 'user' - (string) The current user.
     * 
* * @return Horde_Share_Sqlng The share setup. */ public function createKolab($params) { $shares = $this->_createShares('Horde_Share_Kolab', $params); try { $storage = $this->_injector->getInstance('Horde_Kolab_Storage'); } catch (Exception $e) { throw new Horde_Test_Exception( sprintf( 'Failed creating the "Horde_Kolab_Storage" service: %s', $e->getMessage() ) ); } $shares->setStorage($storage); return $shares; } /** * Create the share handler. * * @param string $class Class name of the share handler. * @param array $params Additional options. * * @return mixed The share handler. */ private function _createShares($class, $params) { if (!class_exists($class)) { throw new Horde_Test_Exception("The \"$class\" class is unavailable!"); } try { $perms = $this->_injector->getInstance('Horde_Perms'); } catch (Exception $e) { throw new Horde_Test_Exception( sprintf( 'Failed creating the "Horde_Perms" service: %s', $e->getMessage() ) ); } try { $group = $this->_injector->getInstance('Horde_Group'); } catch (Exception $e) { throw new Horde_Test_Exception( sprintf( 'Failed creating the "Horde_Group" service: %s', $e->getMessage() ) ); } return new $class($params['app'], $params['user'], $perms, $group); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/History.php0000644000175000017500000000240512654075613023570 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates the history service for testing purposes. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_History { /** * Create a mock history service for testing. * * @param array $params Additional options. *
     * 'user' - (string) The current user.
     * 
* * @return Horde_History The test service. */ public function create($params) { if (!class_exists('Horde_History')) { throw new Horde_Test_Exception('The "Horde_History" class is unavailable!'); } return new Horde_History_Mock($params['user']); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Alarm.php0000644000175000017500000000215112654075613023161 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates an alarm setup for the test situation. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Alarm { /** * Create a mock alarm system for testing. * * @return Horde_Alarm_Null The mock alarm system. */ public function create() { if (!class_exists('Horde_Alarm')) { throw new Horde_Test_Exception('The "Horde_Alarm" class is unavailable!'); } return new Horde_Alarm_Null(); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Perms.php0000644000175000017500000000214012654075613023211 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates the test permission service. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Perms { /** * Create a null permission service for testing. * * @return Horde_Perms_Null The test service. */ public function create() { if (!class_exists('Horde_Perms_Null')) { throw new Horde_Test_Exception('The "Horde_Perms_Null" class is unavailable!'); } return new Horde_Perms_Null(); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Cache.php0000644000175000017500000000207112654075613023131 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates test cache. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_Cache { /** * Create a mock cache for testing. * * @return Horde_Cache The mock cache. */ public function create() { if (!class_exists('Horde_Cache')) { throw new Horde_Test_Exception('The "Horde_Cache" class is unavailable!'); } return new Horde_Cache(new Horde_Cache_Storage_Mock()); } } tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/KolabStorage.php0000644000175000017500000000372112654075613024506 0ustar mathieumathieu * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ /** * Generates a Kolab storage handler. * * Copyright 2011-2016 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Test * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL * @link http://www.horde.org/components/Horde_Test */ class Horde_Test_Factory_KolabStorage { /** * Create a SQL next generate share setup. * * @param array $params Additional options. *
     * 'user' - (string) The current user.
     * 'imapuser' - (string) The short IMAP ID of the user.
     * 
* * @return Horde_Share_Sqlng The share setup. */ public function create($params) { if (!class_exists('Horde_Kolab_Storage_Factory')) { throw new Horde_Test_Exception('The "Horde_Kolab_Storage_Factory" class is unavailable!'); } $kolab_factory = new Horde_Kolab_Storage_Factory( array( 'driver' => 'mock', 'queryset' => array('list' => array('queryset' => 'horde')), 'params' => array( 'username' => $params['user'], 'host' => 'localhost', 'port' => 143, 'data' => array( 'user/' . $params['imapuser'] => array( 'permissions' => array('anyone' => 'alrid') ) ) ), 'logger' => new Horde_Support_Stub() ) ); return $kolab_factory->create(); } }