mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge branch 'develop-olympus' into develop
* develop-olympus: [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. Conflicts: tests/mock/cache.php
This commit is contained in:
commit
3048fcf4b8
3 changed files with 123 additions and 0 deletions
|
@ -31,6 +31,28 @@ class phpbb_mock_cache implements phpbb_cache_driver_interface
|
||||||
$this->data[$var_name] = $var;
|
$this->data[$var_name] = $var;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 checkVar(PHPUnit_Framework_Assert $test, $var_name, $data)
|
public function checkVar(PHPUnit_Framework_Assert $test, $var_name, $data)
|
||||||
{
|
{
|
||||||
$test->assertTrue(isset($this->data[$var_name]));
|
$test->assertTrue(isset($this->data[$var_name]));
|
||||||
|
|
|
@ -17,4 +17,20 @@ class phpbb_mock_user
|
||||||
{
|
{
|
||||||
public $host = "testhost";
|
public $host = "testhost";
|
||||||
public $page = array('root_script_path' => '/');
|
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