email_process_reply_to_test.rb 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class EmailProcessReplyToTest < ActiveSupport::TestCase
  4. test 'normal processing' do
  5. setting_orig = Setting.get('postmaster_sender_based_on_reply_to')
  6. Setting.set('postmaster_sender_based_on_reply_to', '')
  7. email = "From: Bob Smith <marketing_tool@example.com>
  8. To: zammad@example.com
  9. Subject: some new subject
  10. Reply-To: replay_to_customer_process1@example.com
  11. Some Text"
  12. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email)
  13. assert_equal('Bob Smith <marketing_tool@example.com>', article_p.from)
  14. assert_equal('replay_to_customer_process1@example.com', article_p.reply_to)
  15. assert_equal('marketing_tool@example.com', ticket_p.customer.email)
  16. assert_equal('Bob', ticket_p.customer.firstname)
  17. assert_equal('Smith', ticket_p.customer.lastname)
  18. Setting.set('postmaster_sender_based_on_reply_to', setting_orig)
  19. end
  20. test 'normal processing - take reply to as customer' do
  21. setting_orig = Setting.get('postmaster_sender_based_on_reply_to')
  22. Setting.set('postmaster_sender_based_on_reply_to', 'as_sender_of_email')
  23. email = "From: Bob Smith <marketing_tool@example.com>
  24. To: zammad@example.com
  25. Subject: some new subject
  26. Reply-To: replay_to_customer_process2@example.com
  27. Some Text"
  28. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email)
  29. assert_equal('replay_to_customer_process2@example.com', article_p.from)
  30. assert_equal('replay_to_customer_process2@example.com', article_p.reply_to)
  31. assert_equal('replay_to_customer_process2@example.com', ticket_p.customer.email)
  32. assert_equal('', ticket_p.customer.firstname)
  33. assert_equal('', ticket_p.customer.lastname)
  34. email = "From: Bob Smith <marketing_tool@example.com>
  35. To: zammad@example.com
  36. Subject: some new subject
  37. Reply-To: Some Name <replay_to_customer_process2-1@example.com>
  38. Some Text"
  39. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email)
  40. assert_equal('Some Name <replay_to_customer_process2-1@example.com>', article_p.from)
  41. assert_equal('Some Name <replay_to_customer_process2-1@example.com>', article_p.reply_to)
  42. assert_equal('replay_to_customer_process2-1@example.com', ticket_p.customer.email)
  43. assert_equal('Some', ticket_p.customer.firstname)
  44. assert_equal('Name', ticket_p.customer.lastname)
  45. Setting.set('postmaster_sender_based_on_reply_to', setting_orig)
  46. end
  47. test 'normal processing - take reply to as customer and use from as realname' do
  48. setting_orig = Setting.get('postmaster_sender_based_on_reply_to')
  49. Setting.set('postmaster_sender_based_on_reply_to', 'as_sender_of_email_use_from_realname')
  50. email = "From: Bob Smith <marketing_tool@example.com>
  51. To: zammad@example.com
  52. Subject: some new subject
  53. Reply-To: replay_to_customer_process3@example.com
  54. Some Text"
  55. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email)
  56. assert_equal('replay_to_customer_process3@example.com', article_p.from)
  57. assert_equal('replay_to_customer_process3@example.com', article_p.reply_to)
  58. assert_equal('replay_to_customer_process3@example.com', ticket_p.customer.email)
  59. assert_equal('Bob', ticket_p.customer.firstname)
  60. assert_equal('Smith', ticket_p.customer.lastname)
  61. email = "From: Bob Smith <marketing_tool@example.com>
  62. To: zammad@example.com
  63. Subject: some new subject
  64. Reply-To: Some Name <replay_to_customer_process3-1@example.com>
  65. Some Text"
  66. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email)
  67. assert_equal('Some Name <replay_to_customer_process3-1@example.com>', article_p.from)
  68. assert_equal('Some Name <replay_to_customer_process3-1@example.com>', article_p.reply_to)
  69. assert_equal('replay_to_customer_process3-1@example.com', ticket_p.customer.email)
  70. assert_equal('Bob', ticket_p.customer.firstname)
  71. assert_equal('Smith', ticket_p.customer.lastname)
  72. Setting.set('postmaster_sender_based_on_reply_to', setting_orig)
  73. end
  74. end