[ticket/12745] Added support for Unicode characters outside BMP

PHPBB3-12745
This commit is contained in:
JoshyPHP 2015-04-24 00:21:32 +02:00
parent 572a905c02
commit 25acba2259
2 changed files with 10 additions and 17 deletions

View file

@ -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) === '')

View file

@ -43,14 +43,6 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
$this->add_lang('posting');
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",
@ -59,4 +51,14 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
'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());
}
}