~cytrogen/masto-fe

94fbac77e79b080b3340672fb4d14c97bc893c6c — Claire 2 years ago 5e1752c
Fix processing of media files with unusual names (#25788)

M app/models/concerns/attachmentable.rb => app/models/concerns/attachmentable.rb +1 -1
@@ 24,7 24,7 @@ module Attachmentable
    def self.has_attached_file(name, options = {}) # rubocop:disable Naming/PredicateName
      super(name, options)

      send(:"before_#{name}_validate") do
      send(:"before_#{name}_validate", prepend: true) do
        attachment = send(name)
        check_image_dimension(attachment)
        set_file_content_type(attachment)

A spec/fixtures/files/attachment-jpg.123456_abcd => spec/fixtures/files/attachment-jpg.123456_abcd +0 -0
A spec/requests/api/v2/media_spec.rb => spec/requests/api/v2/media_spec.rb +18 -0
@@ 0,0 1,18 @@
# frozen_string_literal: true

require 'rails_helper'

RSpec.describe 'Media API', paperclip_processing: true do
  let(:user)    { Fabricate(:user) }
  let(:token)   { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
  let(:scopes)  { 'write' }
  let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }

  describe 'POST /api/v2/media' do
    it 'returns http success' do
      post '/api/v2/media', headers: headers, params: { file: fixture_file_upload('attachment-jpg.123456_abcd', 'image/jpeg') }
      expect(File.exist?(user.account.media_attachments.first.file.path(:small))).to be true
      expect(response).to have_http_status(200)
    end
  end
end