aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2014-06-06 13:55:50 +0100
committerLouise Crow <louise.crow@gmail.com>2014-06-06 13:55:50 +0100
commit3448434a89521fdf48f338e8d22283d10b6af6a3 (patch)
treedd41aa71e71c7326464be16faf65cb9333f33800
parent9f15eb5b84f2a78c202ff7ad9155cfca9a0f3ed1 (diff)
parentb5e022d0fdb6aa3b5bc080092f3531bc86c66b4d (diff)
Merge branch 'hotfix/0.18.0.2' into rails-3-develop
-rw-r--r--app/models/incoming_message.rb15
-rw-r--r--spec/models/incoming_message_spec.rb18
2 files changed, 26 insertions, 7 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index 6db145348..124db8d4a 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -834,14 +834,15 @@ class IncomingMessage < ActiveRecord::Base
def fully_destroy
ActiveRecord::Base.transaction do
- for o in self.outgoing_message_followups
- o.incoming_message_followup = nil
- o.save!
+ outgoing_message_followups.each do |outgoing_message_followup|
+ outgoing_message_followup.incoming_message_followup = nil
+ outgoing_message_followup.save!
+ end
+ info_request_events.each do |info_request_event|
+ info_request_event.track_things_sent_emails.each { |a| a.destroy }
+ info_request_event.user_info_request_sent_alerts.each { |a| a.destroy }
+ info_request_event.destroy
end
- info_request_event = InfoRequestEvent.find_by_incoming_message_id(self.id)
- info_request_event.track_things_sent_emails.each { |a| a.destroy }
- info_request_event.user_info_request_sent_alerts.each { |a| a.destroy }
- info_request_event.destroy
self.raw_email.destroy_file_representation!
self.destroy
end
diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb
index f06dcbeeb..3b6887f76 100644
--- a/spec/models/incoming_message_spec.rb
+++ b/spec/models/incoming_message_spec.rb
@@ -112,6 +112,24 @@ describe IncomingMessage, 'when asked if a user can view it' do
end
+describe 'when destroying a message' do
+
+ before do
+ @incoming_message = FactoryGirl.create(:plain_incoming_message)
+ end
+
+ it 'can destroy a message with more than one info request event' do
+ @info_request = @incoming_message.info_request
+ @info_request.log_event('response',
+ :incoming_message_id => @incoming_message.id)
+ @info_request.log_event('edit_incoming',
+ :incoming_message_id => @incoming_message.id)
+ @incoming_message.fully_destroy
+ IncomingMessage.where(:id => @incoming_message.id).should be_empty
+ end
+
+end
+
describe 'when asked if it is indexed by search' do
before do