Implemented issue #1745 - article.body support for triggers.

This commit is contained in:
Martin Edenhofer 2018-01-12 14:59:25 +01:00
parent 6f87ebf7c7
commit df33dc1d71
3 changed files with 325 additions and 91 deletions

View file

@ -0,0 +1,4 @@
# coffeelint: disable=camel_case_classes
class App.UiElement.richtext_search
@render: (attribute) ->
$( App.view('generic/input')( attribute: attribute ) )

View file

@ -25,6 +25,7 @@ class App.UiElement.ticket_selector
'^radio$': ['is', 'is not'] '^radio$': ['is', 'is not']
'^select$': ['is', 'is not'] '^select$': ['is', 'is not']
'^input$': ['contains', 'contains not'] '^input$': ['contains', 'contains not']
'^richtext$': ['contains', 'contains not']
'^textarea$': ['contains', 'contains not'] '^textarea$': ['contains', 'contains not']
'^tag$': ['contains all', 'contains one', 'contains all not', 'contains one not'] '^tag$': ['contains all', 'contains one', 'contains all not', 'contains one not']
@ -37,6 +38,7 @@ class App.UiElement.ticket_selector
'^radio$': ['is', 'is not', 'has changed'] '^radio$': ['is', 'is not', 'has changed']
'^select$': ['is', 'is not', 'has changed'] '^select$': ['is', 'is not', 'has changed']
'^input$': ['contains', 'contains not', 'has changed'] '^input$': ['contains', 'contains not', 'has changed']
'^richtext$': ['contains', 'contains not', 'has changed']
'^textarea$': ['contains', 'contains not', 'has changed'] '^textarea$': ['contains', 'contains not', 'has changed']
'^tag$': ['contains all', 'contains one', 'contains all not', 'contains one not'] '^tag$': ['contains all', 'contains one', 'contains all not', 'contains one not']

View file

@ -151,15 +151,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created') Ticket::Article.create!(
Ticket::Article.create(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -236,7 +235,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(2, ticket1.articles.count, 'ticket1.articles verify') assert_equal(2, ticket1.articles.count, 'ticket1.articles verify')
assert_equal(%w[aa abc], ticket1.tag_list) assert_equal(%w[aa abc], ticket1.tag_list)
ticket2 = Ticket.create( ticket2 = Ticket.create!(
title: "some title\n äöüß", title: "some title\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
@ -245,7 +244,6 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket2, 'ticket2 created')
assert_equal('some title äöüß', ticket2.title, 'ticket2.title verify') assert_equal('some title äöüß', ticket2.title, 'ticket2.title verify')
assert_equal('Users', ticket2.group.name, 'ticket2.group verify') assert_equal('Users', ticket2.group.name, 'ticket2.group verify')
@ -264,7 +262,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(0, ticket2.articles.count, 'ticket2.articles verify') assert_equal(0, ticket2.articles.count, 'ticket2.articles verify')
assert_equal([], ticket2.tag_list) assert_equal([], ticket2.tag_list)
ticket3 = Ticket.create( ticket3 = Ticket.create!(
title: "some <b>title</b>\n äöüß3", title: "some <b>title</b>\n äöüß3",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
@ -273,7 +271,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
) )
assert(ticket3, 'ticket3 created') assert(ticket3, 'ticket3 created')
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket3.id, ticket_id: ticket3.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -318,7 +316,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_match('Thanks for your inquiry - 1234 check (some <b>title</b> äöüß3)!', article3.subject) assert_match('Thanks for your inquiry - 1234 check (some <b>title</b> äöüß3)!', article3.subject)
assert_equal('text/html', article3.content_type) assert_equal('text/html', article3.content_type)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket3.id, ticket_id: ticket3.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -343,7 +341,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(4, ticket3.articles.count, 'ticket3.articles verify') assert_equal(4, ticket3.articles.count, 'ticket3.articles verify')
assert_equal(%w[aa abc article_create_trigger], ticket3.tag_list) assert_equal(%w[aa abc article_create_trigger], ticket3.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket3.id, ticket_id: ticket3.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -368,7 +366,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(5, ticket3.articles.count, 'ticket3.articles verify') assert_equal(5, ticket3.articles.count, 'ticket3.articles verify')
assert_equal(%w[aa abc article_create_trigger], ticket3.tag_list) assert_equal(%w[aa abc article_create_trigger], ticket3.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket3.id, ticket_id: ticket3.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -423,14 +421,13 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some title\n äöüß", title: "some title\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created')
assert_equal('some title äöüß', ticket1.title, 'ticket1.title verify') assert_equal('some title äöüß', ticket1.title, 'ticket1.title verify')
assert_equal('Users', ticket1.group.name, 'ticket1.group verify') assert_equal('Users', ticket1.group.name, 'ticket1.group verify')
@ -517,14 +514,13 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some title\n äöüß", title: "some title\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created')
assert_equal('some title äöüß', ticket1.title, 'ticket1.title verify') assert_equal('some title äöüß', ticket1.title, 'ticket1.title verify')
assert_equal('Users', ticket1.group.name, 'ticket1.group verify') assert_equal('Users', ticket1.group.name, 'ticket1.group verify')
@ -732,7 +728,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify') assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify')
assert_equal(2, ticket_p.articles.count, 'ticket_p.articles verify') assert_equal(2, ticket_p.articles.count, 'ticket_p.articles verify')
article_p = Ticket::Article.create( article_p = Ticket::Article.create!(
ticket_id: ticket_p.id, ticket_id: ticket_p.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -752,7 +748,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify') assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify')
assert_equal(3, ticket_p.articles.count, 'ticket_p.articles verify') assert_equal(3, ticket_p.articles.count, 'ticket_p.articles verify')
article_p = Ticket::Article.create( article_p = Ticket::Article.create!(
ticket_id: ticket_p.id, ticket_id: ticket_p.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -772,7 +768,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify') assert_equal('2 normal', ticket_p.priority.name, 'ticket_p.priority verify')
assert_equal(4, ticket_p.articles.count, 'ticket_p.articles verify') assert_equal(4, ticket_p.articles.count, 'ticket_p.articles verify')
article_p = Ticket::Article.create( article_p = Ticket::Article.create!(
ticket_id: ticket_p.id, ticket_id: ticket_p.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -803,7 +799,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
ticket_p.state = Ticket::State.lookup(name: 'open') ticket_p.state = Ticket::State.lookup(name: 'open')
ticket_p.save! ticket_p.save!
article_p = Ticket::Article.create( article_p = Ticket::Article.create!(
ticket_id: ticket_p.id, ticket_id: ticket_p.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1207,7 +1203,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
owner: agent, owner: agent,
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
@ -1215,7 +1211,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1240,7 +1236,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(1, ticket1.articles.count) assert_equal(1, ticket1.articles.count)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1283,7 +1279,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1342,7 +1338,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
#owner: agent, #owner: agent,
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
@ -1350,7 +1346,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1374,7 +1370,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
UserInfo.current_user_id = agent.id UserInfo.current_user_id = agent.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1467,14 +1463,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: customer, customer: customer,
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1500,7 +1496,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
ticket1.update!(customer: User.lookup(email: 'nicole.braun@zammad.org') ) ticket1.update!(customer: User.lookup(email: 'nicole.braun@zammad.org') )
UserInfo.current_user_id = agent.id UserInfo.current_user_id = agent.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1578,14 +1574,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1611,7 +1607,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
ticket1.update!(customer: customer ) ticket1.update!(customer: customer )
UserInfo.current_user_id = agent.id UserInfo.current_user_id = agent.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1691,7 +1687,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
#owner: agent, #owner: agent,
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
@ -1699,7 +1695,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1723,7 +1719,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
UserInfo.current_user_id = agent1.id UserInfo.current_user_id = agent1.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1762,7 +1758,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
UserInfo.current_user_id = agent1.id UserInfo.current_user_id = agent1.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1801,7 +1797,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
UserInfo.current_user_id = agent1.id UserInfo.current_user_id = agent1.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1872,7 +1868,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
#owner: agent, #owner: agent,
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
@ -1880,7 +1876,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -1904,7 +1900,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
UserInfo.current_user_id = agent.id UserInfo.current_user_id = agent.id
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2019,7 +2015,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
owner: agent, owner: agent,
customer: customer, customer: customer,
@ -2027,7 +2023,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2065,7 +2061,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
customer.vip = false customer.vip = false
customer.save! customer.save!
ticket2 = Ticket.create( ticket2 = Ticket.create!(
title: 'test 123', title: 'test 123',
owner: agent, owner: agent,
customer: customer, customer: customer,
@ -2073,7 +2069,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket2.id, ticket_id: ticket2.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2157,14 +2153,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2291,7 +2287,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
owner: agent, owner: agent,
customer: customer, customer: customer,
@ -2299,7 +2295,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2325,7 +2321,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(2, ticket1.articles.count, 'ticket1.articles verify') assert_equal(2, ticket1.articles.count, 'ticket1.articles verify')
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2350,7 +2346,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(3, ticket1.articles.count, 'ticket1.articles verify') assert_equal(3, ticket1.articles.count, 'ticket1.articles verify')
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2377,7 +2373,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
ticket1.priority = Ticket::Priority.find_by(name: '3 high') ticket1.priority = Ticket::Priority.find_by(name: '3 high')
ticket1.save! ticket1.save!
article = Ticket::Article.create( article = Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2416,7 +2412,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(6, ticket1.articles.count, 'ticket1.articles verify') assert_equal(6, ticket1.articles.count, 'ticket1.articles verify')
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2574,7 +2570,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 123', title: 'test 123',
#owner: agent, #owner: agent,
customer: customer, customer: customer,
@ -2582,7 +2578,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2624,7 +2620,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(3, ticket1.articles.count, 'ticket1.articles verify') assert_equal(3, ticket1.articles.count, 'ticket1.articles verify')
assert_equal([], ticket1.tag_list) assert_equal([], ticket1.tag_list)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2718,14 +2714,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient+from@example.com', to: 'some_recipient+from@example.com',
@ -2775,14 +2771,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender+from@example.com', from: 'some_sender+from@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -2844,14 +2840,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
subject: 'some subject', subject: 'some subject',
@ -2913,14 +2909,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
subject: 'some subject', subject: 'some subject',
@ -2979,7 +2975,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
@ -2987,7 +2983,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient+from@example.com', to: 'some_recipient+from@example.com',
@ -3038,14 +3034,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient+from@example.com', to: 'some_recipient+from@example.com',
@ -3101,15 +3097,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'loop try 1', title: 'loop try 1',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created') Ticket::Article.create!(
Ticket::Article.create(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3136,7 +3131,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
ticket1.reload ticket1.reload
assert_equal(2, ticket1.articles.count) assert_equal(2, ticket1.articles.count)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3157,7 +3152,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[2].from) assert_equal('some_loop_sender@example.com', ticket1.articles[2].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[3].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[3].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3178,7 +3173,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[4].from) assert_equal('some_loop_sender@example.com', ticket1.articles[4].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[5].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[5].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3199,7 +3194,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[6].from) assert_equal('some_loop_sender@example.com', ticket1.articles[6].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[7].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[7].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3220,7 +3215,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[8].from) assert_equal('some_loop_sender@example.com', ticket1.articles[8].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[9].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[9].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3241,7 +3236,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[10].from) assert_equal('some_loop_sender@example.com', ticket1.articles[10].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[11].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[11].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3262,7 +3257,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[12].from) assert_equal('some_loop_sender@example.com', ticket1.articles[12].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[13].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[13].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3283,7 +3278,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[14].from) assert_equal('some_loop_sender@example.com', ticket1.articles[14].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[15].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[15].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3304,7 +3299,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[16].from) assert_equal('some_loop_sender@example.com', ticket1.articles[16].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[17].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[17].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3325,7 +3320,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal('some_loop_sender@example.com', ticket1.articles[18].from) assert_equal('some_loop_sender@example.com', ticket1.articles[18].from)
assert_equal('nicole.braun@zammad.org', ticket1.articles[19].to) assert_equal('nicole.braun@zammad.org', ticket1.articles[19].to)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3345,7 +3340,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(21, ticket1.articles.count) assert_equal(21, ticket1.articles.count)
assert_equal('some_loop_sender@example.com', ticket1.articles[20].from) assert_equal('some_loop_sender@example.com', ticket1.articles[20].from)
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_loop_sender@example.com', from: 'some_loop_sender@example.com',
to: 'some_loop_recipient@example.com', to: 'some_loop_recipient@example.com',
@ -3431,15 +3426,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: "some <b>title</b>\n äöüß", title: "some <b>title</b>\n äöüß",
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created') Ticket::Article.create!(
Ticket::Article.create(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'some_sender@example.com', from: 'some_sender@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -3559,15 +3553,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
updated_by_id: 1, updated_by_id: 1,
) )
ticket1 = Ticket.create( ticket1 = Ticket.create!(
title: 'test 1', title: 'test 1',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket1, 'ticket1 created') Ticket::Article.create!(
Ticket::Article.create(
ticket_id: ticket1.id, ticket_id: ticket1.id,
from: 'sender1@example.com', from: 'sender1@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -3597,15 +3590,14 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(1, ticket1.articles.count, 'ticket1.articles verify') assert_equal(1, ticket1.articles.count, 'ticket1.articles verify')
assert_equal(%w[sender1], ticket1.tag_list) assert_equal(%w[sender1], ticket1.tag_list)
ticket2 = Ticket.create( ticket2 = Ticket.create!(
title: 'test 2', title: 'test 2',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1, updated_by_id: 1,
created_by_id: 1, created_by_id: 1,
) )
assert(ticket2, 'ticket2 created') Ticket::Article.create!(
Ticket::Article.create(
ticket_id: ticket2.id, ticket_id: ticket2.id,
from: 'sender2@example.com', from: 'sender2@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -3637,7 +3629,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
assert_equal(1, ticket2.articles.count, 'ticket2.articles verify') assert_equal(1, ticket2.articles.count, 'ticket2.articles verify')
assert_equal(%w[sender2], ticket2.tag_list) assert_equal(%w[sender2], ticket2.tag_list)
ticket3 = Ticket.create( ticket3 = Ticket.create!(
title: 'test 3', title: 'test 3',
group: Group.lookup(name: 'Users'), group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'), customer: User.lookup(email: 'nicole.braun@zammad.org'),
@ -3645,7 +3637,7 @@ class TicketTriggerTest < ActiveSupport::TestCase
created_by_id: 1, created_by_id: 1,
) )
assert(ticket3, 'ticket3 created') assert(ticket3, 'ticket3 created')
Ticket::Article.create( Ticket::Article.create!(
ticket_id: ticket3.id, ticket_id: ticket3.id,
from: 'sender0@example.com', from: 'sender0@example.com',
to: 'some_recipient@example.com', to: 'some_recipient@example.com',
@ -3677,4 +3669,240 @@ class TicketTriggerTest < ActiveSupport::TestCase
article1 = ticket3.articles.last article1 = ticket3.articles.last
end end
test 'article.body' do
trigger1 = Trigger.create_or_update(
name: 'auto reply',
condition: {
'ticket.action' => {
'operator' => 'is',
'value' => 'create',
},
'ticket.state_id' => {
'operator' => 'is',
'value' => Ticket::State.lookup(name: 'new').id.to_s,
},
'article.body' => {
'operator' => 'contains',
'value' => 'hello',
},
},
perform: {
'notification.email' => {
'body' => 'some text<br>#{ticket.customer.lastname}<br>#{ticket.title}<br>#{article.body}',
'recipient' => 'ticket_customer',
'subject' => 'Thanks for your inquiry (#{ticket.title})!',
},
'ticket.tags' => {
'operator' => 'add',
'value' => 'aa, kk',
},
},
disable_notification: true,
active: true,
created_by_id: 1,
updated_by_id: 1,
)
ticket1 = Ticket.create!(
title: 'test 1',
group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1,
created_by_id: 1,
)
Ticket::Article.create!(
ticket_id: ticket1.id,
from: 'some_sender@example.com',
to: 'some_recipient@example.com',
subject: 'some subject',
message_id: 'some@id',
body: 'some message <b>note</b> hello ',
internal: false,
sender: Ticket::Article::Sender.find_by(name: 'Agent'),
type: Ticket::Article::Type.find_by(name: 'note'),
updated_by_id: 1,
created_by_id: 1,
)
ticket1.reload
assert_equal('test 1', ticket1.title, 'ticket1.title verify')
assert_equal('Users', ticket1.group.name, 'ticket1.group verify')
assert_equal('new', ticket1.state.name, 'ticket1.state verify')
assert_equal('2 normal', ticket1.priority.name, 'ticket1.priority verify')
assert_equal(1, ticket1.articles.count, 'ticket1.articles verify')
assert_equal([], ticket1.tag_list)
Observer::Transaction.commit
ticket1.reload
assert_equal('test 1', ticket1.title, 'ticket1.title verify')
assert_equal('Users', ticket1.group.name, 'ticket1.group verify')
assert_equal('new', ticket1.state.name, 'ticket1.state verify')
assert_equal(2, ticket1.articles.count, 'ticket1.articles verify')
assert_equal(%w[aa kk], ticket1.tag_list)
article1 = ticket1.articles.last
assert_match('Zammad <zammad@localhost>', article1.from)
assert_match('nicole.braun@zammad.org', article1.to)
assert_match('Thanks for your inquiry (test 1)!', article1.subject)
assert_match('some message', article1.body)
assert_match('&gt; some message &lt;b&gt;note&lt;/b&gt; hello', article1.body)
assert_equal('text/html', article1.content_type)
ticket2 = Ticket.create!(
title: 'test 1',
group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1,
created_by_id: 1,
)
Ticket::Article.create!(
ticket_id: ticket2.id,
from: 'some_sender@example.com',
to: 'some_recipient@example.com',
subject: 'some subject',
message_id: 'some@id',
body: 'some message <b>note</b>',
internal: false,
sender: Ticket::Article::Sender.find_by(name: 'Agent'),
type: Ticket::Article::Type.find_by(name: 'note'),
updated_by_id: 1,
created_by_id: 1,
)
ticket2.reload
assert_equal('test 1', ticket2.title, 'ticket2.title verify')
assert_equal('Users', ticket2.group.name, 'ticket2.group verify')
assert_equal('new', ticket2.state.name, 'ticket2.state verify')
assert_equal('2 normal', ticket2.priority.name, 'ticket2.priority verify')
assert_equal(1, ticket2.articles.count, 'ticket2.articles verify')
assert_equal([], ticket2.tag_list)
Observer::Transaction.commit
ticket2.reload
assert_equal('test 1', ticket2.title, 'ticket2.title verify')
assert_equal('Users', ticket2.group.name, 'ticket2.group verify')
assert_equal('new', ticket2.state.name, 'ticket2.state verify')
assert_equal(1, ticket2.articles.count, 'ticket2.articles verify')
assert_equal(%w[], ticket2.tag_list)
trigger1 = Trigger.create_or_update(
name: 'auto reply',
condition: {
'ticket.action' => {
'operator' => 'is',
'value' => 'create',
},
'ticket.state_id' => {
'operator' => 'is',
'value' => Ticket::State.lookup(name: 'new').id.to_s,
},
'article.body' => {
'operator' => 'contains not',
'value' => 'hello',
},
},
perform: {
'notification.email' => {
'body' => 'some text<br>#{ticket.customer.lastname}<br>#{ticket.title}<br>#{article.body}',
'recipient' => 'ticket_customer',
'subject' => 'Thanks for your inquiry (#{ticket.title})!',
},
'ticket.tags' => {
'operator' => 'add',
'value' => 'aa, kk',
},
},
disable_notification: true,
active: true,
created_by_id: 1,
updated_by_id: 1,
)
ticket3 = Ticket.create!(
title: 'test 1',
group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1,
created_by_id: 1,
)
Ticket::Article.create!(
ticket_id: ticket3.id,
from: 'some_sender@example.com',
to: 'some_recipient@example.com',
subject: 'some subject',
message_id: 'some@id',
body: 'some message <b>note</b> hello ',
internal: false,
sender: Ticket::Article::Sender.find_by(name: 'Agent'),
type: Ticket::Article::Type.find_by(name: 'note'),
updated_by_id: 1,
created_by_id: 1,
)
ticket3.reload
assert_equal('test 1', ticket3.title, 'ticket3.title verify')
assert_equal('Users', ticket3.group.name, 'ticket3.group verify')
assert_equal('new', ticket3.state.name, 'ticket3.state verify')
assert_equal('2 normal', ticket3.priority.name, 'ticket3.priority verify')
assert_equal(1, ticket3.articles.count, 'ticket3.articles verify')
assert_equal([], ticket3.tag_list)
Observer::Transaction.commit
ticket3.reload
assert_equal('test 1', ticket3.title, 'ticket3.title verify')
assert_equal('Users', ticket3.group.name, 'ticket3.group verify')
assert_equal('new', ticket3.state.name, 'ticket3.state verify')
assert_equal(1, ticket3.articles.count, 'ticket3.articles verify')
assert_equal(%w[], ticket3.tag_list)
ticket4 = Ticket.create!(
title: 'test 1',
group: Group.lookup(name: 'Users'),
customer: User.lookup(email: 'nicole.braun@zammad.org'),
updated_by_id: 1,
created_by_id: 1,
)
Ticket::Article.create!(
ticket_id: ticket4.id,
from: 'some_sender@example.com',
to: 'some_recipient@example.com',
subject: 'some subject',
message_id: 'some@id',
body: 'some message <b>note</b> 2',
internal: false,
sender: Ticket::Article::Sender.find_by(name: 'Agent'),
type: Ticket::Article::Type.find_by(name: 'note'),
updated_by_id: 1,
created_by_id: 1,
)
ticket4.reload
assert_equal('test 1', ticket4.title, 'ticket4.title verify')
assert_equal('Users', ticket4.group.name, 'ticket4.group verify')
assert_equal('new', ticket4.state.name, 'ticket4.state verify')
assert_equal('2 normal', ticket4.priority.name, 'ticket4.priority verify')
assert_equal(1, ticket4.articles.count, 'ticket4.articles verify')
assert_equal([], ticket4.tag_list)
Observer::Transaction.commit
ticket4.reload
assert_equal('test 1', ticket4.title, 'ticket4.title verify')
assert_equal('Users', ticket4.group.name, 'ticket4.group verify')
assert_equal('new', ticket4.state.name, 'ticket4.state verify')
assert_equal(2, ticket4.articles.count, 'ticket4.articles verify')
assert_equal(%w[aa kk], ticket4.tag_list)
article4 = ticket4.articles.last
assert_match('Zammad <zammad@localhost>', article4.from)
assert_match('nicole.braun@zammad.org', article4.to)
assert_match('Thanks for your inquiry (test 1)!', article4.subject)
assert_match('some message', article4.body)
assert_match('&gt; some message &lt;b&gt;note&lt;/b&gt; 2', article4.body)
assert_equal('text/html', article4.content_type)
end
end end