FIX: Fixed custom emoji circumventing "max emojis in topic title" set… (#7116)

This commit is contained in:
Tim Lange 2019-03-06 12:49:17 +01:00 committed by Régis Hanol
parent 0a9a11094d
commit 3ff0800e50
2 changed files with 5 additions and 2 deletions

View File

@ -230,10 +230,11 @@ module PrettyText
return title unless SiteSetting.enable_emoji?
set = SiteSetting.emoji_set.inspect
custom = Emoji.custom.map { |e| [e.name, e.url] }.to_h.to_json
protect do
v8.eval(<<~JS)
__paths = #{paths_json};
__performEmojiUnescape(#{title.inspect}, { getURL: __getURL, emojiSet: #{set} });
__performEmojiUnescape(#{title.inspect}, { getURL: __getURL, emojiSet: #{set}, customEmoji: #{custom} });
JS
end
end

View File

@ -14,7 +14,9 @@ describe MaxEmojisValidator do
shared_examples "validating any topic title" do
it 'adds an error when emoji count is greater than SiteSetting.max_emojis_in_title' do
SiteSetting.max_emojis_in_title = 3
record.title = '🧐 Lots of emojis here 🎃 :joy: :)'
CustomEmoji.create!(name: 'trout', upload: Fabricate(:upload))
Emoji.clear_cache
record.title = '🧐 Lots of emojis here 🎃 :trout: :)'
validate
expect(record.errors[:title][0]).to eq(I18n.t("errors.messages.max_emojis", max_emojis_count: 3))