diff options
-rw-r--r-- | spec/fixtures/incoming-request-bad-uuencoding.email | 12 | ||||
-rw-r--r-- | spec/models/incoming_message_spec.rb | 36 |
2 files changed, 48 insertions, 0 deletions
diff --git a/spec/fixtures/incoming-request-bad-uuencoding.email b/spec/fixtures/incoming-request-bad-uuencoding.email new file mode 100644 index 000000000..c1288a253 --- /dev/null +++ b/spec/fixtures/incoming-request-bad-uuencoding.email @@ -0,0 +1,12 @@ +From: EMAIL_FROM +To: FOI Person <EMAIL_TO> +Bcc: +Subject: Re: Blah +Reply-To: + +I've attached something, but badly. + +begin 600 moo.txt +C0V]W<R!A<F4@;F]T(&%S(&-U=&4@87,@86%R9'9A<FMS+@H` +` +end diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb index df1b35c62..9db7acc1b 100644 --- a/spec/models/incoming_message_spec.rb +++ b/spec/models/incoming_message_spec.rb @@ -188,4 +188,40 @@ describe IncomingMessage, " when censoring data" do end +describe IncomingMessage, " when uudecoding bad messages" do + it "should be able to do it at all" do + mail_body = load_file_fixture('incoming-request-bad-uuencoding.email') + + im = IncomingMessage.new + im.stub!(:get_main_body_text_internal).and_return(mail_body) + ir = InfoRequest.new + im.info_request = ir + + attachments = im.get_main_body_text_uudecode_attachments + attachments.size.should == 1 + attachments[0].filename.should == 'moo.txt' + end + + it "should apply censor rules" do + mail_body = load_file_fixture('incoming-request-bad-uuencoding.email') + + im = IncomingMessage.new + im.stub!(:get_main_body_text_internal).and_return(mail_body) + ir = InfoRequest.new + im.info_request = ir + + @censor_rule = CensorRule.new() + @censor_rule.text = "moo" + @censor_rule.replacement = "bah" + @censor_rule.last_edit_editor = "unknown" + @censor_rule.last_edit_comment = "none" + ir.censor_rules << @censor_rule + + attachments = im.get_main_body_text_uudecode_attachments + attachments.size.should == 1 + attachments[0].filename.should == 'bah.txt' + end + +end + |