email_parser_test.rb 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class EmailParserTest < ActiveSupport::TestCase
  4. test 'parse' do
  5. files = [
  6. {
  7. :data => IO.read('test/fixtures/mail1.box'),
  8. :body_md5 => 'fb6ed5070ffbb821b67b15b83239e1db',
  9. :params => {
  10. :from => 'John.Smith@example.com',
  11. :from_email => 'John.Smith@example.com',
  12. :from_display_name => nil,
  13. :subject => 'CI Daten für PublicView ',
  14. },
  15. },
  16. {
  17. :data => IO.read('test/fixtures/mail2.box'),
  18. :body_md5 => '25a1ff722497271965b55e52659784a6',
  19. :params => {
  20. :from => 'Martin Edenhofer <martin@example.com>',
  21. :from_email => 'martin@example.com',
  22. :from_display_name => 'Martin Edenhofer',
  23. :subject => 'aaäöüßad asd',
  24. :plain_part => "äöüß ad asd\r\n\r\n-Martin\r\n\r\n--\r\nOld programmers never die. They just branch to a new address.",
  25. },
  26. },
  27. ]
  28. files.each { |file|
  29. parser = Channel::EmailParser.new
  30. data = parser.parse( file[:data] )
  31. # check body
  32. md5 = Digest::MD5.hexdigest( data[:plain_part] )
  33. assert_equal( file[:body_md5], md5 )
  34. # check params
  35. file[:params].each { |key, value|
  36. if key.to_s == 'plain_part'
  37. assert_equal( Digest::MD5.hexdigest( file[:params][key.to_sym].to_s ), Digest::MD5.hexdigest( data[key.to_sym].to_s ) )
  38. else
  39. assert_equal( file[:params][key.to_sym], data[key.to_sym] )
  40. end
  41. }
  42. }
  43. end
  44. end