mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
[ticket/10240] Added censor_text tests.
PHPBB-10240
This commit is contained in:
parent
540ca1a8d8
commit
fa5c7f6440
3 changed files with 107 additions and 0 deletions
|
@ -41,6 +41,28 @@ class phpbb_mock_cache
|
||||||
{
|
{
|
||||||
return $this->data['_bots'];
|
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)
|
public function set_bots($bots)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,4 +17,16 @@ class phpbb_mock_user
|
||||||
{
|
{
|
||||||
public $host = "testhost";
|
public $host = "testhost";
|
||||||
public $page = array('root_script_path' => '/');
|
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.');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
73
tests/text_processing/censor_text_test.php
Normal file
73
tests/text_processing/censor_text_test.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue