require File.dirname(__FILE__) + '/../test_helper' class MailTest < Test::Unit::TestCase fixtures :people, :users, :elts, :mails, :attachments, :subscribers def setup @mail = Mail.find(1) end def test_receive ActionMailer::Base.deliveries = [] mailsCount = Mail.count eltsCount = Elt.count deliveredMailsCount = ActionMailer::Base.deliveries.size mailFile = TMail::Mail.parse(read_fixture('mail_ruby').to_s) #print "mailFile envelope-to: ", mailFile["envelope-to"] #puts Mail.receive(mailFile) assert_equal (mailsCount + 2), Mail.count assert_equal (eltsCount + 2), Elt.count # manu@noos.fr, manu@localhost # delivering elt and parent's assert_equal (deliveredMailsCount + 2), ActionMailer::Base.deliveries.size assert_equal mailFile.message_id, ActionMailer::Base.deliveries[1].message_id end def test_receiveWithSubject ActionMailer::Base.deliveries = [] mailsCount = Mail.count eltsCount = Elt.count mailFile = TMail::Mail.parse(read_fixture('mail_rubyWithSubject').to_s) Mail.receive(mailFile) assert_equal (mailsCount + 2), Mail.count assert_equal (eltsCount + 2), Elt.count assert_equal 'TEST_with_subject', Elt.find('TEST_with_subject').id end def test_receiveWithAttachment ActionMailer::Base.deliveries = [] mailsCount = Mail.count attachmentsCount = Attachment.count eltsCount = Elt.count mailFile = TMail::Mail.parse(read_fixture('mail_rubyWithAttachment').to_s) elt = Mail.receive(mailFile).elt assert_equal (mailsCount + 2), Mail.count # Just one file as an attachment assert_equal (attachmentsCount + 1), Attachment.count assert_equal (eltsCount + 2), Elt.count assert_equal File.split(elt.attachments[0].file)[1], 'ylona.jpg' elt.attachments.each do |i| File.delete(i.file) Dir.rmdir(File.split(i.file)[0]) end end def test_receiveChild ActionMailer::Base.deliveries = [] mailFile = TMail::Mail.parse(read_fixture('mail_ruby').to_s) Mail.receive(mailFile) ActionMailer::Base.deliveries = [] mailsCount = Mail.count eltsCount = Elt.count mailFileChild = TMail::Mail.parse(read_fixture('mail_rubyChild').to_s) Mail.receive(mailFileChild) assert_equal (mailsCount + 1), Mail.count assert_equal (eltsCount + 1), Elt.count assert_equal mailFileChild.subject, ActionMailer::Base.deliveries[0].subject assert_equal mailFileChild.references, ActionMailer::Base.deliveries[0].references assert_equal mailFileChild.date, ActionMailer::Base.deliveries[0].date end # Not used, just make sure mails are entered chronologically def est_receiveChildThenParent ActionMailer::Base.deliveries = [] mailFile = TMail::Mail.parse(read_fixture('mail_rubyChild').to_s) elt = Mail.receive(mailFile).elt ActionMailer::Base.deliveries = [] mailsCount = Mail.count eltsCount = Elt.count mailFileChild = TMail::Mail.parse(read_fixture('mail_ruby').to_s) eltParent = Mail.receive(mailFileChild).elt assert_equal (mailsCount + 1), Mail.count assert_equal (eltsCount + 1), Elt.count assert_equal eltParent.id, elt.parent_id end def test_re_receive ActionMailer::Base.deliveries = [] mailFile = TMail::Mail.parse(read_fixture('mail_ruby').to_s) Mail.receive(mailFile) mailsCount = Mail.count eltsCount = Elt.count deliveredMailsCount = ActionMailer::Base.deliveries.size mail = ActionMailer::Base.deliveries[1] Mail.receive(mail) assert_equal mailsCount, Mail.count assert_equal eltsCount, Elt.count assert_equal deliveredMailsCount, ActionMailer::Base.deliveries.size end def test_receive_change_ID ActionMailer::Base.deliveries = [] mailFile = TMail::Mail.parse(read_fixture('mail_ruby').to_s) Mail.receive(mailFile) mailsCount = Mail.count eltsCount = Elt.count deliveredMailsCount = ActionMailer::Base.deliveries.size mail = ActionMailer::Base.deliveries[1] #puts "mail.methods: ", mail.methods #puts mail.to_yaml #puts mail.add_message_id #print "mail.message_Id: ", mail.message_id #puts mail.message_id = "