2014-11-22 20:00:58 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @package testing
|
|
|
|
* @copyright (c) 2013 phpBB Group
|
|
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
require_once __DIR__ . '/../../../phpBB/includes/functions.php';
|
2015-02-23 19:03:41 +01:00
|
|
|
require_once __DIR__ . '/../../../phpBB/includes/functions_content.php';
|
2014-11-22 20:00:58 +01:00
|
|
|
require_once __DIR__ . '/../../mock/user.php';
|
|
|
|
require_once __DIR__ . '/../../mock/cache.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));
|
|
|
|
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$factory->expects($this->never())->method('regenerate');
|
|
|
|
|
2014-11-22 20:00:58 +01:00
|
|
|
$parser = new \phpbb\textformatter\s9e\parser(
|
|
|
|
$cache,
|
|
|
|
'_foo_parser',
|
|
|
|
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory
|
2014-11-22 20:00:58 +01:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
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('<t>test</t>'));
|
|
|
|
|
|
|
|
$cache = new phpbb_mock_cache;
|
|
|
|
$cache->put('_foo_parser', $mock);
|
|
|
|
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$factory->expects($this->never())->method('regenerate');
|
|
|
|
|
2014-11-22 20:00:58 +01:00
|
|
|
$parser = new \phpbb\textformatter\s9e\parser(
|
|
|
|
$cache,
|
|
|
|
'_foo_parser',
|
|
|
|
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory
|
2014-11-22 20:00:58 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
$this->assertSame('<t>test</t>', $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('<t>test</t>'));
|
|
|
|
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2014-11-22 20:00:58 +01:00
|
|
|
$factory->expects($this->once())
|
|
|
|
->method('regenerate')
|
2015-02-15 03:08:36 +01:00
|
|
|
->will($this->returnValue(array('parser' => $mock)));
|
2014-11-22 20:00:58 +01:00
|
|
|
|
|
|
|
$parser = new \phpbb\textformatter\s9e\parser(
|
|
|
|
new phpbb_mock_cache,
|
|
|
|
'_foo_parser',
|
|
|
|
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory
|
2014-11-22 20:00:58 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
$this->assertSame('<t>test</t>', $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);
|
|
|
|
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory = $this->getMockBuilder('phpbb\\textformatter\\s9e\\factory')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
2014-11-22 20:00:58 +01:00
|
|
|
$parser = new \phpbb\textformatter\s9e\parser(
|
|
|
|
$cache,
|
|
|
|
'_foo_parser',
|
|
|
|
$this->getMockBuilder('phpbb\\user')->disableOriginalConstructor()->getMock(),
|
2015-02-05 00:01:10 +01:00
|
|
|
$factory
|
2014-11-22 20:00:58 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
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'
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
2015-02-23 19:03:41 +01:00
|
|
|
|
|
|
|
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());
|
|
|
|
}
|
2014-11-22 20:00:58 +01:00
|
|
|
}
|