diff options
Diffstat (limited to 'tests/text_processing/tickets_test.php')
| -rw-r--r-- | tests/text_processing/tickets_test.php | 90 | 
1 files changed, 90 insertions, 0 deletions
| diff --git a/tests/text_processing/tickets_test.php b/tests/text_processing/tickets_test.php new file mode 100644 index 0000000000..6230191a69 --- /dev/null +++ b/tests/text_processing/tickets_test.php @@ -0,0 +1,90 @@ +<?php +/** +* +* 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. +* +*/ + +class phpbb_text_processing_tickets_test extends phpbb_test_case +{ +	/** +	* @dataProvider get_tickets_data +	*/ +	public function test_tickets($ticket_id, $original, $expected, $fixture, $before_assert, $after_assert) +	{ +		global $phpbb_container; + +		$phpbb_container = new phpbb_mock_container_builder; + +		$this->get_test_case_helpers()->set_s9e_services($phpbb_container, $fixture); + +		$parser   = $phpbb_container->get('text_formatter.parser'); +		$renderer = $phpbb_container->get('text_formatter.renderer'); + +		if (isset($before_assert)) +		{ +			$test = $this; +			$before_assert(get_defined_vars()); +		} + +		$parsed_text = $parser->parse($original); + +		$this->assertSame($expected, $renderer->render($parsed_text)); + +		if (isset($after_assert)) +		{ +			$test = $this; +			$after_assert(get_defined_vars()); +		} +	} + +	public function get_tickets_data() +	{ +		$tests = array(); + +		foreach (glob(__DIR__ . '/tickets_data/*.txt') as $txt_filename) +		{ +			$ticket_id     = basename($txt_filename, '.txt'); +			$html_filename = substr($txt_filename, 0, -3) . 'html'; +			$xml_filename  = substr($txt_filename, 0, -3) . 'xml'; +			$before_filename = substr($txt_filename, 0, -3) . 'before.php'; +			$after_filename  = substr($txt_filename, 0, -3) . 'after.php'; + +			if (!file_exists($xml_filename)) +			{ +				$xml_filename = __DIR__ . '/../fixtures/empty.xml'; +			} + +			$before_assert = null; +			if (file_exists($before_filename)) +			{ +				include($before_filename); +				$before_assert = 'before_assert_' . strtolower(str_replace('-', '_', $ticket_id)); +			} + +			$after_assert = null; +			if (file_exists($after_filename)) +			{ +				include($after_filename); +				$after_assert = 'after_assert_' . strtolower(str_replace('-', '_', $ticket_id)); +			} + +			$tests[] = array( +				$ticket_id, +				file_get_contents($txt_filename), +				file_get_contents($html_filename), +				$xml_filename, +				$before_assert, +				$after_assert +			); +		} + +		return $tests; +	} +} | 
