* @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; } }