phpbb/tests/notification/group_request_test.php
2013-07-26 17:27:52 -05:00

93 lines
2.2 KiB
PHP

<?php
/**
*
* @package testing
* @copyright (c) 2013 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/base.php';
class phpbb_notification_group_request_test extends phpbb_tests_notification_base
{
public function getDataSet()
{
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/group_request.xml');
}
protected function get_notification_types()
{
return array_merge(
parent::get_notification_types(),
array(
'group_request',
)
);
}
public function test_notifications()
{
global $phpbb_root_path, $phpEx, $phpbb_dispatcher, $phpbb_log;
include_once($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_content.' . $phpEx);
set_config(false, false, false, $this->config);
$this->container->set('groupposition.legend', new phpbb_groupposition_legend(
$this->db,
$this->user
));
$this->container->set('groupposition.teampage', new phpbb_groupposition_teampage(
$this->db,
$this->user,
$this->cache->get_driver()
));
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$phpbb_log = new phpbb_log_null();
// Now on to the actual test
$group_id = false;
group_create($group_id, GROUP_OPEN, 'test', 'test group', array());
// Add user 1 as group leader
group_user_add($group_id, 2, false, false, false, true, false);
// Add user 2 as pending
group_user_add($group_id, 3, false, false, false, false, true);
$notifications = $this->notifications->load_notifications(array(
'count_unread' => true,
'user_id' => 2,
));
$expected = array(
array(
'item_id' => 3, // user_id of requesting join
'item_parent_id' => $group_id,
'user_id' => 2,
'notification_read' => 0,
'notification_data' => array(
'group_name' => 'test',
),
),
);
$this->assertEquals(sizeof($expected), $notifications['unread_count']);
$i = 0;
foreach ($notifications['notifications'] as $notification)
{
foreach ($expected[$i] as $notification_data)
{
$this->assertEquals($value, $notification->$key, $key . ' ' . $i);
}
$i++;
}
}
}