trabajo-afectivo/test/unit/notification_factory_mailer_test.rb

267 lines
9.7 KiB
Ruby
Raw Normal View History

# encoding: utf-8
require 'test_helper'
2014-05-27 13:22:21 +00:00
2016-04-13 23:40:37 +00:00
class NotificationFactoryMailerTest < ActiveSupport::TestCase
2016-01-18 01:35:07 +00:00
2015-01-07 12:11:30 +00:00
test 'notifications send' do
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.send(
recipient: User.find(2),
subject: 'sime subject',
body: 'some body',
content_type: '',
2015-01-07 12:11:30 +00:00
)
assert_match('some body', result.to_s)
assert_match('text/plain', result.to_s)
assert_no_match('text/html', result.to_s)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.send(
recipient: User.find(2),
subject: 'sime subject',
body: 'some body',
content_type: 'text/plain',
2015-01-07 12:11:30 +00:00
)
assert_match('some body', result.to_s)
assert_match('text/plain', result.to_s)
assert_no_match('text/html', result.to_s)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.send(
recipient: User.find(2),
subject: 'sime subject',
body: 'some <span>body</span>',
content_type: 'text/html',
2015-01-07 12:11:30 +00:00
)
assert_match('some body', result.to_s)
assert_match('text/plain', result.to_s)
assert_match('<span>body</span>', result.to_s)
assert_match('text/html', result.to_s)
end
test 'notifications settings' do
groups = Group.all
roles = Role.where(name: 'Agent')
agent1 = User.create_or_update(
login: 'notification-settings-agent1@example.com',
firstname: 'Notification<b>xxx</b>',
lastname: 'Agent1',
email: 'notification-settings-agent1@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
updated_by_id: 1,
created_by_id: 1,
)
agent2 = User.create_or_update(
login: 'notification-settings-agent2@example.com',
firstname: 'Notification<b>xxx</b>',
lastname: 'Agent2',
email: 'notification-settings-agent2@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
updated_by_id: 1,
created_by_id: 1,
)
group_notification_setting = Group.create_or_update(
name: 'NotificationSetting',
updated_by_id: 1,
created_by_id: 1,
)
ticket1 = Ticket.create(
group_id: Group.lookup(name: 'Users').id,
customer_id: User.lookup(email: 'nicole.braun@zammad.org').id,
owner_id: User.lookup(login: '-').id,
title: 'Notification Settings Test 1!',
state_id: Ticket::State.lookup(name: 'new').id,
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
updated_by_id: 1,
created_by_id: 1,
)
ticket2 = Ticket.create(
group_id: Group.lookup(name: 'Users').id,
customer_id: User.lookup(email: 'nicole.braun@zammad.org').id,
owner_id: agent1.id,
title: 'Notification Settings Test 2!',
state_id: Ticket::State.lookup(name: 'new').id,
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
updated_by_id: 1,
created_by_id: 1,
)
ticket3 = Ticket.create(
group_id: group_notification_setting.id,
customer_id: User.lookup(email: 'nicole.braun@zammad.org').id,
owner_id: User.lookup(login: '-').id,
title: 'Notification Settings Test 1!',
state_id: Ticket::State.lookup(name: 'new').id,
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
updated_by_id: 1,
created_by_id: 1,
)
ticket4 = Ticket.create(
group_id: group_notification_setting.id,
customer_id: User.lookup(email: 'nicole.braun@zammad.org').id,
owner_id: agent1.id,
title: 'Notification Settings Test 2!',
state_id: Ticket::State.lookup(name: 'new').id,
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
updated_by_id: 1,
created_by_id: 1,
)
agent1.preferences[:notification_config][:group_ids] = nil
agent1.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket2, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket4, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
agent2.preferences[:notification_config][:group_ids] = nil
agent2.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket2, 'create')
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket4, 'create')
assert_equal(nil, result)
# no group selection
agent1.preferences[:notification_config][:group_ids] = []
agent1.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket2, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket4, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
agent2.preferences[:notification_config][:group_ids] = []
agent2.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket2, 'create')
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket4, 'create')
assert_equal(nil, result)
agent1.preferences[:notification_config][:group_ids] = ['-']
agent1.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket2, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket4, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
agent2.preferences[:notification_config][:group_ids] = ['-']
agent2.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket2, 'create')
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket3, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket4, 'create')
assert_equal(nil, result)
# dedecated group selection
agent1.preferences[:notification_config][:group_ids] = [Group.lookup(name: 'Users').id]
agent1.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket2, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket3, 'create')
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent1, ticket4, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
agent2.preferences[:notification_config][:group_ids] = [Group.lookup(name: 'Users').id]
agent2.save
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket1, 'create')
assert_equal(true, result[:channels][:online])
assert_equal(true, result[:channels][:email])
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket2, 'create')
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket3, 'create')
assert_equal(nil, result)
assert_equal(nil, result)
2016-04-13 23:40:37 +00:00
result = NotificationFactory::Mailer.notification_settings(agent2, ticket4, 'create')
assert_equal(nil, result)
end
end