diff --git a/lib/diaspora/federation/receive.rb b/lib/diaspora/federation/receive.rb index fb0953210538c019c111e54e833e3836f7f76038..a61566402cf1c7950d00de1e070f80f2565ce863 100644 --- a/lib/diaspora/federation/receive.rb +++ b/lib/diaspora/federation/receive.rb @@ -180,7 +180,7 @@ module Diaspora end private_class_method def self.author_of(entity) - Person.find_by(diaspora_handle: entity.author) + Person.by_account_identifier(entity.author) end private_class_method def self.build_location(entity) diff --git a/spec/lib/diaspora/federation/receive_spec.rb b/spec/lib/diaspora/federation/receive_spec.rb index a1c206e2541dfb42164d79ac18119d468e730137..df9e5da67762d4770010dc7b0f792651f34f5e76 100644 --- a/spec/lib/diaspora/federation/receive_spec.rb +++ b/spec/lib/diaspora/federation/receive_spec.rb @@ -585,6 +585,17 @@ describe Diaspora::Federation::Receive do Diaspora::Federation::Receive.perform(status_message_entity) end + + it "finds the correct author if the author is not lowercase" do + status_message_entity = FactoryGirl.build(:status_message_entity, author: sender.diaspora_handle.upcase) + + received = Diaspora::Federation::Receive.perform(status_message_entity) + + status_message = StatusMessage.find_by!(guid: status_message_entity.guid) + + expect(received).to eq(status_message) + expect(status_message.author).to eq(sender) + end end context "with poll" do