* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ require_once __DIR__ . '/../../../phpBB/includes/functions.php'; require_once __DIR__ . '/../../../phpBB/includes/functions_content.php'; class phpbb_textformatter_s9e_utils_test extends phpbb_test_case { /** * @dataProvider get_unparse_tests */ public function test_unparse($original, $expected) { $container = $this->get_test_case_helpers()->set_s9e_services(); $utils = $container->get('text_formatter.utils'); $this->assertSame($expected, $utils->unparse($original)); } public function get_unparse_tests() { return array( array( 'Plain text', 'Plain text' ), array( "Multi
\nline
", "Multi\nline" ), array( '[b]bold[/b]', '[b]bold[/b]' ) ); } /** * @dataProvider get_clean_formatting_tests */ public function test_clean_formatting($original, $expected) { $container = $this->get_test_case_helpers()->set_s9e_services(); $utils = $container->get('text_formatter.utils'); $this->assertSame($expected, $utils->clean_formatting($original)); } public function get_clean_formatting_tests() { return array( array( 'Plain text', 'Plain text' ), array( "Multi
\nline
", "Multi\nline" ), array( '[b]bold[/b]', ' bold ' ) ); } /** * @dataProvider get_outermost_quote_authors_tests */ public function test_get_outermost_quote_authors($original, $expected) { $container = $this->get_test_case_helpers()->set_s9e_services(); $utils = $container->get('text_formatter.utils'); $parser = $container->get('text_formatter.parser'); $this->assertSame($expected, $utils->get_outermost_quote_authors($parser->parse($original))); } public function get_outermost_quote_authors_tests() { return array( array( 'No quotes here', array() ), array( '[quote="foo"]..[/quote] [quote]..[/quote]', array('foo') ), array( '[quote="foo"]..[/quote] [quote="bar"]..[/quote]', array('foo', 'bar') ), array( '[quote="foo"].[quote="baz"]..[/quote].[/quote] [quote="bar"]..[/quote]', array('foo', 'bar') ), ); } /** * @dataProvider get_generate_quote_tests */ public function test_generate_quote($text, $params, $expected) { $container = $this->get_test_case_helpers()->set_s9e_services(); $utils = $container->get('text_formatter.utils'); $this->assertSame($expected, $utils->generate_quote($text, $params)); } public function get_generate_quote_tests() { return array( array( '...', array(), '[quote]...[/quote]', ), array( '...', array('author' => 'Brian Kibler'), '[quote="Brian Kibler"]...[/quote]', ), array( '...', array('author' => 'Brian "Brian Kibler" Kibler of Brian Kibler Gaming'), '[quote=\'Brian "Brian Kibler" Kibler of Brian Kibler Gaming\']...[/quote]', ), array( '...', array('author' => "Brian Kibler Gaming's Brian Kibler"), '[quote="Brian Kibler Gaming\'s Brian Kibler"]...[/quote]', ), array( '...', array('author' => "\\\"'"), '[quote="\\\\\\"\'"]...[/quote]', ), array( '...', array('author' => 'Lots of doubles """ one single \' one backslash \\'), '[quote=\'Lots of doubles """ one single \\\' one backslash \\\\\']...[/quote]', ), array( '...', array('author' => "Lots of singles ''' one double \" one backslash \\"), '[quote="Lots of singles \'\'\' one double \\" one backslash \\\\"]...[/quote]', ), array( '...', array('author' => 'Defaults to doublequotes """\'\'\''), '[quote="Defaults to doublequotes \\"\\"\\"\'\'\'"]...[/quote]', ), array( '...', array( 'author' => 'user', 'post_id' => 123, 'url' => 'http://example.org' ), '[quote="user" post_id="123" url="http://example.org"]...[/quote]', ), ); } /** * @dataProvider get_remove_bbcode_tests */ public function test_remove_bbcode($original, $name, $depth, $expected) { $container = $this->get_test_case_helpers()->set_s9e_services(); $parser = $container->get('text_formatter.parser'); $utils = $container->get('text_formatter.utils'); $parsed = $parser->parse($original); $actual = $utils->unparse($utils->remove_bbcode($parsed, $name, $depth)); $this->assertSame($expected, $actual); } public function get_remove_bbcode_tests() { return array( array( 'Plain text', 'b', 1, 'Plain text' ), array( '[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]', 'quote', 0, '[b]bold[/b]', ), array( '[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]', 'quote', 1, '[quote="u0"]q0[/quote][b]bold[/b]', ), array( '[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]', 'quote', 2, '[quote="u0"][quote="u1"]q1[/quote]q0[/quote][b]bold[/b]', ), ); } }