aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-09-19 15:59:10 +0100
committerLouise Crow <louise.crow@gmail.com>2013-09-30 10:11:53 +0100
commitb597d3528ac71d17c57d3ddca9950a4430f75039 (patch)
tree23c82c983a00c8f39fe9ed907145e759082e2f70
parentd8deb8418b4cd26c68eb1301959e156c19b111e2 (diff)
Handle salutations with regexp special characters.0.14.0.1
Fixes #1104.
-rw-r--r--app/models/outgoing_message.rb2
-rw-r--r--spec/models/outgoing_message_spec.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index e89c11141..e2ee696c5 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -271,7 +271,7 @@ class OutgoingMessage < ActiveRecord::Base
end
def format_of_body
- if self.body.empty? || self.body =~ /\A#{get_salutation}\s+#{get_signoff}/ || self.body =~ /#{get_internal_review_insert_here_note}/
+ if self.body.empty? || self.body =~ /\A#{Regexp.escape(get_salutation)}\s+#{Regexp.escape(get_signoff)}/ || self.body =~ /#{Regexp.escape(get_internal_review_insert_here_note)}/
if self.message_type == 'followup'
if self.what_doing == 'internal_review'
errors.add(:body, _("Please give details explaining why you want a review"))
diff --git a/spec/models/outgoing_message_spec.rb b/spec/models/outgoing_message_spec.rb
index 1e05e09f1..20f07e8fe 100644
--- a/spec/models/outgoing_message_spec.rb
+++ b/spec/models/outgoing_message_spec.rb
@@ -163,3 +163,13 @@ describe IncomingMessage, " when censoring data" do
@om.body.should match(/fancy cat/)
end
end
+
+describe OutgoingMessage, "when validating the format of the message body", :focus => true do
+
+ it 'should handle a salutation with a bracket in it' do
+ outgoing_message = FactoryGirl.build(:initial_request)
+ outgoing_message.stub!(:get_salutation).and_return("Dear Bob (Robert,")
+ lambda{ outgoing_message.valid? }.should_not raise_error(RegexpError)
+ end
+
+end