2014-11-22 20:00:58 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
*
|
2015-03-03 01:10:58 +01:00
|
|
|
* This file is part of the phpBB Forum Software package.
|
|
|
|
*
|
|
|
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
|
|
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
|
|
|
*
|
|
|
|
* For full copyright and license information, please see
|
|
|
|
* the docs/CREDITS.txt file.
|
2014-11-22 20:00:58 +01:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
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(
|
|
|
|
'<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>',
|
|
|
|
'[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(
|
|
|
|
'<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 '
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-05-03 16:06:42 +02:00
|
|
|
/**
|
|
|
|
* @dataProvider get_quote_authors_tests
|
|
|
|
*/
|
|
|
|
public function test_get_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_quote_authors($parser->parse($original)));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function get_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')
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2014-11-22 20:00:58 +01:00
|
|
|
/**
|
|
|
|
* @dataProvider get_remove_bbcode_tests
|
|
|
|
*/
|
|
|
|
public function test_remove_bbcode($original, $name, $depth, $expected)
|
|
|
|
{
|
|
|
|
$container = $this->get_test_case_helpers()->set_s9e_services();
|
2015-03-23 21:34:49 +01:00
|
|
|
$parser = $container->get('text_formatter.parser');
|
2014-11-22 20:00:58 +01:00
|
|
|
$utils = $container->get('text_formatter.utils');
|
|
|
|
|
2015-03-23 21:34:49 +01:00
|
|
|
$parsed = $parser->parse($original);
|
|
|
|
$actual = $utils->unparse($utils->remove_bbcode($parsed, $name, $depth));
|
|
|
|
|
|
|
|
$this->assertSame($expected, $actual);
|
2014-11-22 20:00:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public function get_remove_bbcode_tests()
|
|
|
|
{
|
|
|
|
return array(
|
|
|
|
array(
|
2015-03-23 21:34:49 +01:00
|
|
|
'Plain text',
|
2014-11-22 20:00:58 +01:00
|
|
|
'b',
|
|
|
|
1,
|
2015-03-23 21:34:49 +01:00
|
|
|
'Plain text'
|
2014-11-22 20:00:58 +01:00
|
|
|
),
|
|
|
|
array(
|
2015-03-23 21:34:49 +01:00
|
|
|
'[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
'quote',
|
|
|
|
0,
|
2015-03-23 21:34:49 +01:00
|
|
|
'[b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
),
|
|
|
|
array(
|
2015-03-23 21:34:49 +01:00
|
|
|
'[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
'quote',
|
|
|
|
1,
|
2015-03-23 21:34:49 +01:00
|
|
|
'[quote="u0"]q0[/quote][b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
),
|
|
|
|
array(
|
2015-03-23 21:34:49 +01:00
|
|
|
'[quote="u0"][quote="u1"][quote="u2"]q2[/quote]q1[/quote]q0[/quote][b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
'quote',
|
|
|
|
2,
|
2015-03-23 21:34:49 +01:00
|
|
|
'[quote="u0"][quote="u1"]q1[/quote]q0[/quote][b]bold[/b]',
|
2014-11-22 20:00:58 +01:00
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|