Add skeleton for sql driver test.
authorJan Schneider <jan@horde.org>
Thu, 16 Dec 2010 21:50:17 +0000 (22:50 +0100)
committerJan Schneider <jan@horde.org>
Thu, 16 Dec 2010 23:17:11 +0000 (00:17 +0100)
framework/Share/package.xml
framework/Share/test/Horde/Share/SqlTest.php [new file with mode: 0644]

index 35b8c1d..e40a1e8 100644 (file)
@@ -12,7 +12,7 @@ owns or has access to.</description>
   <active>yes</active>
  </lead>
  <date>2010-12-16</date>
- <time>19:14:43</time>
+ <time>22:49:36</time>
  <version>
   <release>0.0.4</release>
   <api>0.0.4</api>
@@ -321,6 +321,7 @@ owns or has access to.</description>
     <dir name="Horde">
      <dir name="Share">
       <file name="AllTests.php" role="test" />
+      <file name="SqlTest.php" role="test" />
      </dir> <!-- /test/Horde/Share -->
     </dir> <!-- /test/Horde -->
    </dir> <!-- /test -->
@@ -447,6 +448,7 @@ owns or has access to.</description>
    <install as="locale/zh_TW/LC_MESSAGES/Horde_Share.mo" name="locale/zh_TW/LC_MESSAGES/Horde_Share.mo" />
    <install as="locale/zh_TW/LC_MESSAGES/Horde_Share.po" name="locale/zh_TW/LC_MESSAGES/Horde_Share.po" />
    <install as="Horde/Share/AllTests.php" name="test/Horde/Share/AllTests.php" />
+   <install as="Horde/Share/SqlTest.php" name="test/Horde/Share/SqlTest.php" />
   </filelist>
  </phprelease>
  <changelog>
diff --git a/framework/Share/test/Horde/Share/SqlTest.php b/framework/Share/test/Horde/Share/SqlTest.php
new file mode 100644 (file)
index 0000000..f1d643a
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+/**
+ * @author     Jan Schneider <jan@horde.org>
+ * @category   Horde
+ * @package    Share
+ * @subpackage UnitTests
+ * @copyright  2010 The Horde Project (http://www.horde.org/)
+ * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
+ */
+class Horde_Share_SqlTest extends PHPUnit_Framework_TestCase
+{
+    protected static $db;
+
+    public static function setUpBeforeClass()
+    {
+        if (!extension_loaded('pdo') ||
+            !in_array('sqlite', PDO::getAvailableDrivers())) {
+            return;
+        }
+
+        self::$db = new Horde_Db_Adapter_Pdo_Sqlite(array('dbname' => ':memory:'));
+        $migration = new Horde_Db_Migration_Base(self::$db);
+
+        $t = $migration->createTable('test_shares', array('primaryKey' => false));
+        $t->column('share_id', 'integer', array('null' => false));
+        $t->column('share_name', 'string', array('limit' => 255, 'null' => false));
+        $t->column('share_owner', 'string', array('limit' => 255, 'null' => false));
+        $t->column('share_flags', 'integer', array('default' => 0, 'null' => false));
+        $t->column('perm_creator', 'integer', array('default' => 0, 'null' => false));
+        $t->column('perm_default', 'integer', array('default' => 0, 'null' => false));
+        $t->column('perm_guest', 'integer', array('default' => 0, 'null' => false));
+        $t->column('attribute_name', 'string', array('limit' => 255, 'null' => false));
+        $t->column('attribute_desc', 'string', array('limit' => 255));
+        $t->primaryKey(array('share_id'));
+        $t->end();
+
+        $migration->addIndex('test_shares', array('share_name'));
+        $migration->addIndex('test_shares', array('share_owner'));
+        $migration->addIndex('test_shares', array('perm_creator'));
+        $migration->addIndex('test_shares', array('perm_default'));
+        $migration->addIndex('test_shares', array('perm_guest'));
+
+        $t = $migration->createTable('test_shares_groups');
+        $t->column('share_id', 'integer', array('null' => false));
+        $t->column('group_uid', 'string', array('limit' => 255, 'null' => false));
+        $t->column('perm', 'integer', array('null' => false));
+        $t->end();
+
+        $migration->addIndex('test_shares_groups', array('share_id'));
+        $migration->addIndex('test_shares_groups', array('group_uid'));
+        $migration->addIndex('test_shares_groups', array('perm'));
+
+        $t = $migration->createTable('test_shares_users');
+        $t->column('share_id', 'integer', array('null' => false));
+        $t->column('user_uid', 'string', array('limit' => 255));
+        $t->column('perm', 'integer', array('null' => false));
+        $t->end();
+
+        $migration->addIndex('test_shares_users', array('share_id'));
+        $migration->addIndex('test_shares_users', array('user_uid'));
+        $migration->addIndex('test_shares_users', array('perm'));
+
+        $migration->migrate('up');
+
+        return self::$db;
+    }
+
+    public static function tearDownAfterClass()
+    {
+        if (self::$db) {
+            $migration = new Horde_Db_Migration_Base(self::$db);
+            $migration->dropTable('test_shares');
+            $migration->dropTable('test_shares_groups');
+            $migration->dropTable('test_shares_users');
+        }
+    }
+
+    public function setUp()
+    {
+        if (!self::$db) {
+            $this->markTestSkipped('No sqlite extension or no sqlite PDO driver.');
+        }
+    }
+}