From e453ef11df0b3a78bbe3096e5158fac0c99e083b Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel
Date: Tue, 14 Dec 2010 08:58:01 +0100
Subject: [PATCH] Add some options to the cli interface. No implementation yet.
Fix unit tests.
---
.../Kolab_Storage/lib/Horde/Kolab/Storage/Cli.php | 32 +++++++++++-
.../test/Horde/Kolab/Storage/Autoload.php | 3 ++
.../test/Horde/Kolab/Storage/Server/DriverTest.php | 2 +-
.../test/Horde/Kolab/Storage/TestCase.php | 46 +++++++++++++++++
.../Horde/Kolab/Storage/Unit/Cli/ModuleTest.php | 48 ++++++++++++++++++
.../Horde/Kolab/Storage/Unit/Cli/OptionsTest.php | 59 ++++++++++++++++++++++
.../test/Horde/Kolab/Storage/Unit/CliTest.php | 19 +++----
7 files changed, 197 insertions(+), 12 deletions(-)
create mode 100644 framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php
create mode 100644 framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/Cli/ModuleTest.php
create mode 100644 framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/Cli/OptionsTest.php
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cli.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cli.php
index e87d640dc..d118a2ce6 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cli.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cli.php
@@ -50,7 +50,16 @@ class Horde_Kolab_Storage_Cli
$cli = $parameters['output'];
}
list($options, $arguments) = $parser->parseArgs();
- $cli->message('OK');
+ if (count($arguments) == 0) {
+ $parser->printHelp();
+ } else {
+ switch ($arguments[0]) {
+ case 'folder':
+ break;
+ default:
+ $parser->printHelp();
+ }
+ }
}
static private function _prepareParser(array $parameters = array())
@@ -60,9 +69,28 @@ class Horde_Kolab_Storage_Cli
} else {
$parser_class = $parameters['parser']['class'];
}
+ $options = array(
+ new Horde_Argv_Option(
+ '-d',
+ '--driver',
+ array(
+ 'action' => 'store',
+ 'choices' => array('horde', 'php', 'pear', 'roundcube', 'mock'),
+ 'help' => Horde_Kolab_Storage_Translation::t('The IMAP driver that should be used')
+ )
+ ),
+ );
+ $usage = Horde_Kolab_Storage_Translation::t(
+ "[options] MODULE ACTION\nPossible MODULEs and ACTIONs:
+
+ folder - Handle folders.
+ list [default] - List the folders
+"
+ );
return new $parser_class(
array(
- 'usage' => '%prog ' . _("[options]")
+ 'usage' => '%prog ' . $usage,
+ 'optionList' => $options
)
);
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Autoload.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Autoload.php
index 9374960f1..3ec0be20f 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Autoload.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Autoload.php
@@ -16,3 +16,6 @@ require_once 'Horde/Test/Autoload.php';
/** Catch strict standards */
error_reporting(E_ALL | E_STRICT);
+
+/** Load the basic test definition */
+require_once dirname(__FILE__) . '/TestCase.php';
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Server/DriverTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Server/DriverTest.php
index 87d228e62..27b4a4db5 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Server/DriverTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Server/DriverTest.php
@@ -42,7 +42,7 @@ class Horde_Kolab_Storage_Server_DriverTest extends PHPUnit_Framework_TestCase
public function setUp()
{
- if ($this->sharedFixture === null) {
+ if (!isset($this->sharedFixture)) {
$this->markTestSkipped('Testing of a running server skipped. No configuration fixture available.');
return;
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php
new file mode 100644
index 000000000..9d209361a
--- /dev/null
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php
@@ -0,0 +1,46 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * Basic test case.
+ *
+ * Copyright 2010 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.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @subpackage UnitTests
+ * @author Gunnar Wrobel