Maintenance: Added Zammad/NoToSymOnString cop to prevent .to_sym on Strings.
This commit is contained in:
parent
0918e4f53a
commit
de22f60826
27 changed files with 216 additions and 175 deletions
40
.rubocop/cop/zammad/no_to_sym_on_string.rb
Normal file
40
.rubocop/cop/zammad/no_to_sym_on_string.rb
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
module RuboCop
|
||||||
|
module Cop
|
||||||
|
module Zammad
|
||||||
|
# This cop is used to identify usages of `.to_sym` on Strings and
|
||||||
|
# changes them to use the `:` prefix instead.
|
||||||
|
#
|
||||||
|
# @example
|
||||||
|
# # bad
|
||||||
|
# "a-Symbol".to_sym
|
||||||
|
# 'a-Symbol'.to_sym
|
||||||
|
# "a-#{'Symbol'}".to_sym
|
||||||
|
#
|
||||||
|
# # good
|
||||||
|
# :"a-Symbol"
|
||||||
|
# :'a-Symbol'
|
||||||
|
# :"a-#{'Symbol'}"
|
||||||
|
class NoToSymOnString < Base
|
||||||
|
extend AutoCorrector
|
||||||
|
|
||||||
|
def_node_matcher :to_sym?, <<-PATTERN
|
||||||
|
{
|
||||||
|
$(send (str ...) :to_sym ...)
|
||||||
|
$(send (dstr ...) :to_sym ...)
|
||||||
|
}
|
||||||
|
PATTERN
|
||||||
|
|
||||||
|
MSG = "Don't use `.to_sym` on String. Prefer `:` prefix instead.".freeze
|
||||||
|
|
||||||
|
def on_send(node)
|
||||||
|
result = *to_sym?(node)
|
||||||
|
return if result.empty?
|
||||||
|
|
||||||
|
add_offense(node, message: MSG) do |corrector|
|
||||||
|
corrector.replace(node, ":#{result.first.source}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,2 +1,3 @@
|
||||||
require_relative 'cop/zammad/exists_condition'
|
require_relative 'cop/zammad/exists_condition'
|
||||||
|
require_relative 'cop/zammad/no_to_sym_on_string'
|
||||||
require_relative 'cop/zammad/prefer_negated_if_over_unless'
|
require_relative 'cop/zammad/prefer_negated_if_over_unless'
|
||||||
|
|
|
@ -158,7 +158,7 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
# check ignore header
|
# check ignore header
|
||||||
if mail['x-zammad-ignore'.to_sym] == 'true' || mail['x-zammad-ignore'.to_sym] == true
|
if mail[:'x-zammad-ignore'] == 'true' || mail[:'x-zammad-ignore'] == true
|
||||||
Rails.logger.info "ignored email with msgid '#{mail[:message_id]}' from '#{mail[:from]}' because of x-zammad-ignore header"
|
Rails.logger.info "ignored email with msgid '#{mail[:message_id]}' from '#{mail[:from]}' because of x-zammad-ignore header"
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -174,7 +174,7 @@ returns
|
||||||
Transaction.execute(interface_handle: "#{original_interface_handle}.postmaster") do
|
Transaction.execute(interface_handle: "#{original_interface_handle}.postmaster") do
|
||||||
|
|
||||||
# get sender user
|
# get sender user
|
||||||
session_user_id = mail['x-zammad-session-user-id'.to_sym]
|
session_user_id = mail[:'x-zammad-session-user-id']
|
||||||
if !session_user_id
|
if !session_user_id
|
||||||
raise 'No x-zammad-session-user-id, no sender set!'
|
raise 'No x-zammad-session-user-id, no sender set!'
|
||||||
end
|
end
|
||||||
|
@ -188,11 +188,11 @@ returns
|
||||||
UserInfo.current_user_id = session_user.id
|
UserInfo.current_user_id = session_user.id
|
||||||
|
|
||||||
# get ticket# based on email headers
|
# get ticket# based on email headers
|
||||||
if mail['x-zammad-ticket-id'.to_sym]
|
if mail[:'x-zammad-ticket-id']
|
||||||
ticket = Ticket.find_by(id: mail['x-zammad-ticket-id'.to_sym])
|
ticket = Ticket.find_by(id: mail[:'x-zammad-ticket-id'])
|
||||||
end
|
end
|
||||||
if mail['x-zammad-ticket-number'.to_sym]
|
if mail[:'x-zammad-ticket-number']
|
||||||
ticket = Ticket.find_by(number: mail['x-zammad-ticket-number'.to_sym])
|
ticket = Ticket.find_by(number: mail[:'x-zammad-ticket-number'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# set ticket state to open if not new
|
# set ticket state to open if not new
|
||||||
|
@ -203,9 +203,9 @@ returns
|
||||||
ticket.save! if ticket.has_changes_to_save?
|
ticket.save! if ticket.has_changes_to_save?
|
||||||
|
|
||||||
# set ticket to open again or keep create state
|
# set ticket to open again or keep create state
|
||||||
if !mail['x-zammad-ticket-followup-state'.to_sym] && !mail['x-zammad-ticket-followup-state_id'.to_sym]
|
if !mail[:'x-zammad-ticket-followup-state'] && !mail[:'x-zammad-ticket-followup-state_id']
|
||||||
new_state = Ticket::State.find_by(default_create: true)
|
new_state = Ticket::State.find_by(default_create: true)
|
||||||
if ticket.state_id != new_state.id && !mail['x-zammad-out-of-office'.to_sym]
|
if ticket.state_id != new_state.id && !mail[:'x-zammad-out-of-office']
|
||||||
ticket.state = Ticket::State.find_by(default_follow_up: true)
|
ticket.state = Ticket::State.find_by(default_follow_up: true)
|
||||||
ticket.save!
|
ticket.save!
|
||||||
end
|
end
|
||||||
|
@ -250,8 +250,8 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
# apply tags to ticket
|
# apply tags to ticket
|
||||||
if mail['x-zammad-ticket-tags'.to_sym].present?
|
if mail[:'x-zammad-ticket-tags'].present?
|
||||||
mail['x-zammad-ticket-tags'.to_sym].each do |tag|
|
mail[:'x-zammad-ticket-tags'].each do |tag|
|
||||||
ticket.tag_add(tag)
|
ticket.tag_add(tag)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,34 +5,34 @@ module Channel::Filter::AutoResponseCheck
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
# if header is available, do not generate auto response
|
# if header is available, do not generate auto response
|
||||||
mail[ 'x-zammad-send-auto-response'.to_sym ] = false
|
mail[ :'x-zammad-send-auto-response' ] = false
|
||||||
mail[ 'x-zammad-is-auto-response'.to_sym ] = true
|
mail[ :'x-zammad-is-auto-response' ] = true
|
||||||
|
|
||||||
if !mail[ 'x-zammad-article-preferences'.to_sym ]
|
if !mail[ :'x-zammad-article-preferences' ]
|
||||||
mail[ 'x-zammad-article-preferences'.to_sym ] = {}
|
mail[ :'x-zammad-article-preferences' ] = {}
|
||||||
end
|
end
|
||||||
mail[ 'x-zammad-article-preferences'.to_sym ]['send-auto-response'] = false
|
mail[ :'x-zammad-article-preferences' ]['send-auto-response'] = false
|
||||||
mail[ 'x-zammad-article-preferences'.to_sym ]['is-auto-response'] = true
|
mail[ :'x-zammad-article-preferences' ]['is-auto-response'] = true
|
||||||
|
|
||||||
# do not send an auto response if one of the following headers exists
|
# do not send an auto response if one of the following headers exists
|
||||||
return if mail[ 'list-unsubscribe'.to_sym ] && mail[ 'list-unsubscribe'.to_sym ] =~ /.../
|
return if mail[ :'list-unsubscribe' ] && mail[ :'list-unsubscribe' ] =~ /.../
|
||||||
return if mail[ 'x-loop'.to_sym ] && mail[ 'x-loop'.to_sym ] =~ /(yes|true)/i
|
return if mail[ :'x-loop' ] && mail[ :'x-loop' ] =~ /(yes|true)/i
|
||||||
return if mail[ 'precedence'.to_sym ] && mail[ 'precedence'.to_sym ] =~ /(bulk|list|junk)/i
|
return if mail[ :precedence ] && mail[ :precedence ] =~ /(bulk|list|junk)/i
|
||||||
return if mail[ 'auto-submitted'.to_sym ] && mail[ 'auto-submitted'.to_sym ] =~ /auto-(generated|replied)/i
|
return if mail[ :'auto-submitted' ] && mail[ :'auto-submitted' ] =~ /auto-(generated|replied)/i
|
||||||
return if mail[ 'x-auto-response-suppress'.to_sym ] && mail[ 'x-auto-response-suppress'.to_sym ] =~ /all/i
|
return if mail[ :'x-auto-response-suppress' ] && mail[ :'x-auto-response-suppress' ] =~ /all/i
|
||||||
|
|
||||||
# do not send an auto response if sender is system itself
|
# do not send an auto response if sender is system itself
|
||||||
message_id = mail[ 'message_id'.to_sym ]
|
message_id = mail[ :message_id ]
|
||||||
if message_id
|
if message_id
|
||||||
fqdn = Setting.get('fqdn')
|
fqdn = Setting.get('fqdn')
|
||||||
return if message_id.match?(/@#{Regexp.quote(fqdn)}/i)
|
return if message_id.match?(/@#{Regexp.quote(fqdn)}/i)
|
||||||
end
|
end
|
||||||
|
|
||||||
mail[ 'x-zammad-send-auto-response'.to_sym ] = true
|
mail[ :'x-zammad-send-auto-response' ] = true
|
||||||
mail[ 'x-zammad-is-auto-response'.to_sym ] = false
|
mail[ :'x-zammad-is-auto-response' ] = false
|
||||||
|
|
||||||
mail[ 'x-zammad-article-preferences'.to_sym ]['send-auto-response'] = true
|
mail[ :'x-zammad-article-preferences' ]['send-auto-response'] = true
|
||||||
mail[ 'x-zammad-article-preferences'.to_sym ]['is-auto-response'] = false
|
mail[ :'x-zammad-article-preferences' ]['is-auto-response'] = false
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,7 +10,7 @@ module Channel::Filter::BounceDeliveryTemporaryFailed
|
||||||
return if mail[:mail_instance].error_status != '4.4.1'
|
return if mail[:mail_instance].error_status != '4.4.1'
|
||||||
|
|
||||||
# if header is available, do change current ticket state
|
# if header is available, do change current ticket state
|
||||||
mail['x-zammad-out-of-office'.to_sym] = true
|
mail[:'x-zammad-out-of-office'] = true
|
||||||
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Channel::Filter::BounceFollowUpCheck
|
||||||
return if !mail[:mail_instance]
|
return if !mail[:mail_instance]
|
||||||
return if !mail[:mail_instance].bounced?
|
return if !mail[:mail_instance].bounced?
|
||||||
return if !mail[:attachments]
|
return if !mail[:attachments]
|
||||||
return if mail[ 'x-zammad-ticket-id'.to_sym ]
|
return if mail[ :'x-zammad-ticket-id' ]
|
||||||
|
|
||||||
mail[:attachments].each do |attachment|
|
mail[:attachments].each do |attachment|
|
||||||
next if !attachment[:preferences]
|
next if !attachment[:preferences]
|
||||||
|
@ -22,8 +22,8 @@ module Channel::Filter::BounceFollowUpCheck
|
||||||
next if !article
|
next if !article
|
||||||
|
|
||||||
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in bounce email." }
|
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in bounce email." }
|
||||||
mail[ 'x-zammad-ticket-id'.to_sym ] = article.ticket_id
|
mail[ :'x-zammad-ticket-id' ] = article.ticket_id
|
||||||
mail[ 'x-zammad-is-auto-response'.to_sym ] = true
|
mail[ :'x-zammad-is-auto-response' ] = true
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,13 +4,13 @@ module Channel::Filter::FollowUpCheck
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
return if mail['x-zammad-ticket-id'.to_sym]
|
return if mail[:'x-zammad-ticket-id']
|
||||||
|
|
||||||
# get ticket# from subject
|
# get ticket# from subject
|
||||||
ticket = Ticket::Number.check(mail[:subject])
|
ticket = Ticket::Number.check(mail[:subject])
|
||||||
if ticket
|
if ticket
|
||||||
Rails.logger.debug { "Follow-up for '##{ticket.number}' in subject." }
|
Rails.logger.debug { "Follow-up for '##{ticket.number}' in subject." }
|
||||||
mail['x-zammad-ticket-id'.to_sym] = ticket.id
|
mail[:'x-zammad-ticket-id'] = ticket.id
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ module Channel::Filter::FollowUpCheck
|
||||||
ticket = Ticket::Number.check(mail[:body].html2text)
|
ticket = Ticket::Number.check(mail[:body].html2text)
|
||||||
if ticket
|
if ticket
|
||||||
Rails.logger.debug { "Follow-up for '##{ticket.number}' in body." }
|
Rails.logger.debug { "Follow-up for '##{ticket.number}' in body." }
|
||||||
mail['x-zammad-ticket-id'.to_sym] = ticket.id
|
mail[:'x-zammad-ticket-id'] = ticket.id
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -49,24 +49,24 @@ module Channel::Filter::FollowUpCheck
|
||||||
next if !ticket
|
next if !ticket
|
||||||
|
|
||||||
Rails.logger.debug { "Follow-up for '##{ticket.number}' in attachment." }
|
Rails.logger.debug { "Follow-up for '##{ticket.number}' in attachment." }
|
||||||
mail['x-zammad-ticket-id'.to_sym] = ticket.id
|
mail[:'x-zammad-ticket-id'] = ticket.id
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# get ticket# from references
|
# get ticket# from references
|
||||||
if setting.include?('references') || (mail['x-zammad-is-auto-response'.to_sym] == true || Setting.get('ticket_hook_position') == 'none')
|
if setting.include?('references') || (mail[:'x-zammad-is-auto-response'] == true || Setting.get('ticket_hook_position') == 'none')
|
||||||
|
|
||||||
# get all references 'References' + 'In-Reply-To'
|
# get all references 'References' + 'In-Reply-To'
|
||||||
references = ''
|
references = ''
|
||||||
if mail[:references]
|
if mail[:references]
|
||||||
references += mail[:references]
|
references += mail[:references]
|
||||||
end
|
end
|
||||||
if mail['in-reply-to'.to_sym]
|
if mail[:'in-reply-to']
|
||||||
if references != ''
|
if references != ''
|
||||||
references += ' '
|
references += ' '
|
||||||
end
|
end
|
||||||
references += mail['in-reply-to'.to_sym]
|
references += mail[:'in-reply-to']
|
||||||
end
|
end
|
||||||
if references != ''
|
if references != ''
|
||||||
message_ids = references.split(/\s+/)
|
message_ids = references.split(/\s+/)
|
||||||
|
@ -76,7 +76,7 @@ module Channel::Filter::FollowUpCheck
|
||||||
next if !article
|
next if !article
|
||||||
|
|
||||||
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in references." }
|
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in references." }
|
||||||
mail['x-zammad-ticket-id'.to_sym] = article.ticket_id
|
mail[:'x-zammad-ticket-id'] = article.ticket_id
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -90,11 +90,11 @@ module Channel::Filter::FollowUpCheck
|
||||||
if mail[:references]
|
if mail[:references]
|
||||||
references += mail[:references]
|
references += mail[:references]
|
||||||
end
|
end
|
||||||
if mail['in-reply-to'.to_sym]
|
if mail[:'in-reply-to']
|
||||||
if references != ''
|
if references != ''
|
||||||
references += ' '
|
references += ' '
|
||||||
end
|
end
|
||||||
references += mail['in-reply-to'.to_sym]
|
references += mail[:'in-reply-to']
|
||||||
end
|
end
|
||||||
if references != ''
|
if references != ''
|
||||||
message_ids = references.split(/\s+/)
|
message_ids = references.split(/\s+/)
|
||||||
|
@ -117,7 +117,7 @@ module Channel::Filter::FollowUpCheck
|
||||||
next if subject_to_check != article_first.subject
|
next if subject_to_check != article_first.subject
|
||||||
|
|
||||||
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in references with same subject as inital article." }
|
Rails.logger.debug { "Follow-up for '##{article.ticket.number}' in references with same subject as inital article." }
|
||||||
mail['x-zammad-ticket-id'.to_sym] = article_first.ticket_id
|
mail[:'x-zammad-ticket-id'] = article_first.ticket_id
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
module Channel::Filter::FollowUpPossibleCheck
|
module Channel::Filter::FollowUpPossibleCheck
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
ticket_id = mail['x-zammad-ticket-id'.to_sym]
|
ticket_id = mail[:'x-zammad-ticket-id']
|
||||||
return true if !ticket_id
|
return true if !ticket_id
|
||||||
|
|
||||||
ticket = Ticket.lookup(id: ticket_id)
|
ticket = Ticket.lookup(id: ticket_id)
|
||||||
|
@ -13,9 +13,9 @@ module Channel::Filter::FollowUpPossibleCheck
|
||||||
# in case of closed tickets, remove follow-up information
|
# in case of closed tickets, remove follow-up information
|
||||||
case ticket.group.follow_up_possible
|
case ticket.group.follow_up_possible
|
||||||
when 'new_ticket'
|
when 'new_ticket'
|
||||||
mail[:subject] = ticket.subject_clean(mail[:subject])
|
mail[:subject] = ticket.subject_clean(mail[:subject])
|
||||||
mail['x-zammad-ticket-id'.to_sym] = nil
|
mail[:'x-zammad-ticket-id'] = nil
|
||||||
mail['x-zammad-ticket-number'.to_sym] = nil
|
mail[:'x-zammad-ticket-number'] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
true
|
true
|
||||||
|
|
|
@ -4,7 +4,7 @@ module Channel::Filter::IdentifySender
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
customer_user_id = mail[ 'x-zammad-ticket-customer_id'.to_sym ]
|
customer_user_id = mail[ :'x-zammad-ticket-customer_id' ]
|
||||||
customer_user = nil
|
customer_user = nil
|
||||||
if customer_user_id.present?
|
if customer_user_id.present?
|
||||||
customer_user = User.lookup(id: customer_user_id)
|
customer_user = User.lookup(id: customer_user_id)
|
||||||
|
@ -16,20 +16,20 @@ module Channel::Filter::IdentifySender
|
||||||
end
|
end
|
||||||
|
|
||||||
# check if sender exists in database
|
# check if sender exists in database
|
||||||
if !customer_user && mail[ 'x-zammad-customer-login'.to_sym ].present?
|
if !customer_user && mail[ :'x-zammad-customer-login' ].present?
|
||||||
customer_user = User.find_by(login: mail[ 'x-zammad-customer-login'.to_sym ])
|
customer_user = User.find_by(login: mail[ :'x-zammad-customer-login' ])
|
||||||
end
|
end
|
||||||
if !customer_user && mail[ 'x-zammad-customer-email'.to_sym ].present?
|
if !customer_user && mail[ :'x-zammad-customer-email' ].present?
|
||||||
customer_user = User.find_by(email: mail[ 'x-zammad-customer-email'.to_sym ])
|
customer_user = User.find_by(email: mail[ :'x-zammad-customer-email' ])
|
||||||
end
|
end
|
||||||
|
|
||||||
# get correct customer
|
# get correct customer
|
||||||
if !customer_user && Setting.get('postmaster_sender_is_agent_search_for_customer') == true
|
if !customer_user && Setting.get('postmaster_sender_is_agent_search_for_customer') == true
|
||||||
if mail[ 'x-zammad-ticket-create-article-sender'.to_sym ] == 'Agent'
|
if mail[ :'x-zammad-ticket-create-article-sender' ] == 'Agent'
|
||||||
|
|
||||||
# get first recipient and set customer
|
# get first recipient and set customer
|
||||||
begin
|
begin
|
||||||
to = 'raw-to'.to_sym
|
to = :'raw-to'
|
||||||
if mail[to]&.addrs
|
if mail[to]&.addrs
|
||||||
items = mail[to].addrs
|
items = mail[to].addrs
|
||||||
items.each do |item|
|
items.each do |item|
|
||||||
|
@ -54,18 +54,18 @@ module Channel::Filter::IdentifySender
|
||||||
# take regular from as customer
|
# take regular from as customer
|
||||||
if !customer_user
|
if !customer_user
|
||||||
customer_user = user_create(
|
customer_user = user_create(
|
||||||
login: mail[ 'x-zammad-customer-login'.to_sym ] || mail[ 'x-zammad-customer-email'.to_sym ] || mail[:from_email],
|
login: mail[ :'x-zammad-customer-login' ] || mail[ :'x-zammad-customer-email' ] || mail[:from_email],
|
||||||
firstname: mail[ 'x-zammad-customer-firstname'.to_sym ] || mail[:from_display_name],
|
firstname: mail[ :'x-zammad-customer-firstname' ] || mail[:from_display_name],
|
||||||
lastname: mail[ 'x-zammad-customer-lastname'.to_sym ],
|
lastname: mail[ :'x-zammad-customer-lastname' ],
|
||||||
email: mail[ 'x-zammad-customer-email'.to_sym ] || mail[:from_email],
|
email: mail[ :'x-zammad-customer-email' ] || mail[:from_email],
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
create_recipients(mail)
|
create_recipients(mail)
|
||||||
mail[ 'x-zammad-ticket-customer_id'.to_sym ] = customer_user.id
|
mail[ :'x-zammad-ticket-customer_id' ] = customer_user.id
|
||||||
|
|
||||||
# find session user
|
# find session user
|
||||||
session_user_id = mail[ 'x-zammad-session-user-id'.to_sym ]
|
session_user_id = mail[ :'x-zammad-session-user-id' ]
|
||||||
session_user = nil
|
session_user = nil
|
||||||
if session_user_id.present?
|
if session_user_id.present?
|
||||||
session_user = User.lookup(id: session_user_id)
|
session_user = User.lookup(id: session_user_id)
|
||||||
|
@ -84,7 +84,7 @@ module Channel::Filter::IdentifySender
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
if session_user
|
if session_user
|
||||||
mail[ 'x-zammad-session-user-id'.to_sym ] = session_user.id
|
mail[ :'x-zammad-session-user-id' ] = session_user.id
|
||||||
end
|
end
|
||||||
|
|
||||||
true
|
true
|
||||||
|
|
|
@ -24,7 +24,7 @@ class Channel::Filter::MonitoringBase
|
||||||
return if mail[:from].blank?
|
return if mail[:from].blank?
|
||||||
return if mail[:body].blank?
|
return if mail[:body].blank?
|
||||||
|
|
||||||
session_user_id = mail[ 'x-zammad-session-user-id'.to_sym ]
|
session_user_id = mail[ :'x-zammad-session-user-id' ]
|
||||||
return if !session_user_id
|
return if !session_user_id
|
||||||
|
|
||||||
# check if sender is monitoring
|
# check if sender is monitoring
|
||||||
|
@ -94,40 +94,40 @@ class Channel::Filter::MonitoringBase
|
||||||
next if ticket.preferences[integration]['service'] != result['service']
|
next if ticket.preferences[integration]['service'] != result['service']
|
||||||
|
|
||||||
# found open ticket for service+host
|
# found open ticket for service+host
|
||||||
mail[ 'x-zammad-ticket-id'.to_sym ] = ticket.id
|
mail[ :'x-zammad-ticket-id' ] = ticket.id
|
||||||
|
|
||||||
# check if service is recovered
|
# check if service is recovered
|
||||||
if auto_close && result['state'].present? && result['state'].match(/#{state_recovery_match}/i)
|
if auto_close && result['state'].present? && result['state'].match(/#{state_recovery_match}/i)
|
||||||
Rails.logger.info "MonitoringBase.#{integration} set autoclose to state_id #{auto_close_state_id}"
|
Rails.logger.info "MonitoringBase.#{integration} set autoclose to state_id #{auto_close_state_id}"
|
||||||
state = Ticket::State.lookup(id: auto_close_state_id)
|
state = Ticket::State.lookup(id: auto_close_state_id)
|
||||||
if state
|
if state
|
||||||
mail[ 'x-zammad-ticket-followup-state'.to_sym ] = state.name
|
mail[ :'x-zammad-ticket-followup-state' ] = state.name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
# new ticket, set meta data
|
# new ticket, set meta data
|
||||||
if !mail[ 'x-zammad-ticket-id'.to_sym ]
|
if !mail[ :'x-zammad-ticket-id' ]
|
||||||
if !mail[ 'x-zammad-ticket-preferences'.to_sym ]
|
if !mail[ :'x-zammad-ticket-preferences' ]
|
||||||
mail[ 'x-zammad-ticket-preferences'.to_sym ] = {}
|
mail[ :'x-zammad-ticket-preferences' ] = {}
|
||||||
end
|
end
|
||||||
preferences = {}
|
preferences = {}
|
||||||
preferences[integration] = result
|
preferences[integration] = result
|
||||||
preferences.each do |key, value|
|
preferences.each do |key, value|
|
||||||
mail[ 'x-zammad-ticket-preferences'.to_sym ][key] = value
|
mail[ :'x-zammad-ticket-preferences' ][key] = value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# ignore states
|
# ignore states
|
||||||
if state_ignore_match.present? && result['state'].present? && result['state'].match(/#{state_ignore_match}/i)
|
if state_ignore_match.present? && result['state'].present? && result['state'].match(/#{state_ignore_match}/i)
|
||||||
mail[ 'x-zammad-ignore'.to_sym ] = true
|
mail[ :'x-zammad-ignore' ] = true
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
# if now problem exists, just ignore the email
|
# if now problem exists, just ignore the email
|
||||||
if result['state'].present? && result['state'].match(/#{state_recovery_match}/i)
|
if result['state'].present? && result['state'].match(/#{state_recovery_match}/i)
|
||||||
mail[ 'x-zammad-ignore'.to_sym ] = true
|
mail[ :'x-zammad-ignore' ] = true
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -4,32 +4,32 @@ module Channel::Filter::OutOfOfficeCheck
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
mail[ 'x-zammad-out-of-office'.to_sym ] = false
|
mail[ :'x-zammad-out-of-office' ] = false
|
||||||
|
|
||||||
# check ms out of office characteristics
|
# check ms out of office characteristics
|
||||||
if mail[ 'x-auto-response-suppress'.to_sym ]
|
if mail[ :'x-auto-response-suppress' ]
|
||||||
return if !mail[ 'x-auto-response-suppress'.to_sym ].match?(/all/i)
|
return if !mail[ :'x-auto-response-suppress' ].match?(/all/i)
|
||||||
return if !mail[ 'x-ms-exchange-inbox-rules-loop'.to_sym ]
|
return if !mail[ :'x-ms-exchange-inbox-rules-loop' ]
|
||||||
|
|
||||||
mail[ 'x-zammad-out-of-office'.to_sym ] = true
|
mail[ :'x-zammad-out-of-office' ] = true
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if mail[ 'auto-submitted'.to_sym ]
|
if mail[ :'auto-submitted' ]
|
||||||
|
|
||||||
# check zimbra out of office characteristics
|
# check zimbra out of office characteristics
|
||||||
if mail[ 'auto-submitted'.to_sym ].match?(/vacation/i)
|
if mail[ :'auto-submitted' ].match?(/vacation/i)
|
||||||
mail[ 'x-zammad-out-of-office'.to_sym ] = true
|
mail[ :'x-zammad-out-of-office' ] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
# check cloud out of office characteristics
|
# check cloud out of office characteristics
|
||||||
if mail[ 'auto-submitted'.to_sym ].match?(/auto-replied;\sowner-email=/i)
|
if mail[ :'auto-submitted' ].match?(/auto-replied;\sowner-email=/i)
|
||||||
mail[ 'x-zammad-out-of-office'.to_sym ] = true
|
mail[ :'x-zammad-out-of-office' ] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
# gmail check out of office characteristics
|
# gmail check out of office characteristics
|
||||||
if mail[ 'auto-submitted'.to_sym ] =~ /auto-replied/i && mail[ 'subject'.to_sym ] =~ /vacation/i
|
if mail[ :'auto-submitted' ] =~ /auto-replied/i && mail[ :subject ] =~ /vacation/i
|
||||||
mail[ 'x-zammad-out-of-office'.to_sym ] = true
|
mail[ :'x-zammad-out-of-office' ] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -4,17 +4,17 @@ module Channel::Filter::OwnNotificationLoopDetection
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
message_id = mail['message-id'.to_sym]
|
message_id = mail[:'message-id']
|
||||||
return if !message_id
|
return if !message_id
|
||||||
|
|
||||||
recedence = mail['precedence'.to_sym]
|
recedence = mail[:precedence]
|
||||||
return if !recedence
|
return if !recedence
|
||||||
return if !recedence.match?(/bulk/i)
|
return if !recedence.match?(/bulk/i)
|
||||||
|
|
||||||
fqdn = Setting.get('fqdn')
|
fqdn = Setting.get('fqdn')
|
||||||
return if !message_id.match?(/@#{Regexp.quote(fqdn)}>/i)
|
return if !message_id.match?(/@#{Regexp.quote(fqdn)}>/i)
|
||||||
|
|
||||||
mail[ 'x-zammad-ignore'.to_sym ] = true
|
mail[ :'x-zammad-ignore' ] = true
|
||||||
Rails.logger.info "Detected own sent notification mail and dropped it to prevent loops (message_id: #{message_id}, from: #{mail[:from]}, to: #{mail[:to]})"
|
Rails.logger.info "Detected own sent notification mail and dropped it to prevent loops (message_id: #{message_id}, from: #{mail[:from]}, to: #{mail[:to]})"
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,19 +4,19 @@ module Channel::Filter::ReplyToBasedSender
|
||||||
|
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
reply_to = mail['reply-to'.to_sym]
|
reply_to = mail[:'reply-to']
|
||||||
return if reply_to.blank?
|
return if reply_to.blank?
|
||||||
|
|
||||||
setting = Setting.get('postmaster_sender_based_on_reply_to')
|
setting = Setting.get('postmaster_sender_based_on_reply_to')
|
||||||
return if setting.blank?
|
return if setting.blank?
|
||||||
|
|
||||||
# remember original sender
|
# remember original sender
|
||||||
mail['raw-origin_from'.to_sym] = mail['raw-from'.to_sym]
|
mail[:'raw-origin_from'] = mail[:'raw-from']
|
||||||
mail['origin_from'.to_sym] = mail[:from]
|
mail[:origin_from] = mail[:from]
|
||||||
mail['origin_from_email'.to_sym] = mail[:from_email]
|
mail[:origin_from_email] = mail[:from_email]
|
||||||
mail['origin_from_local'.to_sym] = mail[:from_local]
|
mail[:origin_from_local] = mail[:from_local]
|
||||||
mail['origin_from_domain'.to_sym] = mail[:from_domain]
|
mail[:origin_from_domain] = mail[:from_domain]
|
||||||
mail['origin_from_display_name'.to_sym] = mail[:from_display_name]
|
mail[:origin_from_display_name] = mail[:from_display_name]
|
||||||
|
|
||||||
# get properties of reply-to header
|
# get properties of reply-to header
|
||||||
result = Channel::EmailParser.sender_attributes(reply_to)
|
result = Channel::EmailParser.sender_attributes(reply_to)
|
||||||
|
@ -24,7 +24,7 @@ module Channel::Filter::ReplyToBasedSender
|
||||||
if setting == 'as_sender_of_email'
|
if setting == 'as_sender_of_email'
|
||||||
|
|
||||||
# set new sender
|
# set new sender
|
||||||
mail['raw-from'.to_sym] = mail['raw-reply-to'.to_sym]
|
mail[:'raw-from'] = mail[:'raw-reply-to']
|
||||||
mail[:from] = reply_to
|
mail[:from] = reply_to
|
||||||
mail[:from_email] = result[:from_email]
|
mail[:from_email] = result[:from_email]
|
||||||
mail[:from_local] = result[:from_local]
|
mail[:from_local] = result[:from_local]
|
||||||
|
@ -36,11 +36,11 @@ module Channel::Filter::ReplyToBasedSender
|
||||||
if setting == 'as_sender_of_email_use_from_realname'
|
if setting == 'as_sender_of_email_use_from_realname'
|
||||||
|
|
||||||
# set new sender
|
# set new sender
|
||||||
mail['raw-from'.to_sym] = mail['raw-reply-to'.to_sym]
|
mail[:'raw-from'] = mail[:'raw-reply-to']
|
||||||
mail[:from] = reply_to
|
mail[:from] = reply_to
|
||||||
mail[:from_email] = result[:from_email]
|
mail[:from_email] = result[:from_email]
|
||||||
mail[:from_local] = result[:from_local]
|
mail[:from_local] = result[:from_local]
|
||||||
mail[:from_domain] = result[:from_domain]
|
mail[:from_domain] = result[:from_domain]
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@ module Channel::Filter::SenderIsSystemAddress
|
||||||
def self.run(_channel, mail)
|
def self.run(_channel, mail)
|
||||||
|
|
||||||
# if attributes already set by header
|
# if attributes already set by header
|
||||||
return if mail['x-zammad-ticket-create-article-sender'.to_sym]
|
return if mail[:'x-zammad-ticket-create-article-sender']
|
||||||
return if mail['x-zammad-article-sender'.to_sym]
|
return if mail[:'x-zammad-article-sender']
|
||||||
|
|
||||||
# check if sender address is system
|
# check if sender address is system
|
||||||
form = 'raw-from'.to_sym
|
form = :'raw-from'
|
||||||
return if mail[form].blank?
|
return if mail[form].blank?
|
||||||
return if mail[:to].blank?
|
return if mail[:to].blank?
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ module Channel::Filter::SenderIsSystemAddress
|
||||||
items.each do |item|
|
items.each do |item|
|
||||||
next if !EmailAddress.exists?(email: item.address.downcase)
|
next if !EmailAddress.exists?(email: item.address.downcase)
|
||||||
|
|
||||||
mail['x-zammad-ticket-create-article-sender'.to_sym] = 'Agent'
|
mail[:'x-zammad-ticket-create-article-sender'] = 'Agent'
|
||||||
mail['x-zammad-article-sender'.to_sym] = 'Agent'
|
mail[:'x-zammad-article-sender'] = 'Agent'
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
rescue => e
|
rescue => e
|
||||||
|
@ -37,18 +37,18 @@ module Channel::Filter::SenderIsSystemAddress
|
||||||
return if !user
|
return if !user
|
||||||
return if !user.permissions?('ticket.agent')
|
return if !user.permissions?('ticket.agent')
|
||||||
|
|
||||||
mail['x-zammad-ticket-create-article-sender'.to_sym] = 'Agent'
|
mail[:'x-zammad-ticket-create-article-sender'] = 'Agent'
|
||||||
mail['x-zammad-article-sender'.to_sym] = 'Agent'
|
mail[:'x-zammad-article-sender'] = 'Agent'
|
||||||
|
|
||||||
# if the agent is also customer of the ticket then
|
# if the agent is also customer of the ticket then
|
||||||
# we need to set the sender as customer.
|
# we need to set the sender as customer.
|
||||||
ticket_id = mail['x-zammad-ticket-id'.to_sym]
|
ticket_id = mail[:'x-zammad-ticket-id']
|
||||||
if ticket_id.present?
|
if ticket_id.present?
|
||||||
ticket = Ticket.lookup(id: ticket_id)
|
ticket = Ticket.lookup(id: ticket_id)
|
||||||
|
|
||||||
if ticket.present? && ticket.customer_id == user.id
|
if ticket.present? && ticket.customer_id == user.id
|
||||||
mail['x-zammad-ticket-create-article-sender'.to_sym] = 'Customer'
|
mail[:'x-zammad-ticket-create-article-sender'] = 'Customer'
|
||||||
mail['x-zammad-article-sender'.to_sym] = 'Customer'
|
mail[:'x-zammad-article-sender'] = 'Customer'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -80,6 +80,6 @@ returns:
|
||||||
)
|
)
|
||||||
return if sync_entry.blank?
|
return if sync_entry.blank?
|
||||||
|
|
||||||
mail[ 'x-zammad-ticket-id'.to_sym ] = sync_entry.o_id
|
mail[ :'x-zammad-ticket-id' ] = sync_entry.o_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,7 @@ module CanBePublished
|
||||||
after_touch :update_active_publicly
|
after_touch :update_active_publicly
|
||||||
|
|
||||||
%i[archived published internal].each do |scope_name|
|
%i[archived published internal].each do |scope_name|
|
||||||
local = "#{scope_name}_by".to_sym
|
local = :"#{scope_name}_by"
|
||||||
remote = inverse_relation_name(scope_name).to_sym
|
remote = inverse_relation_name(scope_name).to_sym
|
||||||
|
|
||||||
belongs_to local, class_name: 'User', inverse_of: remote, optional: true
|
belongs_to local, class_name: 'User', inverse_of: remote, optional: true
|
||||||
|
|
|
@ -19,7 +19,7 @@ module ChecksHtmlSanitized
|
||||||
next if value.blank?
|
next if value.blank?
|
||||||
next if !sanitizeable?(attribute, value)
|
next if !sanitizeable?(attribute, value)
|
||||||
|
|
||||||
send("#{attribute}=".to_sym, HtmlSanitizer.strict(value))
|
send(:"#{attribute}=", HtmlSanitizer.strict(value))
|
||||||
end
|
end
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ module HasAgentAllowedParams
|
||||||
return [] if !const_defined?(:AGENT_ALLOWED_NESTED_RELATIONS)
|
return [] if !const_defined?(:AGENT_ALLOWED_NESTED_RELATIONS)
|
||||||
|
|
||||||
const_get(:AGENT_ALLOWED_NESTED_RELATIONS).map do |relation_identifier|
|
const_get(:AGENT_ALLOWED_NESTED_RELATIONS).map do |relation_identifier|
|
||||||
key = "#{relation_identifier}_attributes".to_sym
|
key = :"#{relation_identifier}_attributes"
|
||||||
value = reflect_on_association(relation_identifier).klass.agent_allowed_params
|
value = reflect_on_association(relation_identifier).klass.agent_allowed_params
|
||||||
|
|
||||||
if reflect_on_association(relation_identifier).is_a? ActiveRecord::Reflection::HasManyReflection
|
if reflect_on_association(relation_identifier).is_a? ActiveRecord::Reflection::HasManyReflection
|
||||||
|
|
|
@ -59,7 +59,7 @@ module HasGroupRelationDefinition
|
||||||
end
|
end
|
||||||
|
|
||||||
def ref_key
|
def ref_key
|
||||||
@ref_key ||= "#{group_relation_model_identifier}_id".to_sym
|
@ref_key ||= :"#{group_relation_model_identifier}_id"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -355,7 +355,7 @@ module HasGroups
|
||||||
#
|
#
|
||||||
# @return [Symbol] The relation identifier
|
# @return [Symbol] The relation identifier
|
||||||
def group_through_identifier
|
def group_through_identifier
|
||||||
"#{name.downcase}_groups".to_sym
|
:"#{name.downcase}_groups"
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_group_id_parameter(group_or_id)
|
def ensure_group_id_parameter(group_or_id)
|
||||||
|
|
|
@ -87,7 +87,7 @@ module Import
|
||||||
result_key = if %i[text id].include?(key) && ( !result[result_key] || result[result_key] == value )
|
result_key = if %i[text id].include?(key) && ( !result[result_key] || result[result_key] == value )
|
||||||
prefix
|
prefix
|
||||||
else
|
else
|
||||||
"#{prefix}.#{key}".to_sym
|
:"#{prefix}.#{key}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
result_key = result_key.to_s.downcase
|
result_key = result_key.to_s.downcase
|
||||||
|
|
|
@ -35,7 +35,7 @@ class SecureMailing::SMIME::Incoming < SecureMailing::Backend::Handler
|
||||||
|
|
||||||
def article_preferences
|
def article_preferences
|
||||||
@article_preferences ||= begin
|
@article_preferences ||= begin
|
||||||
key = 'x-zammad-article-preferences'.to_sym
|
key = :'x-zammad-article-preferences'
|
||||||
@mail[ key ] ||= {}
|
@mail[ key ] ||= {}
|
||||||
@mail[ key ]
|
@mail[ key ]
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,7 @@ class Sequencer
|
||||||
end
|
end
|
||||||
|
|
||||||
def indirect_map(channel)
|
def indirect_map(channel)
|
||||||
method_name = "remote_name_#{channel}".to_sym
|
method_name = :"remote_name_#{channel}"
|
||||||
send(method_name) if respond_to?(method_name, true)
|
send(method_name) if respond_to?(method_name, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ class Sequencer
|
||||||
module ClassMethods
|
module ClassMethods
|
||||||
|
|
||||||
def resource_map
|
def resource_map
|
||||||
"#{resource_klass.underscore}_map".to_sym
|
:"#{resource_klass.underscore}_map"
|
||||||
end
|
end
|
||||||
|
|
||||||
def inherited(base)
|
def inherited(base)
|
||||||
|
|
|
@ -14,6 +14,6 @@ RSpec.configure do |config|
|
||||||
|
|
||||||
# set custom Zammad driver (e.g. zammad_chrome) for special
|
# set custom Zammad driver (e.g. zammad_chrome) for special
|
||||||
# functionalities and CI requirements
|
# functionalities and CI requirements
|
||||||
driven_by("zammad_#{ENV.fetch('BROWSER', 'firefox')}".to_sym)
|
driven_by(:"zammad_#{ENV.fetch('BROWSER', 'firefox')}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -57,7 +57,7 @@ Subject: some new subject
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(2, article_p.ticket.articles.count)
|
assert_equal(2, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ X-Loop: yes
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ Precedence: Bulk
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
|
|
||||||
email_raw_string = "From: me@example.com
|
email_raw_string = "From: me@example.com
|
||||||
To: customer@example.com
|
To: customer@example.com
|
||||||
|
@ -93,7 +93,7 @@ Some Text"
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
_ticket_p, _article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, _article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
|
|
||||||
email_raw_string = "From: me@example.com
|
email_raw_string = "From: me@example.com
|
||||||
To: customer@example.com
|
To: customer@example.com
|
||||||
|
@ -104,7 +104,7 @@ X-Auto-Response-Suppress: All
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ Message-ID: <1234@#{fqdn}>
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ Message-ID: <1234@not_matching.#{fqdn}>
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(2, article_p.ticket.articles.count)
|
assert_equal(2, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ Content-Disposition: inline
|
||||||
test"
|
test"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ X-Loop: yes
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -247,7 +247,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -279,7 +279,7 @@ Subject: some new subject
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -310,7 +310,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
assert_equal('new', ticket_p.state.name)
|
assert_equal('new', ticket_p.state.name)
|
||||||
|
@ -394,7 +394,7 @@ Subject: some new subject
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(2, article_p.ticket.articles.count)
|
assert_equal(2, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ X-Loop: yes
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -418,7 +418,7 @@ Precedence: Bulk
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
|
|
||||||
email_raw_string = "From: me@example.com
|
email_raw_string = "From: me@example.com
|
||||||
To: customer@example.com
|
To: customer@example.com
|
||||||
|
@ -430,7 +430,7 @@ Some Text"
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
_ticket_p, _article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, _article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
|
|
||||||
email_raw_string = "From: me@example.com
|
email_raw_string = "From: me@example.com
|
||||||
To: customer@example.com
|
To: customer@example.com
|
||||||
|
@ -441,7 +441,7 @@ X-Auto-Response-Suppress: All
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -454,7 +454,7 @@ Message-ID: <1234@#{fqdn}>
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ Message-ID: <1234@not_matching.#{fqdn}>
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(2, article_p.ticket.articles.count)
|
assert_equal(2, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -517,7 +517,7 @@ Content-Disposition: inline
|
||||||
test"
|
test"
|
||||||
|
|
||||||
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
_ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
assert_equal(1, article_p.ticket.articles.count)
|
assert_equal(1, article_p.ticket.articles.count)
|
||||||
|
|
||||||
|
@ -558,7 +558,7 @@ X-Loop: yes
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -584,7 +584,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -616,7 +616,7 @@ Subject: some new subject
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -647,7 +647,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
assert_equal('new', ticket_p.state.name)
|
assert_equal('new', ticket_p.state.name)
|
||||||
|
@ -764,7 +764,7 @@ X-Loop: yes
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -790,7 +790,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(false, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(false, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -822,7 +822,7 @@ Subject: some new subject
|
||||||
Some Text"
|
Some Text"
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
|
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
|
@ -847,7 +847,7 @@ Some Text"
|
||||||
Setting.set('ticket_trigger_recursive', true)
|
Setting.set('ticket_trigger_recursive', true)
|
||||||
|
|
||||||
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
ticket_p, article_p, _user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
|
||||||
assert_equal(true, mail['x-zammad-send-auto-response'.to_sym])
|
assert_equal(true, mail[:'x-zammad-send-auto-response'])
|
||||||
Scheduler.worker(true)
|
Scheduler.worker(true)
|
||||||
tags = ticket_p.tag_list
|
tags = ticket_p.tag_list
|
||||||
assert_equal('open', ticket_p.state.name)
|
assert_equal('open', ticket_p.state.name)
|
||||||
|
|
|
@ -20,12 +20,12 @@ Some Text"
|
||||||
assert_equal('marketing_tool@example.com', ticket_p.customer.email)
|
assert_equal('marketing_tool@example.com', ticket_p.customer.email)
|
||||||
assert_equal('Bob', ticket_p.customer.firstname)
|
assert_equal('Bob', ticket_p.customer.firstname)
|
||||||
assert_equal('Smith', ticket_p.customer.lastname)
|
assert_equal('Smith', ticket_p.customer.lastname)
|
||||||
assert_nil(mail['raw-origin_from'.to_sym])
|
assert_nil(mail[:'raw-origin_from'])
|
||||||
assert_nil(mail['origin_from'.to_sym])
|
assert_nil(mail[:origin_from])
|
||||||
assert_nil(mail['origin_from_email'.to_sym])
|
assert_nil(mail[:origin_from_email])
|
||||||
assert_nil(mail['origin_from_local'.to_sym])
|
assert_nil(mail[:origin_from_local])
|
||||||
assert_nil(mail['origin_from_domain'.to_sym])
|
assert_nil(mail[:origin_from_domain])
|
||||||
assert_nil(mail['origin_from_display_name'.to_sym])
|
assert_nil(mail[:origin_from_display_name])
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'normal processing - take reply to as customer' do
|
test 'normal processing - take reply to as customer' do
|
||||||
|
@ -60,12 +60,12 @@ Some Text"
|
||||||
assert_equal('replay_to_customer_process2-1@example.com', ticket_p.customer.email)
|
assert_equal('replay_to_customer_process2-1@example.com', ticket_p.customer.email)
|
||||||
assert_equal('Some', ticket_p.customer.firstname)
|
assert_equal('Some', ticket_p.customer.firstname)
|
||||||
assert_equal('Name', ticket_p.customer.lastname)
|
assert_equal('Name', ticket_p.customer.lastname)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['raw-origin_from'.to_sym].to_s)
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:'raw-origin_from'].to_s)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['origin_from'.to_sym])
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:origin_from])
|
||||||
assert_equal('marketing_tool@example.com', mail['origin_from_email'.to_sym])
|
assert_equal('marketing_tool@example.com', mail[:origin_from_email])
|
||||||
assert_equal('marketing_tool', mail['origin_from_local'.to_sym])
|
assert_equal('marketing_tool', mail[:origin_from_local])
|
||||||
assert_equal('example.com', mail['origin_from_domain'.to_sym])
|
assert_equal('example.com', mail[:origin_from_domain])
|
||||||
assert_equal('Bob Smith', mail['origin_from_display_name'.to_sym])
|
assert_equal('Bob Smith', mail[:origin_from_display_name])
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'normal processing - take reply to as customer and use from as realname' do
|
test 'normal processing - take reply to as customer and use from as realname' do
|
||||||
|
@ -84,12 +84,12 @@ Some Text"
|
||||||
assert_equal('replay_to_customer_process3@example.com', ticket_p.customer.email)
|
assert_equal('replay_to_customer_process3@example.com', ticket_p.customer.email)
|
||||||
assert_equal('Bob', ticket_p.customer.firstname)
|
assert_equal('Bob', ticket_p.customer.firstname)
|
||||||
assert_equal('Smith', ticket_p.customer.lastname)
|
assert_equal('Smith', ticket_p.customer.lastname)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['raw-origin_from'.to_sym].to_s)
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:'raw-origin_from'].to_s)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['origin_from'.to_sym])
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:origin_from])
|
||||||
assert_equal('marketing_tool@example.com', mail['origin_from_email'.to_sym])
|
assert_equal('marketing_tool@example.com', mail[:origin_from_email])
|
||||||
assert_equal('marketing_tool', mail['origin_from_local'.to_sym])
|
assert_equal('marketing_tool', mail[:origin_from_local])
|
||||||
assert_equal('example.com', mail['origin_from_domain'.to_sym])
|
assert_equal('example.com', mail[:origin_from_domain])
|
||||||
assert_equal('Bob Smith', mail['origin_from_display_name'.to_sym])
|
assert_equal('Bob Smith', mail[:origin_from_display_name])
|
||||||
|
|
||||||
email = "From: Bob Smith <marketing_tool@example.com>
|
email = "From: Bob Smith <marketing_tool@example.com>
|
||||||
To: zammad@example.com
|
To: zammad@example.com
|
||||||
|
@ -106,12 +106,12 @@ Some Text"
|
||||||
assert_equal('replay_to_customer_process3-1@example.com', ticket_p.customer.email)
|
assert_equal('replay_to_customer_process3-1@example.com', ticket_p.customer.email)
|
||||||
assert_equal('Bob', ticket_p.customer.firstname)
|
assert_equal('Bob', ticket_p.customer.firstname)
|
||||||
assert_equal('Smith', ticket_p.customer.lastname)
|
assert_equal('Smith', ticket_p.customer.lastname)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['raw-origin_from'.to_sym].to_s)
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:'raw-origin_from'].to_s)
|
||||||
assert_equal('Bob Smith <marketing_tool@example.com>', mail['origin_from'.to_sym])
|
assert_equal('Bob Smith <marketing_tool@example.com>', mail[:origin_from])
|
||||||
assert_equal('marketing_tool@example.com', mail['origin_from_email'.to_sym])
|
assert_equal('marketing_tool@example.com', mail[:origin_from_email])
|
||||||
assert_equal('marketing_tool', mail['origin_from_local'.to_sym])
|
assert_equal('marketing_tool', mail[:origin_from_local])
|
||||||
assert_equal('example.com', mail['origin_from_domain'.to_sym])
|
assert_equal('example.com', mail[:origin_from_domain])
|
||||||
assert_equal('Bob Smith', mail['origin_from_display_name'.to_sym])
|
assert_equal('Bob Smith', mail[:origin_from_display_name])
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'normal processing - take reply to as customer and sender is system address' do
|
test 'normal processing - take reply to as customer and sender is system address' do
|
||||||
|
@ -141,12 +141,12 @@ Some Text"
|
||||||
assert_equal('replay_to_customer_process2@example.com', ticket_p.customer.email)
|
assert_equal('replay_to_customer_process2@example.com', ticket_p.customer.email)
|
||||||
assert_equal('', ticket_p.customer.firstname)
|
assert_equal('', ticket_p.customer.firstname)
|
||||||
assert_equal('', ticket_p.customer.lastname)
|
assert_equal('', ticket_p.customer.lastname)
|
||||||
assert_equal('Marketing Tool <marketing_tool@example.com>', mail['raw-origin_from'.to_sym].to_s)
|
assert_equal('Marketing Tool <marketing_tool@example.com>', mail[:'raw-origin_from'].to_s)
|
||||||
assert_equal('Marketing Tool <marketing_tool@example.com>', mail['origin_from'.to_sym])
|
assert_equal('Marketing Tool <marketing_tool@example.com>', mail[:origin_from])
|
||||||
assert_equal('marketing_tool@example.com', mail['origin_from_email'.to_sym])
|
assert_equal('marketing_tool@example.com', mail[:origin_from_email])
|
||||||
assert_equal('marketing_tool', mail['origin_from_local'.to_sym])
|
assert_equal('marketing_tool', mail[:origin_from_local])
|
||||||
assert_equal('example.com', mail['origin_from_domain'.to_sym])
|
assert_equal('example.com', mail[:origin_from_domain])
|
||||||
assert_equal('Marketing Tool', mail['origin_from_display_name'.to_sym])
|
assert_equal('Marketing Tool', mail[:origin_from_display_name])
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue