|
|
|
@ -394,6 +394,45 @@ RSpec.describe Formatter do |
|
|
|
|
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' |
|
|
|
|
end |
|
|
|
|
|
|
|
|
@ -404,6 +443,46 @@ RSpec.describe Formatter do |
|
|
|
|
it 'reformats' do |
|
|
|
|
is_expected.to_not include '<script>alert("Hello")</script>' |
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|