* @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.php 0000644 0001750 0001750 00000002471 12654075613 022674 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000003210 12654075613 022615 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000004742 12654075613 022276 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000013501 12654075613 021617 0 ustar mathieu mathieu
* @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/ 0000755 0001750 0001750 00000000000 12654222554 021413 5 ustar mathieu mathieu tmpwGvIX9/Horde_Test-2.6.0/lib/Horde/Test/Factory/Hashtable.php 0000644 0001750 0001750 00000002166 12654075613 024026 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000004301 12654075613 022451 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002530 12654075613 023205 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002302 12654075613 023733 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002113 12654075613 023217 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000003155 12654075613 023211 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002317 12654075613 023554 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000007366 12654075613 023204 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002405 12654075613 023570 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002151 12654075613 023161 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002140 12654075613 023211 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000002071 12654075613 023131 0 ustar mathieu mathieu
* @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.php 0000644 0001750 0001750 00000003721 12654075613 024506 0 ustar mathieu mathieu
* @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();
}
}