From: Jan Schneider Date: Wed, 5 May 2010 15:28:09 +0000 (+0200) Subject: Start implementing a Horde_Alarm test suite. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=ec20a8aeafdd6b9d32d3ad84033116906d26fc7f;p=horde.git Start implementing a Horde_Alarm test suite. --- diff --git a/.gitignore b/.gitignore index bcfc0a964..d7c0f567d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ framework/*/test/*/*/*/*.out !framework/SyncML/tests/testpacket.php !framework/SyncML/tests/testsync.php !framework/XML_WBXML/tests/decode.php +framework/Alarm/test/Horde/Alarm/conf.php framework/Db/test/Horde/Db/Adapter/conf.php framework/Kolab_Storage/test/Horde/Kolab/Storage/conf.php diff --git a/framework/Alarm/migrations/1_horde_alarms_table.php b/framework/Alarm/migrations/1_horde_alarms_table.php new file mode 100644 index 000000000..cbe339a83 --- /dev/null +++ b/framework/Alarm/migrations/1_horde_alarms_table.php @@ -0,0 +1,32 @@ +createTable('horde_alarms'); + $t->column('alarm_id', 'string', array('limit' => 255, 'null' => false)); + $t->column('alarm_uid', 'string', array('limit' => 255)); + $t->column('alarm_start', 'datetime', array('null' => false)); + $t->column('alarm_end', 'datetime'); + $t->column('alarm_methods', 'string', array('limit' => 255)); + $t->column('alarm_params', 'text'); + $t->column('alarm_title', 'string', array('limit' => 255, 'null' => false)); + $t->column('alarm_text', 'text'); + $t->column('alarm_snooze', 'datetime'); + $t->column('alarm_dismissed', 'integer', array('limit' => 1, 'null' => false, 'default' => 0)); + $t->column('alarm_internal', 'text'); + $t->end(); + + $this->addIndex('horde_alarms', array('alarm_id')); + $this->addIndex('horde_alarms', array('alarm_uid')); + $this->addIndex('horde_alarms', array('alarm_start')); + $this->addIndex('horde_alarms', array('alarm_end')); + $this->addIndex('horde_alarms', array('alarm_snooze')); + $this->addIndex('horde_alarms', array('alarm_dismissed')); + } + + public function down() + { + $this->dropTable('horde_alarms'); + } +} diff --git a/framework/Alarm/test/Horde/Alarm/AllTests.php b/framework/Alarm/test/Horde/Alarm/AllTests.php new file mode 100644 index 000000000..20acf6a46 --- /dev/null +++ b/framework/Alarm/test/Horde/Alarm/AllTests.php @@ -0,0 +1,36 @@ + + * @license http://www.fsf.org/copyleft/lgpl.html LGPL + * @category Horde + * @package Horde_Alarm + * @subpackage UnitTests + */ + +/** + * Define the main method + */ +if (!defined('PHPUnit_MAIN_METHOD')) { + define('PHPUnit_MAIN_METHOD', 'Horde_Alarm_AllTests::main'); +} + +/** + * Prepare the test setup. + */ +require_once 'Horde/Test/AllTests.php'; + +/** + * @package Horde_Alarm + * @subpackage UnitTests + */ +class Horde_Alarm_AllTests extends Horde_Test_AllTests +{ +} + +Horde_Alarm_AllTests::init('Horde_Alarm', __FILE__); + +if (PHPUnit_MAIN_METHOD == 'Horde_Alarm_AllTests::main') { + Horde_Alarm_AllTests::main(); +} diff --git a/framework/Alarm/test/Horde/Alarm/SqlTest.php b/framework/Alarm/test/Horde/Alarm/SqlTest.php new file mode 100644 index 000000000..eb95f6074 --- /dev/null +++ b/framework/Alarm/test/Horde/Alarm/SqlTest.php @@ -0,0 +1,62 @@ + + * @license http://www.fsf.org/copyleft/lgpl.html LGPL + * @category Horde + * @package Horde_Alarm + * @subpackage UnitTests + */ + +class Horde_Alarm_SqlTest extends PHPUnit_Framework_TestCase +{ + public function setUp() + { + // @todo: remove when we no longer depend on DB. + error_reporting(E_ALL); + + // @fixme + $GLOBALS['language'] = 'en_US'; + + $config = getenv('ALARM_TEST_CONFIG'); + if ($config === false) { + $config = dirname(__FILE__) . '/conf.php'; + } + if (file_exists($config)) { + require $config; + } + if (!isset($conf['alarm']['test'])) { + $this->markTestSkipped('No configuration for Horde_Alarm test.'); + return; + } + + $adapter = str_replace(' ', '_' , ucwords(str_replace('_', ' ', basename($conf['alarm']['test']['horde']['adapter'])))); + $class = 'Horde_Db_Adapter_' . $adapter; + $this->db = new $class($conf['alarm']['test']['horde']); + + $logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)); + $this->migrator = new Horde_Db_Migration_Migrator($this->db, $logger, array('migrationsPath' => dirname(dirname(dirname(dirname(__FILE__)))) . '/migrations')); + $this->migrator->up(); + + $this->alarm = Horde_Alarm::factory('sql', $conf['alarm']['test']['pear']); + } + + public function tearDown() + { + $this->migrator->down(); + } + + public function testSet() + { + $now = time(); + $date = new Horde_Date($now); + $end = new Horde_Date($now + 3600); + $hash = array('id' => 'personalalarm', + 'user' => 'john', + 'start' => $date, + 'end' => $end, + 'methods' => array(), + 'params' => array(), + 'title' => 'This is a personal alarm.'); + $this->alarm->set($hash); + } +} diff --git a/framework/Alarm/test/Horde/Alarm/conf.php.dist b/framework/Alarm/test/Horde/Alarm/conf.php.dist new file mode 100644 index 000000000..b3a5a9c3c --- /dev/null +++ b/framework/Alarm/test/Horde/Alarm/conf.php.dist @@ -0,0 +1,15 @@ +