[ticket/11768] Updated utils service

Updated docblocks.
Removed remove_formatting() because it overlaps with clean_formatting()

PHPBB3-11768
This commit is contained in:
JoshyPHP 2015-03-26 15:28:04 +01:00
parent f75f63b264
commit 55c3fc02cf
3 changed files with 29 additions and 63 deletions

View file

@ -19,37 +19,42 @@ namespace phpbb\textformatter\s9e;
class utils implements \phpbb\textformatter\utils_interface class utils implements \phpbb\textformatter\utils_interface
{ {
/** /**
* {@inheritdoc} * Replace BBCodes and other formatting elements with whitespace
*
* NOTE: preserves smilies as text
*
* @param string $xml Parsed text
* @return string Plain text
*/ */
public function clean_formatting($text) public function clean_formatting($xml)
{ {
// Insert a space before <s> and <e> then remove formatting // Insert a space before <s> and <e> then remove formatting
$text = preg_replace('#<[es]>#', ' $0', $text); $xml = preg_replace('#<[es]>#', ' $0', $xml);
return \s9e\TextFormatter\Utils::removeFormatting($text); return \s9e\TextFormatter\Utils::removeFormatting($xml);
} }
/** /**
* {@inheritdoc} * Remove given BBCode and its content, at given nesting depth
*
* @param string $xml Parsed text
* @param string $bbcode_name BBCode's name
* @param integer $depth Minimum nesting depth (number of parents of the same name)
* @return string Parsed text
*/ */
public function remove_bbcode($text, $bbcode_name, $depth = 0) public function remove_bbcode($xml, $bbcode_name, $depth = 0)
{ {
return \s9e\TextFormatter\Utils::removeTag($text, strtoupper($bbcode_name), $depth); return \s9e\TextFormatter\Utils::removeTag($xml, strtoupper($bbcode_name), $depth);
} }
/** /**
* {@inheritdoc} * Return a parsed text to its original form
*
* @param string $xml Parsed text
* @return string Original plain text
*/ */
public function remove_formatting($text) public function unparse($xml)
{ {
return \s9e\TextFormatter\Utils::removeFormatting($text); return \s9e\TextFormatter\Unparser::unparse($xml);
}
/**
* {@inheritdoc}
*/
public function unparse($text)
{
return \s9e\TextFormatter\Unparser::unparse($text);
} }
} }

View file

@ -23,36 +23,26 @@ interface utils_interface
* *
* NOTE: preserves smilies as text * NOTE: preserves smilies as text
* *
* @param string $text * @param string $text Parsed text
* @return string * @return string Plain text
*/ */
public function clean_formatting($text); public function clean_formatting($text);
/** /**
* Remove given BBCode at given nesting depth * Remove given BBCode and its content, at given nesting depth
* *
* @param string $text Parsed text * @param string $text Parsed text
* @param string $bbcode_name BBCode's name * @param string $bbcode_name BBCode's name
* @param integer $depth Minimum nesting depth (number of parents of the same name) * @param integer $depth Minimum nesting depth (number of parents of the same name)
* @return string * @return string Parsed text
*/ */
public function remove_bbcode($text, $bbcode_name, $depth = 0); public function remove_bbcode($text, $bbcode_name, $depth = 0);
/**
* Remove BBCodes and other formatting from a parsed text
*
* NOTE: preserves smilies as text
*
* @param string $text
* @return string
*/
public function remove_formatting($text);
/** /**
* Return a parsed text to its original form * Return a parsed text to its original form
* *
* @param string $text * @param string $text Parsed text
* @return string * @return string Original plain text
*/ */
public function unparse($text); public function unparse($text);
} }

View file

@ -45,35 +45,6 @@ class phpbb_textformatter_s9e_utils_test extends phpbb_test_case
); );
} }
/**
* @dataProvider get_remove_formatting_tests
*/
public function test_remove_formatting($original, $expected)
{
$container = $this->get_test_case_helpers()->set_s9e_services();
$utils = $container->get('text_formatter.utils');
$this->assertSame($expected, $utils->remove_formatting($original));
}
public function get_remove_formatting_tests()
{
return array(
array(
'<t>Plain text</t>',
'Plain text'
),
array(
"<t>Multi<br/>\nline</t>",
"Multi\nline"
),
array(
'<r><B><s>[b]</s>bold<e>[/b]</e></B></r>',
'bold'
)
);
}
/** /**
* @dataProvider get_clean_formatting_tests * @dataProvider get_clean_formatting_tests
*/ */