framework/Db/test/Horde/Db/Adapter/Pdo/conf.php
framework/Kolab_Storage/test/Horde/Kolab/Storage/conf.php
framework/Ldap/test/Horde/Ldap/conf.php
+framework/Share/test/Horde/Share/conf.php
+framework/Share/test/Horde/Share/Sql/conf.php
+framework/Share/test/Horde/Share/Sql/Pdo/conf.php
+framework/Share/test/Horde/Share/SqlHierarchical/conf.php
+framework/Share/test/Horde/Share/SqlHierarchical/Pdo/conf.php
# Dynamically generated content that may live in the repo directories
/lib/
<active>yes</active>
</lead>
<date>2011-01-03</date>
- <time>17:30:14</time>
+ <time>22:15:46</time>
<version>
<release>0.0.4</release>
<api>0.0.4</api>
<dir name="test">
<dir name="Horde">
<dir name="Share">
+ <dir name="Sql">
+ <dir name="Pdo">
+ <file name="MysqlTest.php" role="test" />
+ <file name="PgsqlTest.php" role="test" />
+ <file name="SqliteTest.php" role="test" />
+ </dir> <!-- /test/Horde/Share/Sql/Pdo -->
+ <file name="Base.php" role="test" />
+ <file name="MysqliTest.php" role="test" />
+ <file name="MysqlTest.php" role="test" />
+ </dir> <!-- /test/Horde/Share/Sql -->
+ <dir name="SqlHierarchical">
+ <dir name="Pdo">
+ <file name="MysqlTest.php" role="test" />
+ <file name="PgsqlTest.php" role="test" />
+ <file name="SqliteTest.php" role="test" />
+ </dir> <!-- /test/Horde/Share/SqlHierarchical/Pdo -->
+ <file name="Base.php" role="test" />
+ <file name="MysqliTest.php" role="test" />
+ <file name="MysqlTest.php" role="test" />
+ </dir> <!-- /test/Horde/Share/SqlHierarchical -->
<file name="AllTests.php" role="test" />
<file name="Autoload.php" role="test" />
- <file name="SqlHierarchicalTest.php" role="test" />
- <file name="SqlTest.php" role="test" />
- <file name="TestBase.php" role="test" />
+ <file name="Base.php" role="test" />
+ <file name="conf.php.dist" role="test" />
</dir> <!-- /test/Horde/Share -->
</dir> <!-- /test/Horde -->
</dir> <!-- /test -->
<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/Autoload.php" name="test/Horde/Share/Autoload.php" />
- <install as="Horde/Share/SqlHierarchicalTest.php" name="test/Horde/Share/SqlHierarchicalTest.php" />
- <install as="Horde/Share/SqlTest.php" name="test/Horde/Share/SqlTest.php" />
- <install as="Horde/Share/TestBase.php" name="test/Horde/Share/TestBase.php" />
+ <install as="Horde/Share/Base.php" name="test/Horde/Share/Base.php" />
+ <install as="Horde/Share/conf.php.dist" name="test/Horde/Share/conf.php.dist" />
+ <install as="Horde/Share/Sql/Base.php" name="test/Horde/Share/Sql/Base.php" />
+ <install as="Horde/Share/Sql/MysqliTest.php" name="test/Horde/Share/Sql/MysqliTest.php" />
+ <install as="Horde/Share/Sql/MysqlTest.php" name="test/Horde/Share/Sql/MysqlTest.php" />
+ <install as="Horde/Share/Sql/Pdo/MysqlTest.php" name="test/Horde/Share/Sql/Pdo/MysqlTest.php" />
+ <install as="Horde/Share/Sql/Pdo/PgsqlTest.php" name="test/Horde/Share/Sql/Pdo/PgsqlTest.php" />
+ <install as="Horde/Share/Sql/Pdo/SqliteTest.php" name="test/Horde/Share/Sql/Pdo/SqliteTest.php" />
+ <install as="Horde/Share/SqlHierarchical/Base.php" name="test/Horde/Share/SqlHierarchical/Base.php" />
+ <install as="Horde/Share/SqlHierarchical/MysqliTest.php" name="test/Horde/Share/SqlHierarchical/MysqliTest.php" />
+ <install as="Horde/Share/SqlHierarchical/MysqlTest.php" name="test/Horde/Share/SqlHierarchical/MysqlTest.php" />
+ <install as="Horde/Share/SqlHierarchical/Pdo/MysqlTest.php" name="test/Horde/Share/SqlHierarchical/Pdo/MysqlTest.php" />
+ <install as="Horde/Share/SqlHierarchical/Pdo/PgsqlTest.php" name="test/Horde/Share/SqlHierarchical/Pdo/PgsqlTest.php" />
+ <install as="Horde/Share/SqlHierarchical/Pdo/SqliteTest.php" name="test/Horde/Share/SqlHierarchical/Pdo/SqliteTest.php" />
</filelist>
</phprelease>
<changelog>
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/Autoload.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_Test_Base extends Horde_Test_Case
+{
+ protected static $share;
+
+ public function testGetApp()
+ {
+ $this->assertEquals('test', self::$share->getApp());
+ }
+
+ public function baseAddShare()
+ {
+ $share = self::$share->newShare('john', 'myshare');
+ $this->assertInstanceOf('Horde_Share_Object', $share);
+ self::$share->addShare($share);
+ return $share;
+ }
+
+ public function basePermissions($myshareid)
+ {
+ // System share.
+ $share = self::$share->newShare(null, 'systemshare');
+ $perm = $share->getPermission();
+ $this->assertInstanceOf('Horde_Perms_Permission', $perm);
+ $perm->addDefaultPermission(Horde_Perms::SHOW | Horde_Perms::READ);
+ $share->setPermission($perm);
+ $share->save();
+ $this->assertTrue($share->hasPermission('john', Horde_Perms::SHOW));
+ $this->assertTrue($share->hasPermission('john', Horde_Perms::READ));
+ $this->assertFalse($share->hasPermission('john', Horde_Perms::EDIT));
+ $this->assertFalse($share->hasPermission('john', Horde_Perms::DELETE));
+
+ // Foreign share with user permissions.
+ $janeshare = self::$share->newShare('jane', 'janeshare');
+ $janeshare->addUserPermission('john', Horde_Perms::SHOW | Horde_Perms::READ | Horde_Perms::EDIT);
+ $janeshare->save();
+ $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::SHOW));
+ $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::READ));
+ $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::EDIT));
+ $this->assertFalse($janeshare->hasPermission('john', Horde_Perms::DELETE));
+
+ // Foreign share with group permissions.
+ $groupshare = self::$share->newShare('jane', 'groupshare');
+ $groupshare->addGroupPermission('mygroup', Horde_Perms::SHOW | Horde_Perms::READ | Horde_Perms::DELETE);
+ $groupshare->save();
+ $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::SHOW));
+ $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::READ));
+ $this->assertFalse($groupshare->hasPermission('john', Horde_Perms::EDIT));
+ $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::DELETE));
+
+ // Foreign share without permissions.
+ $share = self::$share->newShare('jane', 'noshare');
+ $share->save();
+
+ return array($myshareid, $janeshare->getId(), $groupshare->getId());
+ }
+
+ public function baseExists()
+ {
+ $this->assertTrue(self::$share->exists('myshare'));
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ $this->assertTrue(self::$share->exists('myshare'));
+ }
+
+ public function baseCountShares()
+ {
+ // Getting shares from cache.
+ $this->assertEquals(4, self::$share->countShares('john'));
+ $this->assertEquals(2, self::$share->countShares('john', Horde_Perms::EDIT));
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ // Getting shares from backend.
+ $this->assertEquals(4, self::$share->countShares('john'));
+ $this->assertEquals(2, self::$share->countShares('john', Horde_Perms::EDIT));
+ }
+
+ public function baseGetShare()
+ {
+ $share = self::$share->getShare('myshare');
+ $this->assertInstanceOf('Horde_Share_Object', $share);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ $share = self::$share->getShare('myshare');
+ $this->assertInstanceOf('Horde_Share_Object', $share);
+
+ return array($share, self::$share->getShare('janeshare'), self::$share->getShare('groupshare'));
+ }
+
+ public function baseGetShareById(array $shares)
+ {
+ $newshare = self::$share->getShareById($shares[0]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[0], $newshare);
+ $newshare = self::$share->getShareById($shares[1]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[1], $newshare);
+ $newshare = self::$share->getShareById($shares[2]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[2], $newshare);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ $newshare = self::$share->getShareById($shares[0]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[0], $newshare);
+ $newshare = self::$share->getShareById($shares[1]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[1], $newshare);
+ $newshare = self::$share->getShareById($shares[2]->getId());
+ $this->assertInstanceOf('Horde_Share_Object', $newshare);
+ $this->assertEquals($shares[2], $newshare);
+ }
+
+ public function baseGetShares(array $shares)
+ {
+ $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
+ $this->assertType('array', $newshares);
+ $this->assertEquals(3, count($newshares));
+ $this->assertArrayHasKey('myshare', $newshares);
+ $this->assertArrayHasKey('janeshare', $newshares);
+ $this->assertArrayHasKey('groupshare', $newshares);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['myshare']);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['janeshare']);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['groupshare']);
+ $this->assertEquals($newshares['myshare'], $shares[0]);
+ $this->assertEquals($newshares['janeshare'], $shares[1]);
+ $this->assertEquals($newshares['groupshare'], $shares[2]);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
+ $this->assertType('array', $newshares);
+ $this->assertEquals(3, count($newshares));
+ $this->assertArrayHasKey('myshare', $newshares);
+ $this->assertArrayHasKey('janeshare', $newshares);
+ $this->assertArrayHasKey('groupshare', $newshares);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['myshare']);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['janeshare']);
+ $this->assertInstanceOf('Horde_Share_Object', $newshares['groupshare']);
+ $this->assertEquals($newshares['myshare'], $shares[0]);
+ $this->assertEquals($newshares['janeshare'], $shares[1]);
+ $this->assertEquals($newshares['groupshare'], $shares[2]);
+ }
+
+ public function baseListAllShares()
+ {
+ // Getting shares from cache.
+ $shares = self::$share->listAllShares();
+ $this->assertType('array', $shares);
+ $this->assertEquals(5, count($shares));
+ $this->assertArrayHasKey('myshare', $shares);
+ $this->assertArrayHasKey('systemshare', $shares);
+ $this->assertArrayHasKey('janeshare', $shares);
+ $this->assertArrayHasKey('groupshare', $shares);
+ $this->assertArrayHasKey('noshare', $shares);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ // Getting shares from backend.
+ $shares = self::$share->listAllShares();
+ $this->assertType('array', $shares);
+ $this->assertEquals(5, count($shares));
+ $this->assertArrayHasKey('myshare', $shares);
+ $this->assertArrayHasKey('systemshare', $shares);
+ $this->assertArrayHasKey('janeshare', $shares);
+ $this->assertArrayHasKey('groupshare', $shares);
+ $this->assertArrayHasKey('noshare', $shares);
+ }
+
+ public function baseListSystemShares()
+ {
+ // Getting shares from cache.
+ $shares = self::$share->listSystemShares();
+ $this->assertType('array', $shares);
+ $this->assertEquals(1, count($shares));
+ $this->assertArrayHasKey('systemshare', $shares);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ // Getting shares from backend.
+ $shares = self::$share->listSystemShares();
+ $this->assertType('array', $shares);
+ $this->assertEquals(1, count($shares));
+ $this->assertArrayHasKey('systemshare', $shares);
+ }
+
+ public function baseRemoveShare(array $share)
+ {
+ self::$share->removeShare($share[0]);
+ try {
+ self::$share->getShareById($share[0]->getId());
+ $this->fail('Share ' . $share[0]->getId() . ' should be removed by now.');
+ } catch (Horde_Exception_NotFound $e) {
+ }
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ try {
+ self::$share->getShareById($share[0]->getId());
+ $this->fail('Share ' . $share[0]->getId() . ' should be removed by now.');
+ } catch (Horde_Exception_NotFound $e) {
+ }
+ }
+}
+
+class Horde_Group_Test extends Horde_Group {
+ public function __construct()
+ {
+ }
+
+ public function __wakeup()
+ {
+ }
+
+ public function userIsInGroup($user, $gid, $subgroups = true)
+ {
+ return $user == 'john' && $gid == 'mygroup';
+ }
+
+ public function getGroupMemberships($user, $parentGroups = false)
+ {
+ return $user == 'john' ? array('mygroup' => 'mygroup') : array();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_Test_Sql_Base extends Horde_Share_Test_Base
+{
+ protected static $db;
+
+ public function testSetTable()
+ {
+ $this->assertEquals('test_shares', self::$share->getTable());
+ self::$share->setTable('foo');
+ $this->assertEquals('foo', self::$share->getTable());
+ self::$share->setTable('test_shares');
+ }
+
+ public function testSetStorage()
+ {
+ self::$share->setStorage(self::$db);
+ $this->assertEquals(self::$db, self::$share->getStorage());
+ }
+
+ public function testAddShare()
+ {
+ $share = parent::baseAddShare();
+ $this->assertInstanceOf('Horde_Share_Object_Sql', $share);
+ return $share->getId();
+ }
+
+ /**
+ * @depends testAddShare
+ */
+ public function testPermissions($myshareid)
+ {
+ return parent::basePermissions($myshareid);
+ }
+
+ /**
+ * @depends testAddShare
+ */
+ public function testExists()
+ {
+ parent::baseExists();
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testCountShares()
+ {
+ parent::baseCountShares();
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testGetShare()
+ {
+ $shares = parent::baseGetShare();
+ $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[0]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[1]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[2]);
+ return $shares;
+ }
+
+ /**
+ * @depends testGetShare
+ */
+ public function testGetShareById(array $shares)
+ {
+ parent::baseGetShareById($shares);
+ }
+
+ /**
+ * @depends testGetShare
+ */
+ public function testGetShares(array $shares)
+ {
+ parent::baseGetShares($shares);
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testListAllShares()
+ {
+ parent::baseListAllShares();
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testListSystemShares()
+ {
+ parent::baseListSystemShares();
+ }
+
+ /**
+ * @depends testGetShare
+ */
+ public function testRemoveShare(array $share)
+ {
+ parent::baseRemoveShare($share);
+ }
+
+ public static function setUpBeforeClass()
+ {
+ //self::$db->setLogger(new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)));
+ $migration = new Horde_Db_Migration_Base(self::$db);
+
+ $t = $migration->createTable('test_shares', array('primaryKey' => 'share_id'));
+ //$t->column('share_id', 'integer', array('null' => false, 'autoincrement' => true));
+ $t->column('share_name', 'string', array('limit' => 255, 'null' => false));
+ $t->column('share_owner', 'string', array('limit' => 255));
+ $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));
+ $t->column('attribute_desc', 'string', array('limit' => 255));
+ $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');
+
+ $group = new Horde_Group_Test();
+ self::$share = new Horde_Share_Sql('test', 'john', new Horde_Perms(), $group);
+ self::$share->setStorage(self::$db);
+
+ // FIXME
+ $GLOBALS['injector'] = new Horde_Injector(new Horde_Injector_TopLevel());
+ $GLOBALS['injector']->setInstance('Horde_Group', $group);
+ }
+
+ 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.');
+ }
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/Base.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_Sql_MysqlTest extends Horde_Share_Test_Sql_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('mysql')) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_MYSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Mysql($config['share']['sql']['mysql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/Base.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_Sql_MysqliTest extends Horde_Share_Test_Sql_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('mysqli')) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_MYSQLI_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Mysqli($config['share']['sql']['mysqli']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_Sql_Pdo_MysqlTest extends Horde_Share_Test_Sql_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('pdo') ||
+ !in_array('mysql', PDO::getAvailableDrivers())) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_PDO_MYSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Pdo_Mysql($config['share']['sql']['pdo_mysql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_Sql_Pdo_PgsqlTest extends Horde_Share_Test_Sql_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('pdo') ||
+ !in_array('pgsql', PDO::getAvailableDrivers())) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_PDO_PGSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Pdo_Pgsql($config['share']['sql']['pdo_pgsql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_Sql_Pdo_SqliteTest extends Horde_Share_Test_Sql_Base
+{
+ 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:'));
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_Test_SqlHierarchical_Base extends Horde_Share_Test_Base
+{
+ protected static $db;
+
+ public function testSetTable()
+ {
+ $this->assertEquals('test_shares', self::$share->getTable());
+ self::$share->setTable('foo');
+ $this->assertEquals('foo', self::$share->getTable());
+ self::$share->setTable('test_shares');
+ }
+
+ public function testSetStorage()
+ {
+ self::$share->setStorage(self::$db);
+ $this->assertEquals(self::$db, self::$share->getStorage());
+ }
+
+ public function testAddShare()
+ {
+ $share = parent::baseAddShare();
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $share);
+ return $share->getId();
+ }
+
+ /**
+ * @depends testAddShare
+ */
+ public function testPermissions($myshareid)
+ {
+ $shareids = parent::basePermissions($myshareid);
+ return array(self::$share->getShareById($shareids[0]),
+ self::$share->getShareById($shareids[1]),
+ self::$share->getShareById($shareids[2]));
+ }
+
+ /**
+ * @depends testAddShare
+ */
+ public function testExists()
+ {
+ $this->markTestSkipped('Not supported by hierarchical driver.');
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testCountShares()
+ {
+ parent::baseCountShares();
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testGetShare()
+ {
+ $this->markTestSkipped('Not supported by hierarchical driver.');
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testGetShareById(array $shares)
+ {
+ parent::baseGetShareById($shares);
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testGetShares(array $shares)
+ {
+ $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
+ $this->assertType('array', $newshares);
+ $this->assertEquals(3, count($newshares));
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[0]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[1]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[2]);
+ $this->assertEquals($newshares[0], $shares[0]);
+ $this->assertEquals($newshares[1], $shares[1]);
+ $this->assertEquals($newshares[2], $shares[2]);
+
+ // Reset cache.
+ self::$share->resetCache();
+
+ $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
+ $this->assertType('array', $newshares);
+ $this->assertEquals(3, count($newshares));
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[0]->getId()]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[1]->getId()]);
+ $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[2]->getId()]);
+ $this->assertEquals($newshares[$shares[0]->getId()], $shares[0]);
+ $this->assertEquals($newshares[$shares[1]->getId()], $shares[1]);
+ $this->assertEquals($newshares[$shares[2]->getId()], $shares[2]);
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testListAllShares()
+ {
+ $this->markTestSkipped('Not supported by hierarchical driver.');
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testListSystemShares()
+ {
+ $this->markTestSkipped('Not supported by hierarchical driver.');
+ }
+
+ /**
+ * @depends testPermissions
+ */
+ public function testRemoveShare(array $share)
+ {
+ parent::baseRemoveShare($share);
+ }
+
+ public static function setUpBeforeClass()
+ {
+ //self::$db->setLogger(new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)));
+ $migration = new Horde_Db_Migration_Base(self::$db);
+
+ $t = $migration->createTable('test_shares', array('primaryKey' => 'share_id'));
+ //$t->column('share_id', 'integer', array('null' => false, 'autoincrement' => true));
+ $t->column('share_owner', 'string', array('limit' => 255));
+ $t->column('share_flags', 'integer', array('default' => 0, 'null' => false));
+ $t->column('share_parents', 'string', array('limit' => 255));
+ $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));
+ $t->column('attribute_desc', 'string', array('limit' => 255));
+ $t->end();
+
+ $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'));
+ $migration->addIndex('test_shares', array('share_parents'));
+
+ $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');
+
+ $group = new Horde_Group_Test();
+ self::$share = new Horde_Share_Sql_Hierarchical('test', 'john', new Horde_Perms(), $group);
+ self::$share->setStorage(self::$db);
+
+ // FIXME
+ $GLOBALS['injector'] = new Horde_Injector(new Horde_Injector_TopLevel());
+ $GLOBALS['injector']->setInstance('Horde_Group', $group);
+ }
+
+ 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.');
+ }
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/Base.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_SqlHierarchical_MysqlTest extends Horde_Share_Test_SqlHierarchical_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('mysql')) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_MYSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Mysql($config['share']['sql']['mysql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/Base.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_SqlHierarchical_MysqliTest extends Horde_Share_Test_SqlHierarchical_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('mysqli')) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_MYSQLI_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Mysqli($config['share']['sql']['mysqli']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_SqlHierarchical_Pdo_MysqlTest extends Horde_Share_Test_SqlHierarchical_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('pdo') ||
+ !in_array('mysql', PDO::getAvailableDrivers())) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_PDO_MYSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Pdo_Mysql($config['share']['sql']['pdo_mysql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_SqlHierarchical_Pdo_PgsqlTest extends Horde_Share_Test_SqlHierarchical_Base
+{
+ public static function setUpBeforeClass()
+ {
+ if (!extension_loaded('pdo') ||
+ !in_array('pgsql', PDO::getAvailableDrivers())) {
+ return;
+ }
+ $config = self::getConfig('SHARE_SQL_PDO_PGSQL_TEST_CONFIG');
+ self::$db = new Horde_Db_Adapter_Pdo_Pgsql($config['share']['sql']['pdo_pgsql']);
+ parent::setUpBeforeClass();
+ }
+}
--- /dev/null
+<?php
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Base.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_SqlHierarchical_Pdo_SqliteTest extends Horde_Share_Test_SqlHierarchical_Base
+{
+ 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:'));
+ parent::setUpBeforeClass();
+ }
+}
+++ /dev/null
-<?php
-/**
- * Prepare the test setup.
- */
-require_once dirname(__FILE__) . '/TestBase.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_SqlHierarchicalTest extends Horde_Share_TestBase
-{
- protected static $db;
-
- public function testSetTable()
- {
- $this->assertEquals('test_shares', self::$share->getTable());
- self::$share->setTable('foo');
- $this->assertEquals('foo', self::$share->getTable());
- self::$share->setTable('test_shares');
- }
-
- public function testSetStorage()
- {
- self::$share->setStorage(self::$db);
- $this->assertEquals(self::$db, self::$share->getStorage());
- }
-
- public function testAddShare()
- {
- $share = parent::baseAddShare();
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $share);
- return $share->getId();
- }
-
- /**
- * @depends testAddShare
- */
- public function testPermissions($myshareid)
- {
- $shareids = parent::basePermissions($myshareid);
- return array(self::$share->getShareById($shareids[0]),
- self::$share->getShareById($shareids[1]),
- self::$share->getShareById($shareids[2]));
- }
-
- /**
- * @depends testAddShare
- */
- public function testExists()
- {
- $this->markTestSkipped('Not supported by hierarchical driver.');
- }
-
- /**
- * @depends testPermissions
- */
- public function testCountShares()
- {
- parent::baseCountShares();
- }
-
- /**
- * @depends testPermissions
- */
- public function testGetShare()
- {
- $this->markTestSkipped('Not supported by hierarchical driver.');
- }
-
- /**
- * @depends testPermissions
- */
- public function testGetShareById(array $shares)
- {
- parent::baseGetShareById($shares);
- }
-
- /**
- * @depends testPermissions
- */
- public function testGetShares(array $shares)
- {
- $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
- $this->assertType('array', $newshares);
- $this->assertEquals(3, count($newshares));
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[0]);
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[1]);
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[2]);
- $this->assertEquals($newshares[0], $shares[0]);
- $this->assertEquals($newshares[1], $shares[1]);
- $this->assertEquals($newshares[2], $shares[2]);
-
- // Reset cache.
- self::$share->resetCache();
-
- $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
- $this->assertType('array', $newshares);
- $this->assertEquals(3, count($newshares));
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[0]->getId()]);
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[1]->getId()]);
- $this->assertInstanceOf('Horde_Share_Object_Sql_Hierarchical', $newshares[$shares[2]->getId()]);
- $this->assertEquals($newshares[$shares[0]->getId()], $shares[0]);
- $this->assertEquals($newshares[$shares[1]->getId()], $shares[1]);
- $this->assertEquals($newshares[$shares[2]->getId()], $shares[2]);
- }
-
- /**
- * @depends testPermissions
- */
- public function testListAllShares()
- {
- $this->markTestSkipped('Not supported by hierarchical driver.');
- }
-
- /**
- * @depends testPermissions
- */
- public function testListSystemShares()
- {
- $this->markTestSkipped('Not supported by hierarchical driver.');
- }
-
- /**
- * @depends testPermissions
- */
- public function testRemoveShare(array $share)
- {
- parent::baseRemoveShare($share);
- }
-
- 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:'));
- //self::$db->setLogger(new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)));
- $migration = new Horde_Db_Migration_Base(self::$db);
-
- $t = $migration->createTable('test_shares', array('primaryKey' => 'share_id'));
- //$t->column('share_id', 'integer', array('null' => false, 'autoincrement' => true));
- $t->column('share_owner', 'string', array('limit' => 255));
- $t->column('share_flags', 'integer', array('default' => 0, 'null' => false));
- $t->column('share_parents', 'string', array('limit' => 255));
- $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));
- $t->column('attribute_desc', 'string', array('limit' => 255));
- $t->end();
-
- $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'));
- $migration->addIndex('test_shares', array('share_parents'));
-
- $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');
-
- $group = new Horde_Group_Test();
- self::$share = new Horde_Share_Sql_Hierarchical('test', 'john', new Horde_Perms(), $group);
- self::$share->setStorage(self::$db);
-
- // FIXME
- $GLOBALS['injector'] = new Horde_Injector(new Horde_Injector_TopLevel());
- $GLOBALS['injector']->setInstance('Horde_Group', $group);
- }
-
- 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.');
- }
- }
-}
+++ /dev/null
-<?php
-/**
- * Prepare the test setup.
- */
-require_once dirname(__FILE__) . '/TestBase.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 Horde_Share_TestBase
-{
- protected static $db;
-
- public function testSetTable()
- {
- $this->assertEquals('test_shares', self::$share->getTable());
- self::$share->setTable('foo');
- $this->assertEquals('foo', self::$share->getTable());
- self::$share->setTable('test_shares');
- }
-
- public function testSetStorage()
- {
- self::$share->setStorage(self::$db);
- $this->assertEquals(self::$db, self::$share->getStorage());
- }
-
- public function testAddShare()
- {
- $share = parent::baseAddShare();
- $this->assertInstanceOf('Horde_Share_Object_Sql', $share);
- return $share->getId();
- }
-
- /**
- * @depends testAddShare
- */
- public function testPermissions($myshareid)
- {
- return parent::basePermissions($myshareid);
- }
-
- /**
- * @depends testAddShare
- */
- public function testExists()
- {
- parent::baseExists();
- }
-
- /**
- * @depends testPermissions
- */
- public function testCountShares()
- {
- parent::baseCountShares();
- }
-
- /**
- * @depends testPermissions
- */
- public function testGetShare()
- {
- $shares = parent::baseGetShare();
- $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[0]);
- $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[1]);
- $this->assertInstanceOf('Horde_Share_Object_Sql', $shares[2]);
- return $shares;
- }
-
- /**
- * @depends testGetShare
- */
- public function testGetShareById(array $shares)
- {
- parent::baseGetShareById($shares);
- }
-
- /**
- * @depends testGetShare
- */
- public function testGetShares(array $shares)
- {
- parent::baseGetShares($shares);
- }
-
- /**
- * @depends testPermissions
- */
- public function testListAllShares()
- {
- parent::baseListAllShares();
- }
-
- /**
- * @depends testPermissions
- */
- public function testListSystemShares()
- {
- parent::baseListSystemShares();
- }
-
- /**
- * @depends testGetShare
- */
- public function testRemoveShare(array $share)
- {
- parent::baseRemoveShare($share);
- }
-
- 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:'));
- //self::$db->setLogger(new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)));
- $migration = new Horde_Db_Migration_Base(self::$db);
-
- $t = $migration->createTable('test_shares', array('primaryKey' => 'share_id'));
- //$t->column('share_id', 'integer', array('null' => false, 'autoincrement' => true));
- $t->column('share_name', 'string', array('limit' => 255, 'null' => false));
- $t->column('share_owner', 'string', array('limit' => 255));
- $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));
- $t->column('attribute_desc', 'string', array('limit' => 255));
- $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');
-
- $group = new Horde_Group_Test();
- self::$share = new Horde_Share_Sql('test', 'john', new Horde_Perms(), $group);
- self::$share->setStorage(self::$db);
-
- // FIXME
- $GLOBALS['injector'] = new Horde_Injector(new Horde_Injector_TopLevel());
- $GLOBALS['injector']->setInstance('Horde_Group', $group);
- }
-
- 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.');
- }
- }
-}
+++ /dev/null
-<?php
-/**
- * Prepare the test setup.
- */
-require_once dirname(__FILE__) . '/Autoload.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_TestBase extends PHPUnit_Framework_TestCase
-{
- protected static $share;
-
- public function testGetApp()
- {
- $this->assertEquals('test', self::$share->getApp());
- }
-
- public function baseAddShare()
- {
- $share = self::$share->newShare('john', 'myshare');
- $this->assertInstanceOf('Horde_Share_Object', $share);
- self::$share->addShare($share);
- return $share;
- }
-
- public function basePermissions($myshareid)
- {
- // System share.
- $share = self::$share->newShare(null, 'systemshare');
- $perm = $share->getPermission();
- $this->assertInstanceOf('Horde_Perms_Permission', $perm);
- $perm->addDefaultPermission(Horde_Perms::SHOW | Horde_Perms::READ);
- $share->setPermission($perm);
- $share->save();
- $this->assertTrue($share->hasPermission('john', Horde_Perms::SHOW));
- $this->assertTrue($share->hasPermission('john', Horde_Perms::READ));
- $this->assertFalse($share->hasPermission('john', Horde_Perms::EDIT));
- $this->assertFalse($share->hasPermission('john', Horde_Perms::DELETE));
-
- // Foreign share with user permissions.
- $janeshare = self::$share->newShare('jane', 'janeshare');
- $janeshare->addUserPermission('john', Horde_Perms::SHOW | Horde_Perms::READ | Horde_Perms::EDIT);
- $janeshare->save();
- $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::SHOW));
- $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::READ));
- $this->assertTrue($janeshare->hasPermission('john', Horde_Perms::EDIT));
- $this->assertFalse($janeshare->hasPermission('john', Horde_Perms::DELETE));
-
- // Foreign share with group permissions.
- $groupshare = self::$share->newShare('jane', 'groupshare');
- $groupshare->addGroupPermission('mygroup', Horde_Perms::SHOW | Horde_Perms::READ | Horde_Perms::DELETE);
- $groupshare->save();
- $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::SHOW));
- $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::READ));
- $this->assertFalse($groupshare->hasPermission('john', Horde_Perms::EDIT));
- $this->assertTrue($groupshare->hasPermission('john', Horde_Perms::DELETE));
-
- // Foreign share without permissions.
- $share = self::$share->newShare('jane', 'noshare');
- $share->save();
-
- return array($myshareid, $janeshare->getId(), $groupshare->getId());
- }
-
- public function baseExists()
- {
- $this->assertTrue(self::$share->exists('myshare'));
-
- // Reset cache.
- self::$share->resetCache();
-
- $this->assertTrue(self::$share->exists('myshare'));
- }
-
- public function baseCountShares()
- {
- // Getting shares from cache.
- $this->assertEquals(4, self::$share->countShares('john'));
- $this->assertEquals(2, self::$share->countShares('john', Horde_Perms::EDIT));
-
- // Reset cache.
- self::$share->resetCache();
-
- // Getting shares from backend.
- $this->assertEquals(4, self::$share->countShares('john'));
- $this->assertEquals(2, self::$share->countShares('john', Horde_Perms::EDIT));
- }
-
- public function baseGetShare()
- {
- $share = self::$share->getShare('myshare');
- $this->assertInstanceOf('Horde_Share_Object', $share);
-
- // Reset cache.
- self::$share->resetCache();
-
- $share = self::$share->getShare('myshare');
- $this->assertInstanceOf('Horde_Share_Object', $share);
-
- return array($share, self::$share->getShare('janeshare'), self::$share->getShare('groupshare'));
- }
-
- public function baseGetShareById(array $shares)
- {
- $newshare = self::$share->getShareById($shares[0]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[0], $newshare);
- $newshare = self::$share->getShareById($shares[1]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[1], $newshare);
- $newshare = self::$share->getShareById($shares[2]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[2], $newshare);
-
- // Reset cache.
- self::$share->resetCache();
-
- $newshare = self::$share->getShareById($shares[0]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[0], $newshare);
- $newshare = self::$share->getShareById($shares[1]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[1], $newshare);
- $newshare = self::$share->getShareById($shares[2]->getId());
- $this->assertInstanceOf('Horde_Share_Object', $newshare);
- $this->assertEquals($shares[2], $newshare);
- }
-
- public function baseGetShares(array $shares)
- {
- $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
- $this->assertType('array', $newshares);
- $this->assertEquals(3, count($newshares));
- $this->assertArrayHasKey('myshare', $newshares);
- $this->assertArrayHasKey('janeshare', $newshares);
- $this->assertArrayHasKey('groupshare', $newshares);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['myshare']);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['janeshare']);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['groupshare']);
- $this->assertEquals($newshares['myshare'], $shares[0]);
- $this->assertEquals($newshares['janeshare'], $shares[1]);
- $this->assertEquals($newshares['groupshare'], $shares[2]);
-
- // Reset cache.
- self::$share->resetCache();
-
- $newshares = self::$share->getShares(array($shares[0]->getId(), $shares[1]->getId(), $shares[2]->getId()));
- $this->assertType('array', $newshares);
- $this->assertEquals(3, count($newshares));
- $this->assertArrayHasKey('myshare', $newshares);
- $this->assertArrayHasKey('janeshare', $newshares);
- $this->assertArrayHasKey('groupshare', $newshares);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['myshare']);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['janeshare']);
- $this->assertInstanceOf('Horde_Share_Object', $newshares['groupshare']);
- $this->assertEquals($newshares['myshare'], $shares[0]);
- $this->assertEquals($newshares['janeshare'], $shares[1]);
- $this->assertEquals($newshares['groupshare'], $shares[2]);
- }
-
- public function baseListAllShares()
- {
- // Getting shares from cache.
- $shares = self::$share->listAllShares();
- $this->assertType('array', $shares);
- $this->assertEquals(5, count($shares));
- $this->assertArrayHasKey('myshare', $shares);
- $this->assertArrayHasKey('systemshare', $shares);
- $this->assertArrayHasKey('janeshare', $shares);
- $this->assertArrayHasKey('groupshare', $shares);
- $this->assertArrayHasKey('noshare', $shares);
-
- // Reset cache.
- self::$share->resetCache();
-
- // Getting shares from backend.
- $shares = self::$share->listAllShares();
- $this->assertType('array', $shares);
- $this->assertEquals(5, count($shares));
- $this->assertArrayHasKey('myshare', $shares);
- $this->assertArrayHasKey('systemshare', $shares);
- $this->assertArrayHasKey('janeshare', $shares);
- $this->assertArrayHasKey('groupshare', $shares);
- $this->assertArrayHasKey('noshare', $shares);
- }
-
- public function baseListSystemShares()
- {
- // Getting shares from cache.
- $shares = self::$share->listSystemShares();
- $this->assertType('array', $shares);
- $this->assertEquals(1, count($shares));
- $this->assertArrayHasKey('systemshare', $shares);
-
- // Reset cache.
- self::$share->resetCache();
-
- // Getting shares from backend.
- $shares = self::$share->listSystemShares();
- $this->assertType('array', $shares);
- $this->assertEquals(1, count($shares));
- $this->assertArrayHasKey('systemshare', $shares);
- }
-
- public function baseRemoveShare(array $share)
- {
- self::$share->removeShare($share[0]);
- try {
- self::$share->getShareById($share[0]->getId());
- $this->fail('Share ' . $share[0]->getId() . ' should be removed by now.');
- } catch (Horde_Exception_NotFound $e) {
- }
-
- // Reset cache.
- self::$share->resetCache();
-
- try {
- self::$share->getShareById($share[0]->getId());
- $this->fail('Share ' . $share[0]->getId() . ' should be removed by now.');
- } catch (Horde_Exception_NotFound $e) {
- }
- }
-}
-
-class Horde_Group_Test extends Horde_Group {
- public function __construct()
- {
- }
-
- public function __wakeup()
- {
- }
-
- public function userIsInGroup($user, $gid, $subgroups = true)
- {
- return $user == 'john' && $gid == 'mygroup';
- }
-
- public function getGroupMemberships($user, $parentGroups = false)
- {
- return $user == 'john' ? array('mygroup' => 'mygroup') : array();
- }
-}
--- /dev/null
+<?php
+// IMPORTANT: the conf.php version of this file must be both in this and any
+// subdirectory. A symlink is fine too.
+$conf['share']['sql']['mysql']['host'] = 'localhost';
+$conf['share']['sql']['mysql']['username'] = '';
+$conf['share']['sql']['mysql']['password'] = '';
+$conf['share']['sql']['mysql']['dbname'] = 'test';
+$conf['share']['sql']['mysql']['charset'] = 'utf-8';
+$conf['share']['sql']['mysqli']['host'] = 'localhost';
+$conf['share']['sql']['mysqli']['username'] = '';
+$conf['share']['sql']['mysqli']['password'] = '';
+$conf['share']['sql']['mysqli']['dbname'] = 'test';
+$conf['share']['sql']['mysqli']['charset'] = 'utf-8';
+$conf['share']['sql']['pdo_mysql']['host'] = 'localhost';
+$conf['share']['sql']['pdo_mysql']['username'] = '';
+$conf['share']['sql']['pdo_mysql']['password'] = '';
+$conf['share']['sql']['pdo_mysql']['dbname'] = 'test';
+$conf['share']['sql']['pdo_mysql']['charset'] = 'utf-8';
+$conf['share']['sql']['pdo_pgsql']['username'] = '';
+$conf['share']['sql']['pdo_pgsql']['password'] = '';
+$conf['share']['sql']['pdo_pgsql']['dbname'] = 'test';