|
|
@ -394,6 +394,45 @@ RSpec.describe Formatter do
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with custom_emojify option' do
|
|
|
|
|
|
|
|
let!(:emoji) { Fabricate(:custom_emoji) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
before { account.note = text }
|
|
|
|
|
|
|
|
subject { Formatter.instance.simplified_format(account, custom_emojify: true) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji at the start' do
|
|
|
|
|
|
|
|
let(:text) { ':coolcat: Beep boop' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/<p><img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji in the middle' do
|
|
|
|
|
|
|
|
let(:text) { 'Beep :coolcat: boop' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/Beep <img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with concatenated emoji' do
|
|
|
|
|
|
|
|
let(:text) { ':coolcat::coolcat:' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'does not touch the shortcodes' do
|
|
|
|
|
|
|
|
is_expected.to match(/:coolcat::coolcat:/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji at the end' do
|
|
|
|
|
|
|
|
let(:text) { 'Beep boop :coolcat:' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/boop <img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
include_examples 'encode and link URLs'
|
|
|
|
include_examples 'encode and link URLs'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -404,6 +443,46 @@ RSpec.describe Formatter do
|
|
|
|
it 'reformats' do
|
|
|
|
it 'reformats' do
|
|
|
|
is_expected.to_not include '<script>alert("Hello")</script>'
|
|
|
|
is_expected.to_not include '<script>alert("Hello")</script>'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with custom_emojify option' do
|
|
|
|
|
|
|
|
let!(:emoji) { Fabricate(:custom_emoji, domain: remote_account.domain) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
before { remote_account.note = text }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subject { Formatter.instance.simplified_format(remote_account, custom_emojify: true) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji at the start' do
|
|
|
|
|
|
|
|
let(:text) { '<p>:coolcat: Beep boop<br />' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/<p><img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji in the middle' do
|
|
|
|
|
|
|
|
let(:text) { '<p>Beep :coolcat: boop</p>' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/Beep <img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with concatenated emoji' do
|
|
|
|
|
|
|
|
let(:text) { '<p>:coolcat::coolcat:</p>' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'does not touch the shortcodes' do
|
|
|
|
|
|
|
|
is_expected.to match(/<p>:coolcat::coolcat:<\/p>/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context 'with emoji at the end' do
|
|
|
|
|
|
|
|
let(:text) { '<p>Beep boop<br />:coolcat:</p>' }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it 'converts shortcode to image tag' do
|
|
|
|
|
|
|
|
is_expected.to match(/<br><img draggable="false" class="emojione" alt=":coolcat:"/)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|