From 939e268151fdec7d7113e7392d7443f1f1f3c9c3 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Fri, 24 Feb 2017 14:27:48 +0100 Subject: [PATCH] Enhanced tests with different ticket hooks. --- test/unit/email_process_follow_up_test.rb | 76 +++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/test/unit/email_process_follow_up_test.rb b/test/unit/email_process_follow_up_test.rb index b324a5545..f71655371 100644 --- a/test/unit/email_process_follow_up_test.rb +++ b/test/unit/email_process_follow_up_test.rb @@ -32,6 +32,12 @@ class EmailProcessFollowUpTest < ActiveSupport::TestCase To: customer@example.com Subject: #{ticket.subject_build('some new subject')} +Some Text" + + email_raw_string_other_subject = "From: me@example.com +To: customer@example.com +Subject: other subject #{Setting.get('ticket_hook')}#{ticket.number} + Some Text" email_raw_string_body = "From: me@example.com @@ -88,6 +94,10 @@ no reference " ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_subject) assert_equal(ticket.id, ticket_p.id) + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_other_subject) + assert_equal(ticket.id, ticket_p.id) + travel 1.second ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_body) assert_equal(ticket.id, ticket_p.id) @@ -110,6 +120,10 @@ no reference " ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_subject) assert_equal(ticket.id, ticket_p.id) + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_other_subject) + assert_equal(ticket.id, ticket_p.id) + travel 1.second ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_body) assert_not_equal(ticket.id, ticket_p.id) @@ -132,6 +146,10 @@ no reference " ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_subject) assert_equal(ticket.id, ticket_p.id) + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_other_subject) + assert_equal(ticket.id, ticket_p.id) + travel 1.second ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_body) assert_not_equal(ticket.id, ticket_p.id) @@ -154,6 +172,10 @@ no reference " ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_subject) assert_equal(ticket.id, ticket_p.id) + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_other_subject) + assert_equal(ticket.id, ticket_p.id) + travel 1.second ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_body) assert_not_equal(ticket.id, ticket_p.id) @@ -172,6 +194,60 @@ no reference " travel_back end + test 'process with follow up check with different ticket hook' do + + setting_orig = Setting.get('ticket_hook') + Setting.set('ticket_hook', 'VD-Ticket#') + + ticket = Ticket.create( + title: 'follow up check ticket hook', + group: Group.lookup(name: 'Users'), + customer_id: 2, + state: Ticket::State.lookup(name: 'new'), + priority: Ticket::Priority.lookup(name: '2 normal'), + updated_by_id: 1, + created_by_id: 1, + ) + article = Ticket::Article.create( + ticket_id: ticket.id, + from: 'some_sender@example.com', + to: 'some_recipient@example.com', + subject: 'follow up check', + message_id: '<20150830145601.30.608882.123123@edenhofer.zammad.com>', + body: 'some message article', + internal: false, + sender: Ticket::Article::Sender.lookup(name: 'Agent'), + type: Ticket::Article::Type.lookup(name: 'email'), + updated_by_id: 1, + created_by_id: 1, + ) + + email_raw_string_subject = "From: me@example.com +To: customer@example.com +Subject: #{ticket.subject_build('some new subject')} + +Some Text" + + email_raw_string_other_subject = "From: me@example.com +To: customer@example.com +Subject: Aw: RE: other subject [#{Setting.get('ticket_hook')}#{ticket.number}] + +Some Text" + + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_subject) + assert_equal(ticket.id, ticket_p.id) + + travel 1.second + ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, email_raw_string_other_subject) + assert_equal(ticket.id, ticket_p.id) + + travel_back + + Setting.set('ticket_hook', setting_orig) + + end + test 'process with follow up check with two external reference headers' do setting_orig = Setting.get('postmaster_follow_up_search_in')