diff --git a/modules/birthday_list.php b/modules/birthday_list.php
index 3df8512e..9fb839f3 100644
--- a/modules/birthday_list.php
+++ b/modules/birthday_list.php
@@ -44,10 +44,10 @@ class birthday_list extends module_base
/** @var \phpbb\config\config */
protected $config;
- /** @var \phpbb\template */
+ /** @var \phpbb\template\template */
protected $template;
- /** @var \phpbb\db\driver */
+ /** @var \phpbb\db\driver\driver_interface */
protected $db;
/** @var \phpbb\user */
@@ -57,8 +57,8 @@ class birthday_list extends module_base
* Construct a birthday_list object
*
* @param \phpbb\config\config $config phpBB config
- * @param \phpbb\template $template phpBB template
- * @param \phpbb\db\driver $db Database driver
+ * @param \phpbb\template\template $template phpBB template
+ * @param \phpbb\db\driver\driver_interface $db Database driver
* @param \phpbb\user $user phpBB user object
*/
public function __construct($config, $template, $db, $user)
@@ -185,12 +185,8 @@ class birthday_list extends module_base
*/
public function uninstall($module_id, $db)
{
- $del_config = array(
- 'board3_birthdays_ahead_' . $module_id,
- );
- $sql = 'DELETE FROM ' . CONFIG_TABLE . '
- WHERE ' . $db->sql_in_set('config_name', $del_config);
- return $db->sql_query($sql);
+ $this->config->delete('board3_birthdays_ahead_' . $module_id);
+ return true;
}
/**
diff --git a/tests/unit/includes/modules_helper_test.php b/tests/unit/includes/modules_helper_test.php
index 42e95190..bd56ac50 100644
--- a/tests/unit/includes/modules_helper_test.php
+++ b/tests/unit/includes/modules_helper_test.php
@@ -11,10 +11,12 @@ require_once dirname(__FILE__) . '/../../../../../../includes/functions_admin.ph
class board3_includes_modules_helper_test extends \board3\portal\tests\testframework\database_test_case
{
+ /** @var \board3\portal\includes\modules_helper */
protected $modules_helper;
protected $modules;
+ /** @var \phpbb\config\config */
protected $config;
public function getDataSet()
@@ -113,6 +115,11 @@ class board3_includes_modules_helper_test extends \board3\portal\tests\testframe
'',
$this->modules_helper->generate_forum_select('foo', 'bar')
);
+ $this->config->set('bar', '1,2');
+ $this->assertEquals(
+ '',
+ $this->modules_helper->generate_forum_select('foo', 'bar')
+ );
}
public function test_store_selected_forums()
@@ -121,4 +128,11 @@ class board3_includes_modules_helper_test extends \board3\portal\tests\testframe
$this->modules_helper->store_selected_forums('foo');
$this->assertEquals('bar', $this->config['foo']);
}
+
+ public function test_store_left_right()
+ {
+ $this->assertEmpty($this->config['store_left_right']);
+ $this->modules_helper->store_left_right('store_left_right');
+ $this->assertEquals(0, $this->config['store_left_right']);
+ }
}
diff --git a/tests/unit/modules/birthday_list_test.php b/tests/unit/modules/birthday_list_test.php
new file mode 100644
index 00000000..b933e6e9
--- /dev/null
+++ b/tests/unit/modules/birthday_list_test.php
@@ -0,0 +1,108 @@
+createXMLDataSet(dirname(__FILE__) . '/fixtures/users.xml');
+ }
+
+ public function setUp()
+ {
+ global $auth, $phpbb_dispatcher;
+
+ parent::setUp();
+
+ $this->template = new \board3\portal\tests\mock\template($this);
+ $this->config = new \phpbb\config\config(array());
+ $this->user = new \phpbb\user('\phpbb\datetime');
+ $this->user->timezone = new \DateTimeZone('UTC');
+ $this->user->add_lang('common');
+ $this->birthday_list = new \board3\portal\modules\birthday_list($this->config, $this->template, $this->new_dbal(), $this->user);
+ $auth = $this->getMock('\phpbb\auth\auth', array('acl_get'));
+ $auth->expects($this->any())
+ ->method('acl_get')
+ ->with($this->anything())
+ ->will($this->returnValue(true));
+ $phpbb_dispatcher = $this->getMockBuilder('\phpbb\event\dispatcher')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $phpbb_dispatcher->expects($this->any())
+ ->method('trigger_event')
+ ->with($this->anything())
+ ->will($this->returnArgument(1));
+ }
+
+ public function test_get_template_side()
+ {
+ $this->assertSame('birthdays_side.html', $this->birthday_list->get_template_side(5));
+ $this->template->assert_same('', 'BIRTHDAY_LIST');
+ $this->config->set('allow_birthdays', true);
+ $this->config->set('load_birthdays', true);
+ $this->config->set('board3_birthdays_ahead_5', 5);
+ $sql_ary = array(
+ array(
+ 'username' => 'foobar',
+ 'username_clean' => 'foobar',
+ 'user_birthday' => preg_replace('/([0-9]+)-([0-9])-([0-9]+)/', '$1- $2-$3', date('d-n-Y', time())),
+ 'user_id' => 2,
+ 'user_permissions' => '',
+ 'user_sig' => '',
+ 'user_type' => USER_NORMAL,
+ ),
+ array(
+ 'username' => 'foobar2',
+ 'username_clean' => 'foobar2',
+ 'user_birthday' => preg_replace('/([0-9]+)-([0-9])-([0-9]+)/', '$1- $2-$3', date('d-n-Y', time() + 86400 * 3)),
+ 'user_id' => 3,
+ 'user_permissions' => '',
+ 'user_sig' => '',
+ 'user_type' => USER_NORMAL,
+ ),
+ );
+ $this->db->sql_multi_insert(USERS_TABLE, $sql_ary);
+ $this->assertSame('birthdays_side.html', $this->birthday_list->get_template_side(5));
+ }
+
+ public function test_get_template_acp()
+ {
+ $acp_template = $this->birthday_list->get_template_acp(5);
+ $this->assertArrayHasKey('title', $acp_template);
+ $this->assertArrayHasKey('vars', $acp_template);
+ $this->assertArrayHasKey('board3_birthdays_ahead_5', $acp_template['vars']);
+ }
+
+ public function test_install_uninstall()
+ {
+ $this->assertFalse(isset($this->config['board3_birthdays_ahead_5']));
+ $this->assertTrue($this->birthday_list->install(5));
+ $this->assertTrue(isset($this->config['board3_birthdays_ahead_5']));
+ $this->assertTrue($this->birthday_list->uninstall(5, $this->db));
+ $this->assertFalse(isset($this->config['board3_birthdays_ahead_5']));
+ }
+
+}
diff --git a/tests/unit/modules/fixtures/users.xml b/tests/unit/modules/fixtures/users.xml
new file mode 100644
index 00000000..8b234a56
--- /dev/null
+++ b/tests/unit/modules/fixtures/users.xml
@@ -0,0 +1,9 @@
+
+
+
+ username
+ user_id
+ user_colour
+ user_birthday
+
+