Allow CustomEmoji to normalize its own domain (#35726)

This commit is contained in:
Matt Jankowski 2025-08-11 03:33:36 -04:00 committed by GitHub
parent ce1680e6f9
commit b827a0a6a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 3 additions and 2 deletions

View File

@ -42,7 +42,7 @@ class CustomEmoji < ApplicationRecord
has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp', file_geometry_parser: FastGeometryParser } }, validate_media_type: false, processors: [:lazy_thumbnail]
normalizes :domain, with: ->(domain) { domain.downcase }
normalizes :domain, with: ->(domain) { domain.downcase.strip }
validates_attachment :image, content_type: { content_type: IMAGE_MIME_TYPES }, presence: true, size: { less_than: LIMIT }
validates :shortcode, uniqueness: { scope: :domain }, format: { with: SHORTCODE_ONLY_RE }, length: { minimum: MINIMUM_SHORTCODE_SIZE }

View File

@ -35,7 +35,7 @@ class CustomEmojiFilter
when 'remote'
CustomEmoji.remote
when 'by_domain'
CustomEmoji.where(domain: value.strip.downcase)
CustomEmoji.where(domain: value)
when 'shortcode'
CustomEmoji.search(value.strip)
else

View File

@ -80,6 +80,7 @@ RSpec.describe CustomEmoji, :attachment_processing do
describe 'Normalizations' do
describe 'domain' do
it { is_expected.to normalize(:domain).from(' www.mastodon.host ').to('www.mastodon.host') }
it { is_expected.to normalize(:domain).from('wWw.MaStOdOn.CoM').to('www.mastodon.com') }
it { is_expected.to normalize(:domain).from(nil).to(nil) }
end