Merge branch '2.1.x'
Conflicts: tests/unit/event/listener_test.php
This commit is contained in:
@@ -128,27 +128,6 @@ function character_limit(&$title, $limit = 0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Cut post text to given length
|
|
||||||
*
|
|
||||||
* @param string $message post text
|
|
||||||
* @param string $bbcode_uid bbcode uid
|
|
||||||
* @param int $length The desired length
|
|
||||||
*
|
|
||||||
* @return string Shortened message
|
|
||||||
*/
|
|
||||||
function get_sub_taged_string($message, $bbcode_uid, $length)
|
|
||||||
{
|
|
||||||
if (class_exists('\Nickvergessen\TrimMessage\TrimMessage'))
|
|
||||||
{
|
|
||||||
$trim = new \Nickvergessen\TrimMessage\TrimMessage($message, $bbcode_uid, $length);
|
|
||||||
$message = $trim->message();
|
|
||||||
unset($trim);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $message;
|
|
||||||
}
|
|
||||||
|
|
||||||
function ap_validate($str)
|
function ap_validate($str)
|
||||||
{
|
{
|
||||||
$s = str_replace('<br />', '<br/>', $str);
|
$s = str_replace('<br />', '<br/>', $str);
|
||||||
@@ -257,29 +236,6 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
|
|||||||
return $page_string;
|
return $page_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if table exists
|
|
||||||
* @copyright (c) 2007 phpBB Group
|
|
||||||
*
|
|
||||||
* @param string $table_name The table name to check for
|
|
||||||
* @return bool true if table exists, else false
|
|
||||||
*/
|
|
||||||
function sql_table_exists($table_name)
|
|
||||||
{
|
|
||||||
global $db;
|
|
||||||
$db->sql_return_on_error(true);
|
|
||||||
$result = $db->sql_query_limit('SELECT * FROM ' . $db->sql_escape($table_name), 1);
|
|
||||||
$db->sql_return_on_error(false);
|
|
||||||
|
|
||||||
if ($result)
|
|
||||||
{
|
|
||||||
$db->sql_freeresult($result);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get topic tracking info for news
|
* get topic tracking info for news
|
||||||
* based on get_complete_tracking_info of phpBB3
|
* based on get_complete_tracking_info of phpBB3
|
||||||
@@ -465,6 +421,8 @@ function get_user_groups()
|
|||||||
|
|
||||||
if ($groups_ary === false)
|
if ($groups_ary === false)
|
||||||
{
|
{
|
||||||
|
$groups_ary = array();
|
||||||
|
|
||||||
// get user's groups
|
// get user's groups
|
||||||
$sql = 'SELECT group_id
|
$sql = 'SELECT group_id
|
||||||
FROM ' . USER_GROUP_TABLE . '
|
FROM ' . USER_GROUP_TABLE . '
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ class birthday_list extends module_base
|
|||||||
/** @var \phpbb\config\config */
|
/** @var \phpbb\config\config */
|
||||||
protected $config;
|
protected $config;
|
||||||
|
|
||||||
/** @var \phpbb\template */
|
/** @var \phpbb\template\template */
|
||||||
protected $template;
|
protected $template;
|
||||||
|
|
||||||
/** @var \phpbb\db\driver */
|
/** @var \phpbb\db\driver\driver_interface */
|
||||||
protected $db;
|
protected $db;
|
||||||
|
|
||||||
/** @var \phpbb\user */
|
/** @var \phpbb\user */
|
||||||
@@ -57,8 +57,8 @@ class birthday_list extends module_base
|
|||||||
* Construct a birthday_list object
|
* Construct a birthday_list object
|
||||||
*
|
*
|
||||||
* @param \phpbb\config\config $config phpBB config
|
* @param \phpbb\config\config $config phpBB config
|
||||||
* @param \phpbb\template $template phpBB template
|
* @param \phpbb\template\template $template phpBB template
|
||||||
* @param \phpbb\db\driver $db Database driver
|
* @param \phpbb\db\driver\driver_interface $db Database driver
|
||||||
* @param \phpbb\user $user phpBB user object
|
* @param \phpbb\user $user phpBB user object
|
||||||
*/
|
*/
|
||||||
public function __construct($config, $template, $db, $user)
|
public function __construct($config, $template, $db, $user)
|
||||||
@@ -185,12 +185,8 @@ class birthday_list extends module_base
|
|||||||
*/
|
*/
|
||||||
public function uninstall($module_id, $db)
|
public function uninstall($module_id, $db)
|
||||||
{
|
{
|
||||||
$del_config = array(
|
$this->config->delete('board3_birthdays_ahead_' . $module_id);
|
||||||
'board3_birthdays_ahead_' . $module_id,
|
return true;
|
||||||
);
|
|
||||||
$sql = 'DELETE FROM ' . CONFIG_TABLE . '
|
|
||||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
|
||||||
return $db->sql_query($sql);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -437,12 +437,12 @@ class calendar extends module_base
|
|||||||
trigger_error($this->user->lang['FORM_INVALID']. adm_back_link($u_action), E_USER_WARNING);
|
trigger_error($this->user->lang['FORM_INVALID']. adm_back_link($u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
$event_title = $this->request->variable('event_title', ' ', true);
|
$event_title = $this->request->variable('event_title', '', true);
|
||||||
$event_desc = $this->request->variable('event_desc', ' ', true);
|
$event_desc = $this->request->variable('event_desc', '', true);
|
||||||
$event_start_date = trim($this->request->variable('event_start_date', ''));
|
$event_start_date = trim($this->request->variable('event_start_date', ''));
|
||||||
$event_end_date = trim($this->request->variable('event_end_date', ''));
|
$event_end_date = trim($this->request->variable('event_end_date', ''));
|
||||||
$event_all_day = $this->request->variable('event_all_day', false); // default to false
|
$event_all_day = $this->request->variable('event_all_day', false); // default to false
|
||||||
$event_url = $this->request->variable('event_url', ' ');
|
$event_url = $this->request->variable('event_url', '');
|
||||||
$event_permission = $this->request->variable('permission-setting-calendar', array(0 => ''));
|
$event_permission = $this->request->variable('permission-setting-calendar', array(0 => ''));
|
||||||
$groups_ary = array();
|
$groups_ary = array();
|
||||||
|
|
||||||
@@ -488,11 +488,6 @@ class calendar extends module_base
|
|||||||
trigger_error($this->user->lang['NO_EVENT_TITLE'] . adm_back_link($u_action), E_USER_WARNING);
|
trigger_error($this->user->lang['NO_EVENT_TITLE'] . adm_back_link($u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$start_time || $start_time == 0)
|
|
||||||
{
|
|
||||||
trigger_error($this->user->lang['NO_EVENT_START'] . adm_back_link($u_action), E_USER_WARNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
// overwrite already existing events and make sure we don't try to save an event outside of the normal array size of $events
|
// overwrite already existing events and make sure we don't try to save an event outside of the normal array size of $events
|
||||||
if (isset($link_id) && $link_id < sizeof($events))
|
if (isset($link_id) && $link_id < sizeof($events))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -627,7 +627,7 @@ class fetch_posts
|
|||||||
if ($text_length > 0 && (strlen($row['post_text']) > $text_length))
|
if ($text_length > 0 && (strlen($row['post_text']) > $text_length))
|
||||||
{
|
{
|
||||||
$message = str_replace(array("\n", "\r"), array('<br />', "\n"), $row['post_text']);
|
$message = str_replace(array("\n", "\r"), array('<br />', "\n"), $row['post_text']);
|
||||||
$message = get_sub_taged_string($message, $row['bbcode_uid'], $text_length);
|
$message = $this->shorten_message($message, $row['bbcode_uid'], $text_length);
|
||||||
$posts_striped = true;
|
$posts_striped = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -637,4 +637,25 @@ class fetch_posts
|
|||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shorten message to specified length
|
||||||
|
*
|
||||||
|
* @param string $message Post text
|
||||||
|
* @param string $bbcode_uid BBCode UID
|
||||||
|
* @param int $length Length the text should have after shortening
|
||||||
|
*
|
||||||
|
* @return string Shortened messsage
|
||||||
|
*/
|
||||||
|
public function shorten_message($message, $bbcode_uid, $length)
|
||||||
|
{
|
||||||
|
if (class_exists('\Nickvergessen\TrimMessage\TrimMessage'))
|
||||||
|
{
|
||||||
|
$trim = new \Nickvergessen\TrimMessage\TrimMessage($message, $bbcode_uid, $length);
|
||||||
|
$message = $trim->message();
|
||||||
|
unset($trim);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $message;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
20
tests/mock/check_form_key.php
Normal file
20
tests/mock/check_form_key.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
|
abstract class check_form_key
|
||||||
|
{
|
||||||
|
static public $form_key_valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_form_key($value)
|
||||||
|
{
|
||||||
|
return check_form_key::$form_key_valid;
|
||||||
|
}
|
||||||
@@ -29,10 +29,15 @@ class template
|
|||||||
$this->data[$row] = array();
|
$this->data[$row] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$index = (sizeof($this->data[$row])) ? sizeof($this->data[$row]) : 0;
|
||||||
foreach ($values as $key => $column)
|
foreach ($values as $key => $column)
|
||||||
{
|
{
|
||||||
$this->test_case->assertArrayNotHasKey($key, $this->data[$row]);
|
$this->test_case->assertArrayNotHasKey($key, $this->data[$row]);
|
||||||
$this->data[$row][$key] = $column;
|
if (!isset($this->data[$row][$index]))
|
||||||
|
{
|
||||||
|
$this->data[$row][$index] = array();
|
||||||
|
}
|
||||||
|
$this->data[$row][$index][$key] = $column;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,4 +68,9 @@ class template
|
|||||||
{
|
{
|
||||||
unset($this->data[$key]);
|
unset($this->data[$key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_row($row)
|
||||||
|
{
|
||||||
|
return $this->data[$row];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,6 @@
|
|||||||
|
|
||||||
namespace board3\portal\portal\modules;
|
namespace board3\portal\portal\modules;
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../../acp/portal_module.php');
|
|
||||||
|
|
||||||
class phpbb_acp_move_module_test extends \board3\portal\tests\testframework\database_test_case
|
class phpbb_acp_move_module_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
{
|
{
|
||||||
static public $redirected = false;
|
static public $redirected = false;
|
||||||
@@ -31,12 +28,26 @@ class phpbb_acp_move_module_test extends \board3\portal\tests\testframework\data
|
|||||||
/** @var \board3\portal\includes\helper */
|
/** @var \board3\portal\includes\helper */
|
||||||
protected $portal_helper;
|
protected $portal_helper;
|
||||||
|
|
||||||
|
/** @var \board3\portal\acp\portal_module */
|
||||||
|
protected $portal_module;
|
||||||
|
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/** @var \phpbb_mock_request */
|
||||||
|
protected $request;
|
||||||
|
|
||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
global $db, $cache, $phpbb_root_path, $phpEx, $user, $phpbb_container, $request, $template, $table_prefix;
|
global $db, $cache, $phpbb_root_path, $phpEx, $user, $phpbb_container, $request, $template, $table_prefix;
|
||||||
|
global $phpbb_dispatcher;
|
||||||
|
|
||||||
$user = new \board3\portal\tests\mock\user();
|
$user = new \board3\portal\tests\mock\user();
|
||||||
|
$template = new \board3\portal\tests\mock\template($this);
|
||||||
|
$this->template = $template;
|
||||||
$request = new \phpbb_mock_request;
|
$request = new \phpbb_mock_request;
|
||||||
|
$this->request = $request;
|
||||||
$phpbb_container = new \phpbb_mock_container_builder();
|
$phpbb_container = new \phpbb_mock_container_builder();
|
||||||
// Mock module service collection
|
// Mock module service collection
|
||||||
$config = new \phpbb\config\config(array());
|
$config = new \phpbb\config\config(array());
|
||||||
@@ -91,6 +102,11 @@ class phpbb_acp_move_module_test extends \board3\portal\tests\testframework\data
|
|||||||
));
|
));
|
||||||
$this->database_handler = new \board3\portal\portal\modules\database_handler($db);
|
$this->database_handler = new \board3\portal\portal\modules\database_handler($db);
|
||||||
$this->constraints_handler = new \board3\portal\portal\modules\constraints_handler($this->portal_columns, $user);
|
$this->constraints_handler = new \board3\portal\portal\modules\constraints_handler($this->portal_columns, $user);
|
||||||
|
$phpbb_dispatcher = $this->getMock('\phpbb\event\dispatcher', array('trigger_event'), array($phpbb_container));
|
||||||
|
$phpbb_dispatcher->expects($this->any())
|
||||||
|
->method('trigger_event')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnArgument(1));
|
||||||
|
|
||||||
$path_helper = new \phpbb\path_helper(
|
$path_helper = new \phpbb\path_helper(
|
||||||
new \phpbb\symfony_request(
|
new \phpbb\symfony_request(
|
||||||
@@ -382,6 +398,32 @@ class phpbb_acp_move_module_test extends \board3\portal\tests\testframework\data
|
|||||||
{
|
{
|
||||||
$this->assertSame($expected, $this->constraints_handler->can_add_module($this->portal_helper->get_module($module_class), $column));
|
$this->assertSame($expected, $this->constraints_handler->can_add_module($this->portal_helper->get_module($module_class), $column));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_main_wrong_mode()
|
||||||
|
{
|
||||||
|
$this->setExpectedTriggerError(E_USER_ERROR, 'NO_MODE');
|
||||||
|
$this->portal_module->main(5, 'foobar');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_main_config()
|
||||||
|
{
|
||||||
|
$this->portal_module->main(5, 'config');
|
||||||
|
$this->template->assert_equals(array(), 'options');
|
||||||
|
$options = $this->template->get_row('options');
|
||||||
|
$this->assertNotEmpty($this->template->get_row('options'));
|
||||||
|
$this->assertEquals(true, in_array('board3_show_all_pages', $options[9]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_main_invalid_submit()
|
||||||
|
{
|
||||||
|
$this->request->overwrite('submit', true, \phpbb\request\request_interface::POST);
|
||||||
|
$this->portal_module->main(5, 'config');
|
||||||
|
$this->template->assert_equals(array(), 'options');
|
||||||
|
$options = $this->template->get_row('options');
|
||||||
|
$this->assertNotEmpty($this->template->get_row('options'));
|
||||||
|
$this->assertEquals(true, in_array('board3_show_all_pages', $options[9]));
|
||||||
|
$this->template->assert_same(true, 'S_ERROR');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function redirect($url)
|
function redirect($url)
|
||||||
|
|||||||
23
tests/unit/acp/portal_module_test.php
Normal file
23
tests/unit/acp/portal_module_test.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) 2014 Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\portal\modules;
|
||||||
|
|
||||||
|
use board3\portal\acp\portal_info;
|
||||||
|
|
||||||
|
class phpbb_acp_portal_module_test extends \board3\portal\tests\testframework\test_case
|
||||||
|
{
|
||||||
|
public function test_portal_info()
|
||||||
|
{
|
||||||
|
$portal_info = new portal_info();
|
||||||
|
$module_info = $portal_info->module();
|
||||||
|
$this->assertArrayHasKey('filename', $module_info);
|
||||||
|
$this->assertSame('\board3\portal\acp\portal_module', $module_info['filename']);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -70,7 +70,7 @@ class listener_test extends \phpbb_template_template_test_case
|
|||||||
|
|
||||||
$this->config = new \phpbb\config\config(array(
|
$this->config = new \phpbb\config\config(array(
|
||||||
'enable_mod_rewrite' => '1',
|
'enable_mod_rewrite' => '1',
|
||||||
'board3_portal_enable' => '1',
|
'board3_enable' => '1',
|
||||||
));
|
));
|
||||||
|
|
||||||
$container = new \phpbb_mock_container_builder();
|
$container = new \phpbb_mock_container_builder();
|
||||||
@@ -79,7 +79,7 @@ class listener_test extends \phpbb_template_template_test_case
|
|||||||
$router = new \phpbb_mock_router($container, $filesystem, dirname(__FILE__) . '/', 'php', PHPBB_ENVIRONMENT, $manager);
|
$router = new \phpbb_mock_router($container, $filesystem, dirname(__FILE__) . '/', 'php', PHPBB_ENVIRONMENT, $manager);
|
||||||
$router->find_routing_files($manager->all_enabled(false));
|
$router->find_routing_files($manager->all_enabled(false));
|
||||||
$router->find(dirname(__FILE__) . '/');
|
$router->find(dirname(__FILE__) . '/');
|
||||||
$this->controller_helper = new \phpbb_mock_controller_helper($this->template, $this->user, $this->config, $router, new \phpbb\symfony_request($request), $request, new \phpbb\filesystem(), '', 'php', dirname(__FILE__) . '/');
|
$this->controller_helper = new mock_controller_helper($this->template, $this->user, $this->config, $router, new \phpbb\symfony_request($request), $request, new \phpbb\filesystem(), '', 'php', dirname(__FILE__) . '/');
|
||||||
|
|
||||||
$this->path_helper = new \phpbb\path_helper(
|
$this->path_helper = new \phpbb\path_helper(
|
||||||
new \phpbb\symfony_request(
|
new \phpbb\symfony_request(
|
||||||
@@ -91,14 +91,13 @@ class listener_test extends \phpbb_template_template_test_case
|
|||||||
$this->php_ext
|
$this->php_ext
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->auth = new \phpbb\auth\auth();
|
$this->auth = $this->getMockBuilder('\phpbb\auth\auth')
|
||||||
$userdata = array(
|
->disableOriginalConstructor()
|
||||||
'user_id' => 2,
|
->getMock();
|
||||||
);
|
$this->auth->expects($this->any())
|
||||||
$this->auth->acl($userdata);
|
->method('acl_get')
|
||||||
// Pretend to allow downloads
|
->with($this->anything())
|
||||||
$this->auth->acl_options['global']['u_view_portal'] = 0;
|
->will($this->returnValue(true));
|
||||||
$this->auth->acl[0][0] = true;
|
|
||||||
|
|
||||||
$this->controller = $this->getMockBuilder('\board3\portal\controller\main')
|
$this->controller = $this->getMockBuilder('\board3\portal\controller\main')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
@@ -166,14 +165,30 @@ class listener_test extends \phpbb_template_template_test_case
|
|||||||
|
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
|
|
||||||
$this->user->data['session_page'] = '/app.php/portal';
|
$this->controller_helper->set_current_url('/app.php/portal');
|
||||||
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
||||||
|
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
|
|
||||||
// Make sure user shouldn't see link
|
// Make sure user shouldn't see link
|
||||||
unset($this->auth->cache[0]['u_view_portal']);
|
$this->config->set('board3_enable', 0);
|
||||||
$this->auth->acl[0][0] = false;
|
$this->controller_helper->set_current_url('');
|
||||||
|
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
||||||
|
|
||||||
|
$this->assertEmpty($result);
|
||||||
|
$this->config->set('board3_enable', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_check_portal_all()
|
||||||
|
{
|
||||||
|
$this->phpbb_dispatcher->addListener('core.page_header', array($this->listener, 'add_portal_link'));
|
||||||
|
|
||||||
|
$this->controller_helper->set_current_url('');
|
||||||
|
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
||||||
|
|
||||||
|
$this->assertEmpty($result);
|
||||||
|
|
||||||
|
$this->config->set('board3_show_all_pages', true);
|
||||||
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
$result = $this->phpbb_dispatcher->trigger_event('core.page_header', compact($vars));
|
||||||
|
|
||||||
$this->assertEmpty($result);
|
$this->assertEmpty($result);
|
||||||
@@ -202,3 +217,18 @@ class listener_test extends \phpbb_template_template_test_case
|
|||||||
)), $result['lang_set_ext']);
|
)), $result['lang_set_ext']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class mock_controller_helper extends \phpbb_mock_controller_helper
|
||||||
|
{
|
||||||
|
protected $current_url = '';
|
||||||
|
|
||||||
|
public function set_current_url($url)
|
||||||
|
{
|
||||||
|
$this->current_url = $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_current_url()
|
||||||
|
{
|
||||||
|
return $this->current_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_content.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_content.php');
|
||||||
|
|
||||||
@@ -34,23 +33,6 @@ class phpbb_unit_functions_functions_test extends \board3\portal\tests\testframe
|
|||||||
->will($this->returnValue(array('match' => array('/disallowed_word/'), 'replace' => array(''))));
|
->will($this->returnValue(array('match' => array('/disallowed_word/'), 'replace' => array(''))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function data_sql_table_exists()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
array(true, 'phpbb_config'),
|
|
||||||
array(true, 'phpbb_styles'),
|
|
||||||
array(false, 'phpbb_foobar'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider data_sql_table_exists
|
|
||||||
*/
|
|
||||||
public function test_sql_table_exists($expected, $table)
|
|
||||||
{
|
|
||||||
$this->assertEquals($expected, sql_table_exists($table));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function data_character_limit()
|
public function data_character_limit()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
|
|||||||
@@ -7,8 +7,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
|
|
||||||
class phpbb_unit_functions_get_user_groups_test extends \board3\portal\tests\testframework\database_test_case
|
class phpbb_unit_functions_get_user_groups_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
{
|
{
|
||||||
public function getDataSet()
|
public function getDataSet()
|
||||||
|
|||||||
@@ -7,8 +7,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
|
|
||||||
class phpbb_functions_simple_test extends PHPUnit_Framework_TestCase
|
class phpbb_functions_simple_test extends PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
public function test_ap_validate()
|
public function test_ap_validate()
|
||||||
|
|||||||
@@ -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
|
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_helper;
|
||||||
|
|
||||||
protected $modules;
|
protected $modules;
|
||||||
|
|
||||||
|
/** @var \phpbb\config\config */
|
||||||
protected $config;
|
protected $config;
|
||||||
|
|
||||||
public function getDataSet()
|
public function getDataSet()
|
||||||
@@ -113,6 +115,11 @@ class board3_includes_modules_helper_test extends \board3\portal\tests\testframe
|
|||||||
'<select id="bar" name="bar[]" multiple="multiple"><option value="1" disabled="disabled" class="disabled-option">forum_one</option><option value="2" disabled="disabled" class="disabled-option">forum_two</option></select>',
|
'<select id="bar" name="bar[]" multiple="multiple"><option value="1" disabled="disabled" class="disabled-option">forum_one</option><option value="2" disabled="disabled" class="disabled-option">forum_two</option></select>',
|
||||||
$this->modules_helper->generate_forum_select('foo', 'bar')
|
$this->modules_helper->generate_forum_select('foo', 'bar')
|
||||||
);
|
);
|
||||||
|
$this->config->set('bar', '1,2');
|
||||||
|
$this->assertEquals(
|
||||||
|
'<select id="bar" name="bar[]" multiple="multiple"><option value="1" selected="selected" disabled="disabled" class="disabled-option">forum_one</option><option value="2" selected="selected" disabled="disabled" class="disabled-option">forum_two</option></select>',
|
||||||
|
$this->modules_helper->generate_forum_select('foo', 'bar')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_store_selected_forums()
|
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->modules_helper->store_selected_forums('foo');
|
||||||
$this->assertEquals('bar', $this->config['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']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
108
tests/unit/modules/birthday_list_test.php
Normal file
108
tests/unit/modules/birthday_list_test.php
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
|
class phpbb_unit_modules_birthday_list_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
|
{
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/** @var \board3\portal\modules\birthday_list */
|
||||||
|
protected $birthday_list;
|
||||||
|
|
||||||
|
/** @var \phpbb\config\config */
|
||||||
|
protected $config;
|
||||||
|
|
||||||
|
/** @var \phpbb\db\driver\driver_interface */
|
||||||
|
protected $db;
|
||||||
|
|
||||||
|
/** @var \phpbb\user */
|
||||||
|
protected $user;
|
||||||
|
|
||||||
|
public function getDataSet()
|
||||||
|
{
|
||||||
|
return $this->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']));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -9,17 +9,26 @@
|
|||||||
|
|
||||||
namespace board3\portal\modules;
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
require_once dirname(__FILE__) . '/../../mock/check_form_key.php';
|
||||||
|
|
||||||
class phpbb_unit_modules_calendar_test extends \board3\portal\tests\testframework\database_test_case
|
class phpbb_unit_modules_calendar_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
{
|
{
|
||||||
protected $path_helper;
|
protected $path_helper;
|
||||||
protected $calendar;
|
|
||||||
static $config;
|
static $config;
|
||||||
|
|
||||||
protected $expected_config = array();
|
protected $expected_config = array();
|
||||||
protected $expected_portal_config = array();
|
protected $expected_portal_config = array();
|
||||||
|
|
||||||
|
/** @var \board3\portal\modules\calendar */
|
||||||
|
protected $calendar;
|
||||||
|
|
||||||
|
/** @var \phpbb\request\request_interface */
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
public function getDataSet()
|
public function getDataSet()
|
||||||
{
|
{
|
||||||
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/configs.xml');
|
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/configs.xml');
|
||||||
@@ -28,7 +37,7 @@ class phpbb_unit_modules_calendar_test extends \board3\portal\tests\testframewor
|
|||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
global $cache, $phpbb_root_path, $phpEx;
|
global $cache, $phpbb_root_path, $phpEx, $phpbb_dispatcher, $request, $user;
|
||||||
|
|
||||||
$this->path_helper = new \phpbb\path_helper(
|
$this->path_helper = new \phpbb\path_helper(
|
||||||
new \phpbb\symfony_request(
|
new \phpbb\symfony_request(
|
||||||
@@ -39,11 +48,33 @@ class phpbb_unit_modules_calendar_test extends \board3\portal\tests\testframewor
|
|||||||
$phpbb_root_path,
|
$phpbb_root_path,
|
||||||
'php'
|
'php'
|
||||||
);
|
);
|
||||||
|
$db = $this->new_dbal();
|
||||||
|
$phpbb_dispatcher = $this->getMockBuilder('\phpbb\event\dispatcher')
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
$phpbb_dispatcher->expects($this->any())
|
||||||
|
->method('trigger_event')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnArgument(1));
|
||||||
self::$config = new \phpbb\config\config(array());
|
self::$config = new \phpbb\config\config(array());
|
||||||
|
\set_config('foobar', false, false, self::$config);
|
||||||
|
$this->template = new \board3\portal\tests\mock\template($this);
|
||||||
$controller_helper = new \board3\portal\tests\mock\controller_helper($phpbb_root_path, $phpEx);
|
$controller_helper = new \board3\portal\tests\mock\controller_helper($phpbb_root_path, $phpEx);
|
||||||
$controller_helper->add_route('board3_portal_controller', 'portal');
|
$controller_helper->add_route('board3_portal_controller', 'portal');
|
||||||
$modules_helper = new \board3\portal\includes\modules_helper(new \phpbb\auth\auth(), new \phpbb\config\config(array()), $controller_helper, new \phpbb_mock_request());
|
$modules_helper = new \board3\portal\includes\modules_helper(new \phpbb\auth\auth(), new \phpbb\config\config(array()), $controller_helper, new \phpbb_mock_request());
|
||||||
$this->calendar = new \board3\portal\modules\calendar(self::$config, $modules_helper, null, null, null, dirname(__FILE__) . '/../../../', 'php', null, $this->path_helper, null);
|
$request = $this->request = new \phpbb_mock_request();
|
||||||
|
$user = new \phpbb\user('\phpbb\datetime');
|
||||||
|
$user->timezone = new \DateTimeZone('UTC');
|
||||||
|
$user->add_lang('common');
|
||||||
|
$log = $this->getMockBuilder('\phpbb\log')
|
||||||
|
->setMethods(array('add'))
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
$log->expects($this->any())
|
||||||
|
->method('add')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnValue(true));
|
||||||
|
$this->calendar = new \board3\portal\modules\calendar(self::$config, $modules_helper, $this->template, $db, $this->request, dirname(__FILE__) . '/../../../', 'php', $user, $this->path_helper, $log);
|
||||||
define('PORTAL_MODULES_TABLE', 'phpbb_portal_modules');
|
define('PORTAL_MODULES_TABLE', 'phpbb_portal_modules');
|
||||||
define('PORTAL_CONFIG_TABLE', 'phpbb_portal_config');
|
define('PORTAL_CONFIG_TABLE', 'phpbb_portal_config');
|
||||||
$cache = $this->getMock('\phpbb\cache\cache', array('destroy', 'sql_exists', 'get', 'put'));
|
$cache = $this->getMock('\phpbb\cache\cache', array('destroy', 'sql_exists', 'get', 'put'));
|
||||||
@@ -116,6 +147,213 @@ class phpbb_unit_modules_calendar_test extends \board3\portal\tests\testframewor
|
|||||||
$this->assertFalse(isset($portal_config[$key]));
|
$this->assertFalse(isset($portal_config[$key]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_get_template_side()
|
||||||
|
{
|
||||||
|
set_portal_config('board3_calendar_events_5', '[{"title":"foobar","desc":" ","start_time":' . (time() - 3600) . ',"end_time":"","all_day":true,"permission":"","url":" "},{"title":"foobar","desc":" ","start_time":' . (time() + 90000) . ',"end_time":"","all_day":true,"permission":"","url":" "}]');
|
||||||
|
$this->assertSame('calendar_side.html', $this->calendar->get_template_side(5));
|
||||||
|
|
||||||
|
self::$config->set('board3_sunday_first_5', true);
|
||||||
|
$this->request->overwrite('m5', 1);
|
||||||
|
$this->assertSame('calendar_side.html', $this->calendar->get_template_side(5));
|
||||||
|
|
||||||
|
$this->request->overwrite('m5', -1);
|
||||||
|
$this->assertSame('calendar_side.html', $this->calendar->get_template_side(5));
|
||||||
|
|
||||||
|
self::$config->set('board3_display_events_5', true);
|
||||||
|
$this->assertSame('calendar_side.html', $this->calendar->get_template_side(5));
|
||||||
|
$this->assertSame(1, sizeof($this->template->get_row('minical.cur_events')));
|
||||||
|
$this->assertSame(1, sizeof($this->template->get_row('minical.upcoming_events')));
|
||||||
|
|
||||||
|
set_portal_config('board3_calendar_events_5', '[{"title":"foobar","desc":" ","start_time":' . (time() - 10800) . ',"end_time":"","all_day":true,"permission":"","url":"http://example.com"},{"title":"foobar","desc":" ","start_time":' . (time() + 108000) . ',"end_time":"","all_day":true,"permission":"","url":"' . generate_board_url() . '"},{"title":"foobar3","desc":" ","start_time":' . (time() - 90000) . ',"end_time":' . (time() + 90000) . ',"all_day":false,"permission":"","url":" "}]');
|
||||||
|
$this->template->delete_var('minical.cur_events');
|
||||||
|
$this->template->delete_var('minical.upcoming_events');
|
||||||
|
$this->assertSame('calendar_side.html', $this->calendar->get_template_side(5));
|
||||||
|
$this->assertSame(2, sizeof($this->template->get_row('minical.cur_events')));
|
||||||
|
$this->assertSame(1, sizeof($this->template->get_row('minical.upcoming_events')));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_acp()
|
||||||
|
{
|
||||||
|
$acp_template = $this->calendar->get_template_acp(5);
|
||||||
|
$this->assertArrayHasKey('title', $acp_template);
|
||||||
|
$this->assertArrayHasKey('vars', $acp_template);
|
||||||
|
$this->assertArrayHasKey('board3_display_events_5', $acp_template['vars']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_update_events_no_error()
|
||||||
|
{
|
||||||
|
$this->calendar->update_events('foobar', 5);
|
||||||
|
$this->assertNull($this->template->get_row('events'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function data_update_events()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => date('d.m.Y G:i', time() + 3600 * 3),
|
||||||
|
'event_all_day' => true,
|
||||||
|
'event_title' => 'foobar',
|
||||||
|
'id' => 0,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_NOTICE,
|
||||||
|
'<br /><br /><a href="index.php?i=-board3-portal-acp-portal_module&mode=config&module_id=5">« Back to previous page</a>',
|
||||||
|
'[{"title":"foobar","desc":" ","start_time":' . (time() + 3600) . ',"end_time":"","all_day":true,"permission":"","url":" "}]',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// Form key invalid
|
||||||
|
array(
|
||||||
|
array(),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
// Wrong start time
|
||||||
|
array(
|
||||||
|
array(),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// Wrong end time
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => '15.06.2035 13:00',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// End time in past
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => '15.06.2035 13:00',
|
||||||
|
'event_end_date' => '15.06.2005 19:00',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// End time before start
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => '15.06.2035 13:00',
|
||||||
|
'event_end_date' => '15.06.2035 12:00',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// No event title
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => date('d.m.Y G:i', time() + 3600 * 3),
|
||||||
|
'event_all_day' => true,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_WARNING,
|
||||||
|
'',
|
||||||
|
'[{"title":"foobar","desc":" ","start_time":' . (time() + 3600) . ',"end_time":"","all_day":true,"permission":"","url":" "}]',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// Create valid event
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'event_start_date' => date('d.m.Y G:i', time() + 3600 * 3),
|
||||||
|
'event_all_day' => true,
|
||||||
|
'event_title' => 'foobar',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'save' => true,
|
||||||
|
),
|
||||||
|
E_USER_NOTICE,
|
||||||
|
'<br /><br /><a href="index.php?i=-board3-portal-acp-portal_module&mode=config&module_id=5">« Back to previous page</a>',
|
||||||
|
'[{"title":"foobar","desc":" ","start_time":' . (time() + 3600) . ',"end_time":"","all_day":true,"permission":"","url":" "}]',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
// Display existing events
|
||||||
|
array(
|
||||||
|
array(),
|
||||||
|
array(),
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'board3_calendar_events_5' => '[{"title":"foobar","desc":" ","start_time":2065518000,"end_time":"","all_day":true,"permission":"","url":" "}]',
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
// Edit event
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'id' => 0,
|
||||||
|
'action' => 'edit',
|
||||||
|
),
|
||||||
|
array(),
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'[{"title":"foobar","desc":" ","start_time":' . (time() + 3600) . ',"end_time":"","all_day":true,"permission":"","url":" "}]',
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider data_update_events
|
||||||
|
*/
|
||||||
|
public function test_update_events($get_variables, $post_variables, $expected_error = E_USER_WARNING, $expected_error_message = '', $portal_config = array(), $form_key_valid = false)
|
||||||
|
{
|
||||||
|
check_form_key::$form_key_valid = $form_key_valid;
|
||||||
|
|
||||||
|
foreach ($get_variables as $key => $value)
|
||||||
|
{
|
||||||
|
$this->request->overwrite($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($post_variables as $key => $value)
|
||||||
|
{
|
||||||
|
$this->request->overwrite($key, $value, \phpbb\request\request_interface::POST);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_portal_config('board3_calendar_events_5', $portal_config);
|
||||||
|
|
||||||
|
if ($expected_error !== false)
|
||||||
|
{
|
||||||
|
if (!empty($expected_error_message))
|
||||||
|
{
|
||||||
|
$this->setExpectedTriggerError($expected_error, $expected_error_message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->setExpectedTriggerError($expected_error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->calendar->update_events('foobar', 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_config($config_name, $config_value, $is_dynamic = false)
|
function set_config($config_name, $config_value, $is_dynamic = false)
|
||||||
|
|||||||
57
tests/unit/modules/clock_test.php
Normal file
57
tests/unit/modules/clock_test.php
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
|
class phpbb_unit_modules_clock_test extends \board3\portal\tests\testframework\test_case
|
||||||
|
{
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/** @var \board3\portal\modules\clock */
|
||||||
|
protected $clock;
|
||||||
|
|
||||||
|
/** @var \phpbb\config\config */
|
||||||
|
protected $config;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->template = new \board3\portal\tests\mock\template($this);
|
||||||
|
$this->config = new \phpbb\config\config(array());
|
||||||
|
$this->clock = new \board3\portal\modules\clock($this->config, $this->template);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_side()
|
||||||
|
{
|
||||||
|
$this->assertSame('clock_side.html', $this->clock->get_template_side(5));
|
||||||
|
$this->template->assert_same(null, 'B3P_CLOCK_SRC');
|
||||||
|
$this->config->set('board3_clock_src_5', 'foobar');
|
||||||
|
$this->assertSame('clock_side.html', $this->clock->get_template_side(5));
|
||||||
|
$this->template->assert_same('foobar', 'B3P_CLOCK_SRC');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_acp()
|
||||||
|
{
|
||||||
|
$acp_template = $this->clock->get_template_acp(5);
|
||||||
|
$this->assertNotEmpty($acp_template);
|
||||||
|
$this->assertArrayHasKey('board3_clock_src_5', $acp_template['vars']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_install_uninstall()
|
||||||
|
{
|
||||||
|
$this->config->delete('board3_clock_src_5');
|
||||||
|
$this->assertTrue($this->clock->install(5));
|
||||||
|
$this->assertTrue(isset($this->config['board3_clock_src_5']));
|
||||||
|
$this->assertSame('', $this->config['board3_clock_src_5']);
|
||||||
|
$this->assertTrue($this->clock->uninstall(5, ''));
|
||||||
|
$this->assertFalse(isset($this->config['board3_clock_src_5']));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,4 +8,14 @@
|
|||||||
<column>config_name</column>
|
<column>config_name</column>
|
||||||
<column>config_value</column>
|
<column>config_value</column>
|
||||||
</table>
|
</table>
|
||||||
|
<table name="phpbb_groups">
|
||||||
|
<column>group_id</column>
|
||||||
|
<column>group_name</column>
|
||||||
|
<column>group_desc</column>
|
||||||
|
<row>
|
||||||
|
<value>5</value>
|
||||||
|
<value>admins</value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
</table>
|
||||||
</dataset>
|
</dataset>
|
||||||
|
|||||||
9
tests/unit/modules/fixtures/users.xml
Normal file
9
tests/unit/modules/fixtures/users.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<dataset>
|
||||||
|
<table name="phpbb_users">
|
||||||
|
<column>username</column>
|
||||||
|
<column>user_id</column>
|
||||||
|
<column>user_colour</column>
|
||||||
|
<column>user_birthday</column>
|
||||||
|
</table>
|
||||||
|
</dataset>
|
||||||
39
tests/unit/modules/search_test.php
Normal file
39
tests/unit/modules/search_test.php
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
|
class phpbb_unit_modules_search_test extends \board3\portal\tests\testframework\test_case
|
||||||
|
{
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/** @var \board3\portal\modules\search */
|
||||||
|
protected $search;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->template = new \board3\portal\tests\mock\template($this);
|
||||||
|
$this->search = new \board3\portal\modules\search($this->template, '', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_side()
|
||||||
|
{
|
||||||
|
$this->assertSame('search_side.html', $this->search->get_template_side(5));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_acp()
|
||||||
|
{
|
||||||
|
$acp_template = $this->search->get_template_acp(5);
|
||||||
|
$this->assertNotEmpty($acp_template);
|
||||||
|
$this->assertEmpty($acp_template['vars']);
|
||||||
|
}
|
||||||
|
}
|
||||||
173
tests/unit/modules/welcome_test.php
Normal file
173
tests/unit/modules/welcome_test.php
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) Board3 Group ( www.board3.de )
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace board3\portal\modules;
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/../../mock/check_form_key.php';
|
||||||
|
|
||||||
|
class phpbb_unit_modules_welcome_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
|
{
|
||||||
|
protected $path_helper;
|
||||||
|
|
||||||
|
/** @var \board3\portal\modules\welcome */
|
||||||
|
protected $welcome;
|
||||||
|
|
||||||
|
/** @var \phpbb\config\config */
|
||||||
|
protected $config;
|
||||||
|
|
||||||
|
/** @var \board3\portal\tests\mock\template */
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/** @var \phpbb_mock_request */
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
protected $expected_config = array();
|
||||||
|
protected $expected_portal_config = array();
|
||||||
|
|
||||||
|
public function getDataSet()
|
||||||
|
{
|
||||||
|
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/configs.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
global $cache, $phpbb_root_path, $phpEx, $phpbb_dispatcher, $request;
|
||||||
|
|
||||||
|
$this->config = new \phpbb\config\config(array());
|
||||||
|
$this->request = new \phpbb_mock_request();
|
||||||
|
$request = $this->request;
|
||||||
|
$this->template = new \board3\portal\tests\mock\template($this);
|
||||||
|
$this->user = new \phpbb\user('\phpbb\datetime');
|
||||||
|
$cache = $this->getMock('\phpbb\cache\cache', array('destroy', 'sql_exists', 'get', 'put', 'sql_load'));
|
||||||
|
$cache->expects($this->any())
|
||||||
|
->method('destroy')
|
||||||
|
->with($this->equalTo('portal_config'));
|
||||||
|
$cache->expects($this->any())
|
||||||
|
->method('get')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnValue(false));
|
||||||
|
$cache->expects($this->any())
|
||||||
|
->method('sql_exists')
|
||||||
|
->with($this->anything());
|
||||||
|
$cache->expects($this->any())
|
||||||
|
->method('sql_exists')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnValue(false));
|
||||||
|
$cache->expects($this->any())
|
||||||
|
->method('put')
|
||||||
|
->with($this->anything());
|
||||||
|
$phpbb_dispatcher = $this->getMockBuilder('\phpbb\event\dispatcher')
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
$phpbb_dispatcher->expects($this->any())
|
||||||
|
->method('trigger_event')
|
||||||
|
->with($this->anything())
|
||||||
|
->will($this->returnArgument(1));
|
||||||
|
|
||||||
|
$this->welcome = new \board3\portal\modules\welcome($this->config, $this->request, $this->template, $this->user, $phpbb_root_path, $phpEx);
|
||||||
|
\set_config('foobar', 0, false, $this->config);
|
||||||
|
$this->config->delete('foobar');
|
||||||
|
check_form_key::$form_key_valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_center()
|
||||||
|
{
|
||||||
|
\set_portal_config('board3_welcome_message_' . 5, 'Welcome to my Community!');
|
||||||
|
$this->config['board3_welcome_message_uid_' . 5] = '';
|
||||||
|
$this->config['board3_welcome_message_bitfield_' . 5] = '';
|
||||||
|
$return = $this->welcome->get_template_center(5);
|
||||||
|
$this->assertEquals('welcome_center.html', $return);
|
||||||
|
$this->template->assert_same('Welcome to my Community!', 'PORTAL_WELCOME_MSG');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_template_acp()
|
||||||
|
{
|
||||||
|
$acp_template = $this->welcome->get_template_acp(5);
|
||||||
|
$this->assertNotEmpty($acp_template);
|
||||||
|
$this->assertArrayHasKey('board3_welcome_message_5', $acp_template['vars']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_install()
|
||||||
|
{
|
||||||
|
$this->assertTrue($this->welcome->install(1));
|
||||||
|
|
||||||
|
foreach ($this->config as $key => $value)
|
||||||
|
{
|
||||||
|
$this->expected_config[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$portal_config = obtain_portal_config();
|
||||||
|
|
||||||
|
foreach ($portal_config as $key => $value)
|
||||||
|
{
|
||||||
|
$this->expected_portal_config[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dependsOn test_install
|
||||||
|
*/
|
||||||
|
public function test_uninstall()
|
||||||
|
{
|
||||||
|
$this->assertNotEmpty($this->welcome->uninstall(1, $this->db));
|
||||||
|
|
||||||
|
foreach ($this->expected_config as $key => $value)
|
||||||
|
{
|
||||||
|
$this->assertFalse(isset($this->config[$key]));
|
||||||
|
}
|
||||||
|
|
||||||
|
$portal_config = obtain_portal_config();
|
||||||
|
|
||||||
|
foreach ($this->expected_config as $key => $value)
|
||||||
|
{
|
||||||
|
$this->assertFalse(isset($portal_config[$key]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_update_welcome()
|
||||||
|
{
|
||||||
|
$this->welcome->update_welcome('foobar', 5);
|
||||||
|
$this->template->assert_same(true, 'S_EDIT');
|
||||||
|
$this->request->overwrite('preview', true, \phpbb\request\request_interface::POST);
|
||||||
|
$this->request->overwrite('welcome_message', 'foobar101');
|
||||||
|
$this->welcome->update_welcome('foobar', 5);
|
||||||
|
$this->template->assert_same(true, 'S_PREVIEW');
|
||||||
|
$this->template->assert_same('foobar101', 'PREVIEW_TEXT');
|
||||||
|
|
||||||
|
$this->request = new \phpbb_mock_request();
|
||||||
|
$this->welcome = new \board3\portal\modules\welcome($this->config, $this->request, $this->template, $this->user, '', '');
|
||||||
|
$this->request->overwrite('submit', true, \phpbb\request\request_interface::POST);
|
||||||
|
check_form_key::$form_key_valid = true;
|
||||||
|
$this->request->overwrite('welcome_message', 'foobar101');
|
||||||
|
$this->welcome->update_welcome('foobar', 5);
|
||||||
|
check_form_key::$form_key_valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_update_welcome_invalid_form_key()
|
||||||
|
{
|
||||||
|
$this->request = new \phpbb_mock_request();
|
||||||
|
$this->welcome = new \board3\portal\modules\welcome($this->config, $this->request, $this->template, $this->user, '', '');
|
||||||
|
$this->request->overwrite('submit', true, \phpbb\request\request_interface::POST);
|
||||||
|
$this->request->overwrite('welcome_message', 'foobar101');
|
||||||
|
$this->setExpectedTriggerError(E_USER_WARNING);
|
||||||
|
$this->welcome->update_welcome('foobar', 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_update_welcome_empty_message()
|
||||||
|
{
|
||||||
|
$this->request = new \phpbb_mock_request();
|
||||||
|
$this->welcome = new \board3\portal\modules\welcome($this->config, $this->request, $this->template, $this->user, '', '');
|
||||||
|
$this->request->overwrite('submit', true, \phpbb\request\request_interface::POST);
|
||||||
|
$this->request->overwrite('welcome_message', '');
|
||||||
|
$this->setExpectedTriggerError(E_USER_WARNING);
|
||||||
|
check_form_key::$form_key_valid = true;
|
||||||
|
$this->welcome->update_welcome('foobar', 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,10 +7,12 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../../includes/functions.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.php');
|
||||||
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
require_once(dirname(__FILE__) . '/../../../../../../includes/utf/utf_tools.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../../vendor/nickvergessen/phpbb-tool-trimmessage/src/Nickvergessen/TrimMessage/TrimMessage.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../../vendor/nickvergessen/phpbb-tool-trimmessage/src/Nickvergessen/TrimMessage/PhpbbBbcodes.php');
|
||||||
|
|
||||||
|
|
||||||
class phpbb_portal_fetch_posts_test extends \board3\portal\tests\testframework\database_test_case
|
class phpbb_portal_fetch_posts_test extends \board3\portal\tests\testframework\database_test_case
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user