1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-30 12:48:21 +02:00

[ticket/10240] Added censor_text tests.

PHPBB-10240
This commit is contained in:
Callum Macrae 2011-08-22 15:35:47 +01:00
parent 540ca1a8d8
commit fa5c7f6440
3 changed files with 107 additions and 0 deletions

View File

@ -41,6 +41,28 @@ class phpbb_mock_cache
{
return $this->data['_bots'];
}
/**
* Obtain list of word censors. We don't need to parse them here,
* that is tested elsewhere.
*/
public function obtain_word_list()
{
return array(
'match' => array(
'#(?<![\\p{Nd}\\p{L}_-])([\\p{Nd}\\p{L}_-]*?badword1[\\p{Nd}\\p{L}_-]*?)(?![\\p{Nd}\\p{L}_-])#iu',
'#(?<![\\p{Nd}\\p{L}_-])([\\p{Nd}\\p{L}_-]*?badword2)(?![\\p{Nd}\\p{L}_-])#iu',
'#(?<![\\p{Nd}\\p{L}_-])(badword3[\\p{Nd}\\p{L}_-]*?)(?![\\p{Nd}\\p{L}_-])#iu',
'#(?<![\\p{Nd}\\p{L}_-])(badword4)(?![\\p{Nd}\\p{L}_-])#iu',
),
'replace' => array(
'replacement1',
'replacement2',
'replacement3',
'replacement4',
),
);
}
public function set_bots($bots)
{

View File

@ -17,4 +17,16 @@ class phpbb_mock_user
{
public $host = "testhost";
public $page = array('root_script_path' => '/');
public function optionget($item)
{
switch ($item)
{
case 'viewcensors':
return false;
default:
trigger_error('Option not found, add it to the mock user object.');
}
}
}

View File

@ -0,0 +1,73 @@
<?php
/**
*
* @package testing
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
require_once dirname(__FILE__) . '/../mock_user.php';
require_once dirname(__FILE__) . '/../mock/cache.php';
class phpbb_text_processing_censor_text_test extends phpbb_test_case
{
public function censor_text_data()
{
global $cache, $user;
$cache = new phpbb_mock_cache;
$user = new phpbb_mock_user;
return array(
array('', ''),
array('badword1', 'replacement1'),
array(' badword1', ' replacement1'),
array('badword1 ', 'replacement1 '),
array(' badword1 ', ' replacement1 '),
array('abadword1', 'replacement1'),
array('badword1w', 'replacement1'),
array('abadword1w', 'replacement1'),
array('anotherbadword1test', 'replacement1'),
array('this badword1', 'this replacement1'),
array('this badword1 word', 'this replacement1 word'),
array('badword2', 'replacement2'),
array('bbadword2', 'replacement2'),
array('bbbadword2', 'replacement2'),
array('badword2d', 'badword2d'),
array('bbadword2d', 'bbadword2d'),
array('test badword2', 'test replacement2'),
array('test badword2 word', 'test replacement2 word'),
array('badword3', 'replacement3'),
array('bbadword3', 'bbadword3'),
array('badword3d', 'replacement3'),
array('badword3ddd', 'replacement3'),
array('bbadword3d', 'bbadword3d'),
array(' badword3 ', ' replacement3 '),
array(' badword3', ' replacement3'),
array('badword4', 'replacement4'),
array('this badword4 word', 'this replacement4 word'),
array('abadword4', 'abadword4'),
array('badword4d', 'badword4d'),
array('abadword4d', 'abadword4d'),
array('badword1 badword2 badword3 badword4', 'replacement1 replacement2 replacement3 replacement4'),
array('badword1 badword2 badword3 badword4d', 'replacement1 replacement2 replacement3 badword4d'),
array('abadword1 badword2 badword3 badword4', 'replacement1 replacement2 replacement3 replacement4'),
);
}
/**
* @dataProvider censor_text_data
*/
public function test_censor_text($input, $expected)
{
$label = 'Testing word censor: ' . $input;
$this->assertEquals(censor_text($input), $expected, $label);
}
}