mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge remote-tracking branch 'callumacrae/ticket/10240' into develop-olympus
* callumacrae/ticket/10240: [ticket/10240] Added optionset to mock_user in the tests. [ticket/10240] Fixed copyright year in censor_text_test.php. [ticket/10240] Fixed censor_text test assetEquals param order. [ticket/10240] Added censor_text tests for special characters. [ticket/10240] Added censor_text tests.
This commit is contained in:
commit
85bdc65df1
3 changed files with 123 additions and 0 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -17,4 +17,20 @@ class phpbb_mock_user
|
|||
{
|
||||
public $host = "testhost";
|
||||
public $page = array('root_script_path' => '/');
|
||||
|
||||
private $options = array();
|
||||
public function optionget($item)
|
||||
{
|
||||
if (!isset($this->options[$item]))
|
||||
{
|
||||
throw new Exception(sprintf("You didn't set the option '%s' on the mock user using optionset.", $item));
|
||||
}
|
||||
|
||||
return $this->options[$item];
|
||||
}
|
||||
|
||||
public function optionset($item, $value)
|
||||
{
|
||||
$this->options[$item] = $value;
|
||||
}
|
||||
}
|
||||
|
|
85
tests/text_processing/censor_text_test.php
Normal file
85
tests/text_processing/censor_text_test.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2011 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;
|
||||
|
||||
$user->optionset('viewcensors', false);
|
||||
|
||||
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'),
|
||||
|
||||
array("new\nline\ntest", "new\nline\ntest"),
|
||||
array("tab\ttest\t", "tab\ttest\t"),
|
||||
array('öäü', 'öäü'),
|
||||
array('badw' . chr(1) . 'ord1', 'badw' . chr(1) . 'ord1'),
|
||||
array('badw' . chr(2) . 'ord1', 'badw' . chr(2) . 'ord1'),
|
||||
array('badw' . chr(3) . 'ord1', 'badw' . chr(3) . 'ord1'),
|
||||
array('badw' . chr(4) . 'ord1', 'badw' . chr(4) . 'ord1'),
|
||||
array('badw' . chr(5) . 'ord1', 'badw' . chr(5) . 'ord1'),
|
||||
array('badw' . chr(6) . 'ord1', 'badw' . chr(6) . 'ord1'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider censor_text_data
|
||||
*/
|
||||
public function test_censor_text($input, $expected)
|
||||
{
|
||||
$label = 'Testing word censor: ' . $input;
|
||||
$this->assertEquals($expected, censor_text($input), $label);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue