From f82794df110686c841d782e4ff0eceb4d65f99b8 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 23 Jun 2015 17:56:54 +0200 Subject: [PATCH] [ticket/634] Add tests for birthday_list and improve modules_helper_test B3P-634 --- modules/birthday_list.php | 16 ++- tests/unit/includes/modules_helper_test.php | 14 +++ tests/unit/modules/birthday_list_test.php | 108 ++++++++++++++++++++ tests/unit/modules/fixtures/users.xml | 9 ++ 4 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 tests/unit/modules/birthday_list_test.php create mode 100644 tests/unit/modules/fixtures/users.xml 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 +
+