Start extracting the core storage handler.
authorGunnar Wrobel <p@rdus.de>
Tue, 14 Dec 2010 08:51:19 +0000 (09:51 +0100)
committerGunnar Wrobel <p@rdus.de>
Tue, 14 Dec 2010 17:26:58 +0000 (18:26 +0100)
framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php [new file with mode: 0644]
framework/Kolab_Storage/package.xml
framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/BaseTest.php [new file with mode: 0644]

diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php
new file mode 100644 (file)
index 0000000..e427b84
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * The basic handler for accessing data from 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
+ */
+
+/**
+ * The basic handler for accessing data from Kolab storage.
+ *
+ * Copyright 2004-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
+ * @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_Base
+{
+    /**
+     * The master Kolab storage system.
+     *
+     * @var Horde_Kolab_Storage_Driver
+     */
+    private $_master;
+
+    /**
+     * Constructor.
+     *
+     * @param Horde_Kolab_Storage_Driver $master The primary connection driver.
+     * @param string $driver The driver used for the primary storage connection.
+     * @param array  $params Additional connection parameters.
+     */
+    public function __construct(Horde_Kolab_Storage_Driver $master)
+    {
+        $this->_master = $master;
+    }
+
+    /**
+     * Returns the list of folders visible to the current user.
+     *
+     * @return array The list of IMAP folders, represented as
+     *               a list of strings.
+     */
+    public function listFolders()
+    {
+        return $this->_master->getMailboxes();
+    }
+
+}
\ No newline at end of file
index 6bc8a3d..8bb2b72 100644 (file)
@@ -32,7 +32,7 @@
   <active>yes</active>
  </lead>
  <date>2010-12-14</date>
- <time>05:23:03</time>
+ <time>09:14:53</time>
  <version>
   <release>0.4.0</release>
   <api>0.1.0</api>
@@ -51,6 +51,9 @@
  </notes>
  <contents>
   <dir baseinstalldir="/" name="/">
+   <dir name="bin">
+    <file name="kolab-storage" role="script" />
+   </dir> <!-- /bin -->
    <dir name="doc">
     <dir name="Horde">
      <dir name="Kolab">
         <file name="Base.php" role="php" />
         <file name="Permission.php" role="php" />
        </dir> <!-- /lib/Horde/Kolab/Storage/Folder -->
+       <file name="Base.php" role="php" />
        <file name="Cache.php" role="php" />
        <file name="Cli.php" role="php" />
        <file name="Data.php" role="php" />
     </dir> <!-- /locale/zh_TW -->
     <file name="Horde_Kolab_Storage.pot" role="data" />
    </dir> <!-- /locale -->
-   <dir name="script">
-    <dir name="Horde">
-     <dir name="Kolab">
-      <dir name="Storage">
-       <file name="test_drivers.php" role="script" />
-      </dir> <!-- /script/Horde/Kolab/Storage -->
-     </dir> <!-- /script/Horde/Kolab -->
-    </dir> <!-- /script/Horde -->
-   </dir> <!-- /script -->
    <dir name="test">
     <dir name="Horde">
      <dir name="Kolab">
         <file name="DriverTest.php" role="test" />
        </dir> <!-- /test/Horde/Kolab/Storage/Server -->
        <dir name="Unit">
+        <dir name="Cli">
+         <file name="ModuleTest.php" role="test" />
+         <file name="OptionsTest.php" role="test" />
+        </dir> <!-- /test/Horde/Kolab/Storage/Unit/Cli -->
         <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/Unit/Driver -->
+        <file name="BaseTest.php" role="test" />
         <file name="CliTest.php" role="test" />
        </dir> <!-- /test/Horde/Kolab/Storage/Unit -->
        <file name="AclTest.php" role="test" />
        <file name="phpunit.xml" role="test" />
        <file name="Scenario.php" role="test" />
        <file name="StorageTest.php" role="test" />
+       <file name="TestCase.php" role="test" />
        <file name="TriggerTest.php" role="test" />
       </dir> <!-- /test/Horde/Kolab/Storage -->
      </dir> <!-- /test/Horde/Kolab -->
  </dependencies>
  <phprelease>
   <filelist>
+   <install as="kolab-storage" name="bin/kolab-storage" />
    <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/Base.php" name="lib/Horde/Kolab/Storage/Base.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="locale/zh_CN/LC_MESSAGES/Horde_Kolab_Storage.po" name="locale/zh_CN/LC_MESSAGES/Horde_Kolab_Storage.po" />
    <install as="locale/zh_TW/LC_MESSAGES/Horde_Kolab_Storage.mo" name="locale/zh_TW/LC_MESSAGES/Horde_Kolab_Storage.mo" />
    <install as="locale/zh_TW/LC_MESSAGES/Horde_Kolab_Storage.po" name="locale/zh_TW/LC_MESSAGES/Horde_Kolab_Storage.po" />
-   <install as="test_drivers" name="script/Horde/Kolab/Storage/test_drivers.php" />
    <install as="Horde/Kolab/Storage/AclTest.php" name="test/Horde/Kolab/Storage/AclTest.php" />
    <install as="Horde/Kolab/Storage/AllTests.php" name="test/Horde/Kolab/Storage/AllTests.php" />
    <install as="Horde/Kolab/Storage/AttachmentTest.php" name="test/Horde/Kolab/Storage/AttachmentTest.php" />
    <install as="Horde/Kolab/Storage/phpunit.xml" name="test/Horde/Kolab/Storage/phpunit.xml" />
    <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/TestCase.php" name="test/Horde/Kolab/Storage/TestCase.php" />
    <install as="Horde/Kolab/Storage/TriggerTest.php" name="test/Horde/Kolab/Storage/TriggerTest.php" />
    <install as="Horde/Kolab/Storage/Server/DriverTest.php" name="test/Horde/Kolab/Storage/Server/DriverTest.php" />
+   <install as="Horde/Kolab/Storage/Unit/BaseTest.php" name="test/Horde/Kolab/Storage/Unit/BaseTest.php" />
    <install as="Horde/Kolab/Storage/Unit/CliTest.php" name="test/Horde/Kolab/Storage/Unit/CliTest.php" />
+   <install as="Horde/Kolab/Storage/Unit/Cli/ModuleTest.php" name="test/Horde/Kolab/Storage/Unit/Cli/ModuleTest.php" />
+   <install as="Horde/Kolab/Storage/Unit/Cli/OptionsTest.php" name="test/Horde/Kolab/Storage/Unit/Cli/OptionsTest.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" />
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/BaseTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/BaseTest.php
new file mode 100644 (file)
index 0000000..409577b
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Test the basic storage handler.
+ *
+ * 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 basic storage handler.
+ *
+ * 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_BaseTest
+extends Horde_Kolab_Storage_TestCase
+{
+    public function testConstruction()
+    {
+        new Horde_Kolab_Storage_Base(new Horde_Kolab_Storage_Driver_Mock());
+    }
+}