--- /dev/null
+#!/usr/bin/env php
+<?php
+if (strpos('@php_dir@', '@php_dir') === 0) {
+ set_include_path(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'lib' . PATH_SEPARATOR . get_include_path());
+}
+
+require_once 'Horde/Autoloader/Default.php';
+Horde_Kolab_Storage_Cli::main();
--- /dev/null
+<?php
+/**
+ * Command line tools for Kolab storage.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * Command line tools for Kolab storage.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you did not
+ * receive this file, see
+ * http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Cli
+{
+ /**
+ * The main entry point for the application.
+ *
+ * @param array $parameters A list of named configuration parameters.
+ * <pre>
+ * 'parser' - (array) Parser configuration parameters.
+ * 'class' - (string) The class name of the parser to use.
+ * 'output' - (Horde_Cli) The output handler.
+ * </pre>
+ */
+ static public function main(array $parameters = array())
+ {
+ $parser = self::_prepareParser($parameters);
+ if (empty($parameters['output'])) {
+ if (!class_exists('Horde_Cli')) {
+ throw new Horde_Kolab_Storage_Exception('The Horde_Cli package seems to be missing (Class Horde_Cli is missing)!');
+ }
+ $cli = Horde_Cli::init();
+ } else {
+ $cli = $parameters['output'];
+ }
+ list($options, $arguments) = $parser->parseArgs();
+ $cli->message('OK');
+ }
+
+ static private function _prepareParser(array $parameters = array())
+ {
+ if (empty($parameters['parser']['class'])) {
+ $parser_class = 'Horde_Argv_Parser';
+ } else {
+ $parser_class = $parameters['parser']['class'];
+ }
+ return new $parser_class(
+ array(
+ 'usage' => '%prog ' . _("[options]")
+ )
+ );
+ }
+}
\ No newline at end of file
<email>jan@horde.org</email>
<active>yes</active>
</lead>
- <date>2010-10-22</date>
- <time>19:03:03</time>
+ <date>2010-12-14</date>
+ <time>05:23:03</time>
<version>
<release>0.4.0</release>
<api>0.1.0</api>
<file name="Permission.php" role="php" />
</dir> <!-- /lib/Horde/Kolab/Storage/Folder -->
<file name="Cache.php" role="php" />
+ <file name="Cli.php" role="php" />
<file name="Data.php" role="php" />
<file name="Driver.php" role="php" />
<file name="Exception.php" role="php" />
<dir name="Horde">
<dir name="Kolab">
<dir name="Storage">
- <dir name="Class">
+ <dir name="Server">
+ <file name="DriverTest.php" role="test" />
+ </dir> <!-- /test/Horde/Kolab/Storage/Server -->
+ <dir name="Unit">
<dir name="Driver">
<file name="CclientTest.php" role="test" />
<file name="ImapTest.php" role="test" />
<file name="MockTest.php" role="test" />
<file name="PearTest.php" role="test" />
- </dir> <!-- /test/Horde/Kolab/Storage/Class/Driver -->
- </dir> <!-- /test/Horde/Kolab/Storage/Class -->
- <dir name="Server">
- <file name="DriverTest.php" role="test" />
- </dir> <!-- /test/Horde/Kolab/Storage/Server -->
+ </dir> <!-- /test/Horde/Kolab/Storage/Unit/Driver -->
+ <file name="CliTest.php" role="test" />
+ </dir> <!-- /test/Horde/Kolab/Storage/Unit -->
<file name="AclTest.php" role="test" />
<file name="AllTests.php" role="test" />
<file name="AttachmentTest.php" role="test" />
<phprelease>
<filelist>
<install as="Horde/Kolab/Storage/usage.txt" name="doc/Horde/Kolab/Storage/usage.txt" />
+ <install as="Horde/Kolab/Storage/list.php" name="examples/Horde/Kolab/Storage/list.php" />
<install as="Horde/Kolab/Storage.php" name="lib/Horde/Kolab/Storage.php" />
<install as="Horde/Kolab/Storage/Cache.php" name="lib/Horde/Kolab/Storage/Cache.php" />
+ <install as="Horde/Kolab/Storage/Cli.php" name="lib/Horde/Kolab/Storage/Cli.php" />
<install as="Horde/Kolab/Storage/Data.php" name="lib/Horde/Kolab/Storage/Data.php" />
<install as="Horde/Kolab/Storage/Driver.php" name="lib/Horde/Kolab/Storage/Driver.php" />
<install as="Horde/Kolab/Storage/Exception.php" name="lib/Horde/Kolab/Storage/Exception.php" />
<install as="Horde/Kolab/Storage/Scenario.php" name="test/Horde/Kolab/Storage/Scenario.php" />
<install as="Horde/Kolab/Storage/StorageTest.php" name="test/Horde/Kolab/Storage/StorageTest.php" />
<install as="Horde/Kolab/Storage/TriggerTest.php" name="test/Horde/Kolab/Storage/TriggerTest.php" />
- <install as="Horde/Kolab/Storage/Class/Driver/CclientTest.php" name="test/Horde/Kolab/Storage/Class/Driver/CclientTest.php" />
- <install as="Horde/Kolab/Storage/Class/Driver/ImapTest.php" name="test/Horde/Kolab/Storage/Class/Driver/ImapTest.php" />
- <install as="Horde/Kolab/Storage/Class/Driver/MockTest.php" name="test/Horde/Kolab/Storage/Class/Driver/MockTest.php" />
- <install as="Horde/Kolab/Storage/Class/Driver/PearTest.php" name="test/Horde/Kolab/Storage/Class/Driver/PearTest.php" />
<install as="Horde/Kolab/Storage/Server/DriverTest.php" name="test/Horde/Kolab/Storage/Server/DriverTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/CliTest.php" name="test/Horde/Kolab/Storage/Unit/CliTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/Driver/CclientTest.php" name="test/Horde/Kolab/Storage/Unit/Driver/CclientTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/Driver/ImapTest.php" name="test/Horde/Kolab/Storage/Unit/Driver/ImapTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/Driver/MockTest.php" name="test/Horde/Kolab/Storage/Unit/Driver/MockTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/Driver/PearTest.php" name="test/Horde/Kolab/Storage/Unit/Driver/PearTest.php" />
+ <install as="TODO" name="TODO" />
</filelist>
</phprelease>
<changelog>
<release>alpha</release>
<api>alpha</api>
</stability>
- <date>2010-10-22</date>
+ <date>2010-12-14</date>
<license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
<notes>
* Added namespace support (Bug #6691).
+++ /dev/null
-<?php
-/**
- * Test script for the Kolab storage drivers.
- *
- * Usage:
- * test_drivers.php -u [username]
- * -p [password]
- * [-H [hostname]]
- * [-d [imap_client log file]]
- *
- * Username/password/hostspec on the command line will override the $params
- * values.
- * Driver on the command line will override the $driver value.
- *
- * @category Kolab
- * @package Kolab_Storage
- * @author Gunnar Wrobel <wrobel@pardus.de>
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-
-require_once 'Horde/Autoloader.php';
-
-/** Setup command line */
-$p = new Horde_Argv_Parser(
- array(
- 'optionList' =>
- array(
- new Horde_Argv_Option(
- '-u',
- '--user',
- array(
- 'help' => 'The user name.',
- 'type' => 'string',
- 'nargs' => 1
- )
- ),
- new Horde_Argv_Option(
- '-p',
- '--pass',
- array(
- 'help' => 'The password.',
- 'type' => 'string',
- 'nargs' => 1
- )
- ),
- new Horde_Argv_Option(
- '-H',
- '--host',
- array(
- 'help' => 'The host to connect to.',
- 'type' => 'string',
- 'nargs' => 1,
- 'default' => 'localhost'
- )
- ),
- new Horde_Argv_Option(
- '-d',
- '--debug',
- array(
- 'help' => 'The path to the IMAP client debug file.',
- 'type' => 'string',
- 'nargs' => 1
- )
- ),
- )
- )
-);
-
-/** Handle arguments */
-try {
- list($options, $args) = $p->parseArgs();
-} catch (InvalidArgumentException $e) {
- print $e->getMessage() . "\n\n" . $p->getUsage() . "\n\n";
-}
-
-/** Setup shared test fixture */
-$fixture = new stdClass;
-$fixture->conf = $options;
-$fixture->drivers = array();
-
-$all_tests = '@PHP-TEST-DIR@/Kolab_Storage/Horde/Kolab/Storage/AllTests.php';
-if (strpos($all_tests, '@PHP-TEST-DIR') !== false) {
- $all_tests = dirname(__FILE__)
- . '/../../../../test/Horde/Kolab/Storage/AllTests.php';
-}
-
-define('PHPUnit_MAIN_METHOD', 'PHPUnit_TextUI_Command::main');
-
-require_once $all_tests;
-
-$suite = Horde_Kolab_Storage_AllTests::suite();
-$suite->setSharedFixture($fixture);
-
-PHPUnit_TextUI_TestRunner::run($suite);
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Test the CLI interface.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @subpackage UnitTests
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Autoload.php';
+
+/**
+ * Test the CLI interface.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @subpackage UnitTests
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Unit_CliTest
+extends PHPUnit_Framework_TestCase
+{
+ public function testCli()
+ {
+ $_SERVER['argv'] = array(
+ 'kolab-storage'
+ );
+ ob_start();
+ Horde_Kolab_Storage_Cli::main(
+ array(
+ 'output' => new Horde_Test_Stub_Cli(),
+ 'parser' => array('class' => 'Horde_Test_Stub_Parser')
+ )
+ );
+ $output = ob_get_contents();
+ ob_end_clean();
+ }
+}