From 81cec35dbf1b348d23363559e3f4e6b1ec3415c5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 19 Sep 2017 02:42:40 +0200 Subject: Custom emoji (#4988) * Custom emoji - In OStatus: `` - In ActivityPub: `{ type: "Emoji", name: ":coolcat:", href: "http://..." }` - In REST API: Status object includes `emojis` array (`shortcode`, `url`) - Domain blocks with reject media stop emojis - Emoji file up to 50KB - Web UI handles custom emojis - Static pages render custom emojis as `` tags Side effects: - Undo #4500 optimization, as I needed to modify it to restore shortcode handling in emojify() - Formatter#plaintext should now make sure stripped out line-breaks and paragraphs are replaced with newlines * Fix emoji at the start not being converted --- spec/lib/ostatus/atom_serializer_spec.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'spec/lib/ostatus/atom_serializer_spec.rb') diff --git a/spec/lib/ostatus/atom_serializer_spec.rb b/spec/lib/ostatus/atom_serializer_spec.rb index 0451eceeb..b2480a53b 100644 --- a/spec/lib/ostatus/atom_serializer_spec.rb +++ b/spec/lib/ostatus/atom_serializer_spec.rb @@ -97,11 +97,23 @@ RSpec.describe OStatus::AtomSerializer do mentioned = element.nodes.find do |node| node.name == 'link' && - node[:rel] == 'mentioned' && - node['ostatus:object-type'] == TagManager::TYPES[:person] + node[:rel] == 'mentioned' && + node['ostatus:object-type'] == TagManager::TYPES[:person] end + expect(mentioned[:href]).to eq 'https://cb6e6126.ngrok.io/users/username' end + + it 'appends link elements for emojis' do + Fabricate(:custom_emoji) + + status = Fabricate(:status, text: ':coolcat:') + element = serialize(status) + emoji = element.nodes.find { |node| node.name == 'link' && node[:rel] == 'emoji' } + + expect(emoji[:name]).to eq 'coolcat' + expect(emoji[:href]).to_not be_blank + end end describe 'render' do -- cgit