Added full cycle test.

This commit is contained in:
Martin Edenhofer 2015-10-08 13:25:45 +02:00
parent 2d6515a59f
commit 06ef7cd785

View file

@ -16,14 +16,9 @@ class EmailSignaturDetectionTest < ActiveSupport::TestCase
fixture_files.keys.each do |filepath|
file_content = ''
file = File.new("#{Rails.root}/test/fixtures/#{filepath}", 'r')
while (line = file.gets)
file_content += line
end
file.close
file_content = file.read
fixture_files[filepath][:content] = file_content
fixture_files_string_list.push(file_content)
end
@ -51,14 +46,9 @@ class EmailSignaturDetectionTest < ActiveSupport::TestCase
fixture_files.keys.each do |filepath|
file_content = ''
file = File.new("#{Rails.root}/test/fixtures/#{filepath}", 'r')
while (line = file.gets)
file_content += line
end
file.close
file_content = file.read
fixture_files[filepath][:content] = file_content
fixture_files_string_list.push(file_content)
end
@ -74,4 +64,52 @@ class EmailSignaturDetectionTest < ActiveSupport::TestCase
end
end
test 'test case III - sender a - full cycle' do
raw_email_header = "From: Bob.Smith@music.com\nTo: test@zammad.org\nSubject: test\n\n"
# process email I
file = File.open("#{Rails.root}/test/fixtures/email_signature_detection/client_a_1.txt", 'rb')
raw_email = raw_email_header + file.read
ticket1, article1, user1, mail = Channel::EmailParser.new.process({}, raw_email)
assert(ticket1)
assert(article1)
# process email II
file = File.open("#{Rails.root}/test/fixtures/email_signature_detection/client_a_2.txt", 'rb')
raw_email = raw_email_header + file.read
ticket2, article2, user2, mail = Channel::EmailParser.new.process({}, raw_email)
assert(ticket2)
assert(article2)
# process background jobs (user signature detection & article signature detection)
Delayed::Worker.new.work_off
# check if user2 has a signature_detection value
user2 = User.find(user2.id)
assert(user2.preferences[:signature_detection])
# process email III
file = File.open("#{Rails.root}/test/fixtures/email_signature_detection/client_a_3.txt", 'rb')
raw_email = raw_email_header + file.read
ticket3, article3, user3, mail = Channel::EmailParser.new.process({}, raw_email)
assert(ticket3)
assert(article3)
# check if article3 has a signature_detection value
assert_equal(article3.preferences[:signature_detection], 6)
# relbuild all
SignatureDetection.rebuild_all_articles
article1 = Ticket::Article.find(article1.id)
assert_equal(article1.preferences[:signature_detection], 10)
article2 = Ticket::Article.find(article2.id)
assert_equal(article2.preferences[:signature_detection], 20)
article3 = Ticket::Article.find(article3.id)
assert_equal(article3.preferences[:signature_detection], 6)
end
end