aboutsummaryrefslogtreecommitdiffstats
path: root/tests/text_reparser
diff options
context:
space:
mode:
Diffstat (limited to 'tests/text_reparser')
-rw-r--r--tests/text_reparser/fixtures/posts.xml19
-rw-r--r--tests/text_reparser/posttext_test.php67
2 files changed, 86 insertions, 0 deletions
diff --git a/tests/text_reparser/fixtures/posts.xml b/tests/text_reparser/fixtures/posts.xml
new file mode 100644
index 0000000000..6485293361
--- /dev/null
+++ b/tests/text_reparser/fixtures/posts.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<dataset>
+ <table name="phpbb_posts">
+ <column>post_id</column>
+ <column>enable_bbcode</column>
+ <column>enable_smilies</column>
+ <column>enable_magic_url</column>
+ <column>post_text</column>
+ <column>bbcode_uid</column>
+ <row>
+ <value>1</value>
+ <value>1</value>
+ <value>1</value>
+ <value>1</value>
+ <value>Plain text</value>
+ <value>abcd1234</value>
+ </row>
+ </table>
+</dataset>
diff --git a/tests/text_reparser/posttext_test.php b/tests/text_reparser/posttext_test.php
new file mode 100644
index 0000000000..4dec53dc63
--- /dev/null
+++ b/tests/text_reparser/posttext_test.php
@@ -0,0 +1,67 @@
+<?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.
+*
+*/
+require_once __DIR__ . '/../../phpBB/includes/functions.php';
+require_once __DIR__ . '/../../phpBB/includes/functions_content.php';
+require_once __DIR__ . '/../test_framework/phpbb_database_test_case.php';
+
+class phpbb_textreparser_posttext_test extends phpbb_database_test_case
+{
+ public function setUp()
+ {
+ global $config;
+ if (!isset($config))
+ {
+ $config = new \phpbb\config\config(array());
+ }
+ $this->get_test_case_helpers()->set_s9e_services();
+ parent::setUp();
+ }
+
+ public function getDataSet()
+ {
+ return $this->createXMLDataSet(__DIR__ . '/fixtures/posts.xml');
+ }
+
+ /**
+ * @dataProvider getReparseTests
+ */
+ public function testReparse($min_id, $max_id, $expected)
+ {
+ $db = $this->new_dbal();
+ $reparser = new \phpbb\textreparser\posttext($db);
+ $reparser->reparse_range($min_id, $max_id);
+ $sql = 'SELECT post_id, post_text
+ FROM ' . POSTS_TABLE . "
+ WHERE post_id BETWEEN $min_id AND $max_id";
+ $result = $db->sql_query($sql);
+ $rows = $db->sql_fetchrowset($result);
+ $db->sql_freeresult($result);
+ $this->assertEquals($expected, $rows);
+ }
+
+ public function getReparseTests()
+ {
+ return array(
+ array(
+ 1,
+ 1,
+ array(
+ array(
+ 'post_id' => 1,
+ 'post_text' => '<t>Plain text</t>'
+ )
+ )
+ ),
+ );
+ }
+}