* @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_parser_test extends phpbb_test_case
{
public function test_load_from_cache()
{
$mock = $this->getMockBuilder('s9e\\TextFormatter\\Parser')
->disableOriginalConstructor()
->getMock();
$cache = $this->getMock('phpbb_mock_cache');
$cache->expects($this->once())
->method('get')
->with('_foo_parser')
->will($this->returnValue($mock));
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
->disableOriginalConstructor()
->getMock();
$factory->expects($this->never())->method('regenerate');
$parser = new \phpbb\textformatter\s9e\parser(
$cache,
'_foo_parser',
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
$factory
);
}
public function test_use_from_cache()
{
$mock = $this->getMockBuilder('s9e\\TextFormatter\\Parser')
->disableOriginalConstructor()
->getMock();
$mock->expects($this->once())
->method('parse')
->with('test')
->will($this->returnValue('test'));
$cache = new phpbb_mock_cache;
$cache->put('_foo_parser', $mock);
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
->disableOriginalConstructor()
->getMock();
$factory->expects($this->never())->method('regenerate');
$parser = new \phpbb\textformatter\s9e\parser(
$cache,
'_foo_parser',
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
$factory
);
$this->assertSame('test', $parser->parse('test'));
}
public function test_regenerate_on_cache_miss()
{
$mock = $this->getMockBuilder('s9e\\TextFormatter\\Parser')
->disableOriginalConstructor()
->getMock();
$mock->expects($this->once())
->method('parse')
->with('test')
->will($this->returnValue('test'));
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
->disableOriginalConstructor()
->getMock();
$factory->expects($this->once())
->method('regenerate')
->will($this->returnValue(array('parser' => $mock)));
$parser = new \phpbb\textformatter\s9e\parser(
new phpbb_mock_cache,
'_foo_parser',
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
$factory
);
$this->assertSame('test', $parser->parse('test'));
}
/**
* @dataProvider get_options_tests()
*/
public function test_options($adapter_method, $adapter_arg, $concrete_method, $concrete_arg)
{
$mock = $this->getMockBuilder('s9e\\TextFormatter\\Parser')
->setMethods(array($concrete_method))
->disableOriginalConstructor()
->getMock();
foreach ((array) $concrete_arg as $i => $concrete_arg)
{
$mock->expects($this->at($i))
->method($concrete_method)
->with($concrete_arg);
}
$cache = new phpbb_mock_cache;
$cache->put('_foo_parser', $mock);
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
->disableOriginalConstructor()
->getMock();
$parser = new \phpbb\textformatter\s9e\parser(
$cache,
'_foo_parser',
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
$factory
);
call_user_func_array(array($parser, $adapter_method), (array) $adapter_arg);
}
public function get_options_tests()
{
return array(
array(
'disable_bbcode', 'url',
'disableTag', 'URL'
),
array(
'disable_bbcodes', null,
'disablePlugin', 'BBCodes'
),
array(
'disable_magic_url', null,
'disablePlugin', array('Autoemail', 'Autolink')
),
array(
'disable_smilies', null,
'disablePlugin', 'Emoticons'
),
array(
'enable_bbcode', 'url',
'enableTag', 'URL'
),
array(
'enable_bbcodes', null,
'enablePlugin', 'BBCodes'
),
array(
'enable_magic_url', null,
'enablePlugin', array('Autoemail', 'Autolink')
),
array(
'enable_smilies', null,
'enablePlugin', 'Emoticons'
)
);
}
public function test_get_parser()
{
$container = $this->get_test_case_helpers()->set_s9e_services();
$parser = $container->get('text_formatter.parser');
$this->assertInstanceOf('s9e\\TextFormatter\\Parser', $parser->get_parser());
}
}