aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshyPHP <s9e.dev@gmail.com>2015-04-24 00:21:32 +0200
committerJoshyPHP <s9e.dev@gmail.com>2015-04-25 23:43:32 +0200
commit25acba225961e037ea1f7e04259eee3dc4f589ee (patch)
tree6dfad14b00fd421a5ace5e90e5d062983d50c584
parent572a905c02de8cdc6d073ce91f7107e9377e73ac (diff)
downloadforums-25acba225961e037ea1f7e04259eee3dc4f589ee.tar
forums-25acba225961e037ea1f7e04259eee3dc4f589ee.tar.gz
forums-25acba225961e037ea1f7e04259eee3dc4f589ee.tar.bz2
forums-25acba225961e037ea1f7e04259eee3dc4f589ee.tar.xz
forums-25acba225961e037ea1f7e04259eee3dc4f589ee.zip
[ticket/12745] Added support for Unicode characters outside BMP
PHPBB3-12745
-rw-r--r--phpBB/includes/message_parser.php9
-rw-r--r--tests/functional/posting_test.php18
2 files changed, 10 insertions, 17 deletions
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index 8353ae6843..3027566f43 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1241,15 +1241,6 @@ class parse_message extends bbcode_firstpass
// Parse this message
$this->message = $parser->parse(htmlspecialchars_decode($this->message, ENT_QUOTES));
- // Check for out-of-bounds characters that are currently
- // not supported by utf8_bin in MySQL
- if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $this->message, $matches))
- {
- $character_list = implode('<br />', $matches[0]);
- $this->warn_msg[] = $user->lang('UNSUPPORTED_CHARACTERS_MESSAGE', $character_list);
- return $update_this_message ? $this->warn_msg : $return_message;
- }
-
// Check for "empty" message. We do not check here for maximum length, because bbcode, smilies, etc. can add to the length.
// The maximum length check happened before any parsings.
if ($mode === 'post' && utf8_clean_string($this->message) === '')
diff --git a/tests/functional/posting_test.php b/tests/functional/posting_test.php
index fd802eed45..8ac734c733 100644
--- a/tests/functional/posting_test.php
+++ b/tests/functional/posting_test.php
@@ -45,18 +45,20 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
self::create_post(2,
1,
- 'Unsupported characters',
- "This is a test with these weird characters: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6",
- array(),
- 'Your message contains the following unsupported characters'
- );
-
- self::create_post(2,
- 1,
"Unsupported: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6",
'This is a test with emoji characters in the topic title.',
array(),
'Your subject contains the following unsupported characters'
);
}
+
+ public function test_supported_unicode_characters()
+ {
+ $this->login();
+
+ $post = $this->create_topic(2, 'Test Topic 1', 'This is a test topic posted by the testing framework.');
+ $this->create_post(2, $post['topic_id'], 'Re: Test Topic 1', "This is a test with these weird characters: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6");
+ $crawler = self::request('GET', "viewtopic.php?t={$post['topic_id']}&sid={$this->sid}");
+ $this->assertContains("\xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6", $crawler->text());
+ }
}