[ticket/14700] Prevent an exception on duplicate smilies in text_formatter

PHPBB3-14700
This commit is contained in:
JoshyPHP 2016-07-21 03:37:44 +02:00
parent 486ffa85a2
commit 13a756bfb7
3 changed files with 45 additions and 1 deletions

View file

@ -309,7 +309,7 @@ class factory implements \phpbb\textformatter\cache_interface
// Load smilies
foreach ($this->data_access->get_smilies() as $row)
{
$configurator->Emoticons->add(
$configurator->Emoticons->set(
$row['code'],
'<img class="smilies" src="{$T_SMILIES_PATH}/' . htmlspecialchars($row['smiley_url']) . '" alt="{.}" title="' . htmlspecialchars($row['emotion']) . '"/>'
);

View file

@ -170,6 +170,17 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case
);
}
public function test_duplicate_smilies()
{
$fixture = __DIR__ . '/fixtures/smilies_duplicate.xml';
$parser = $this->get_test_case_helpers()->set_s9e_services(null, $fixture)->get('text_formatter.parser');
$this->assertSame(
'<r><E>:)</E></r>',
$parser->parse(':)')
);
}
/**
* @testdox {INTTEXT} is supported in custom BBCodes
*/

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<dataset>
<table name="phpbb_smilies">
<column>smiley_id</column>
<column>code</column>
<column>emotion</column>
<column>smiley_url</column>
<column>smiley_width</column>
<column>smiley_height</column>
<column>smiley_order</column>
<column>display_on_posting</column>
<row>
<value>1</value>
<value>:)</value>
<value>:)</value>
<value>foo.png</value>
<value>15</value>
<value>17</value>
<value>2</value>
<value>1</value>
</row>
<row>
<value>2</value>
<value>:)</value>
<value>:)</value>
<value>bar.png</value>
<value>15</value>
<value>17</value>
<value>2</value>
<value>2</value>
</row>
</table>
</dataset>