Merge pull request #637 from marc1706/ticket/634
[ticket/634] Move get_sub_taged_string to fetch_posts
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)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* based on get_complete_tracking_info of phpBB3
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -627,7 +627,7 @@ class fetch_posts
|
||||
if ($text_length > 0 && (strlen($row['post_text']) > $text_length))
|
||||
{
|
||||
$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;
|
||||
}
|
||||
else
|
||||
@@ -637,4 +637,25 @@ class fetch_posts
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,23 +31,6 @@ class phpbb_unit_functions_functions_test extends \board3\portal\tests\testframe
|
||||
->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()
|
||||
{
|
||||
return array(
|
||||
|
||||
@@ -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
|
||||
'<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->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()
|
||||
@@ -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']);
|
||||
}
|
||||
}
|
||||
|
||||
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
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>
|
||||
@@ -10,6 +10,9 @@
|
||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions_acp.php');
|
||||
require_once(dirname(__FILE__) . '/../../../../../../includes/functions.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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user