2013-09-28 00:07:11 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class ActivityStreamTest < ActiveSupport::TestCase
|
2017-06-14 15:25:45 +00:00
|
|
|
|
|
|
|
setup do
|
2016-12-08 14:06:54 +00:00
|
|
|
roles = Role.where(name: %w(Admin Agent))
|
2017-06-14 15:25:45 +00:00
|
|
|
groups = Group.where(name: 'Users')
|
|
|
|
@admin_user = User.create_or_update(
|
2016-06-20 08:55:45 +00:00
|
|
|
login: 'admin',
|
|
|
|
firstname: 'Bob',
|
|
|
|
lastname: 'Smith',
|
|
|
|
email: 'bob@example.com',
|
|
|
|
password: 'some_pass',
|
|
|
|
active: true,
|
2016-12-08 14:06:54 +00:00
|
|
|
roles: roles,
|
2017-06-14 15:25:45 +00:00
|
|
|
groups: groups,
|
2016-06-20 08:55:45 +00:00
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1
|
|
|
|
)
|
2017-06-14 15:25:45 +00:00
|
|
|
@current_user = User.lookup(email: 'nicole.braun@zammad.org')
|
|
|
|
ActivityStream.delete_all
|
2016-06-20 08:55:45 +00:00
|
|
|
end
|
2016-04-13 07:30:44 +00:00
|
|
|
|
2013-09-28 00:07:11 +00:00
|
|
|
test 'ticket+user' do
|
2016-12-08 14:06:54 +00:00
|
|
|
ticket = Ticket.create(
|
|
|
|
group_id: Group.lookup(name: 'Users').id,
|
2017-06-14 15:25:45 +00:00
|
|
|
customer_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
owner_id: User.lookup(login: '-').id,
|
|
|
|
title: 'Unit Test 1 (äöüß)!',
|
|
|
|
state_id: Ticket::State.lookup(name: 'new').id,
|
|
|
|
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
|
2017-06-14 15:25:45 +00:00
|
|
|
updated_by_id: @current_user.id,
|
|
|
|
created_by_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
)
|
|
|
|
travel 2.seconds
|
|
|
|
|
|
|
|
article = Ticket::Article.create(
|
|
|
|
ticket_id: ticket.id,
|
2017-06-14 15:25:45 +00:00
|
|
|
updated_by_id: @current_user.id,
|
|
|
|
created_by_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
type_id: Ticket::Article::Type.lookup(name: 'phone').id,
|
|
|
|
sender_id: Ticket::Article::Sender.lookup(name: 'Customer').id,
|
|
|
|
from: 'Unit Test <unittest@example.com>',
|
|
|
|
body: 'Unit Test 123',
|
|
|
|
internal: false,
|
|
|
|
)
|
2014-06-26 22:42:27 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
travel 100.seconds
|
|
|
|
ticket.update_attributes(
|
|
|
|
title: 'Unit Test 1 (äöüß) - update!',
|
|
|
|
state_id: Ticket::State.lookup(name: 'open').id,
|
|
|
|
priority_id: Ticket::Priority.lookup(name: '1 low').id,
|
|
|
|
)
|
|
|
|
updated_at = ticket.updated_at
|
2013-09-28 00:07:11 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
travel 1.second
|
|
|
|
ticket.update_attributes(
|
|
|
|
title: 'Unit Test 2 (äöüß) - update!',
|
|
|
|
priority_id: Ticket::Priority.lookup(name: '2 normal').id,
|
|
|
|
)
|
2013-09-28 00:07:11 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
# check activity_stream
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @admin_user.activity_stream(4)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[0]['group_id'], ticket.group_id)
|
|
|
|
assert_equal(stream[0]['o_id'], ticket.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[0]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
|
|
|
|
assert_equal(stream[0]['object'], 'Ticket')
|
|
|
|
assert_equal(stream[0]['type'], 'update')
|
|
|
|
assert_equal(stream[1]['group_id'], ticket.group_id)
|
|
|
|
assert_equal(stream[1]['o_id'], article.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[1]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[1]['created_at'].to_s, article.created_at.to_s)
|
|
|
|
assert_equal(stream[1]['object'], 'Ticket::Article')
|
|
|
|
assert_equal(stream[1]['type'], 'create')
|
|
|
|
assert_equal(stream[2]['group_id'], ticket.group_id)
|
|
|
|
assert_equal(stream[2]['o_id'], ticket.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[2]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[2]['created_at'].to_s, ticket.created_at.to_s)
|
|
|
|
assert_equal(stream[2]['object'], 'Ticket')
|
|
|
|
assert_equal(stream[2]['type'], 'create')
|
|
|
|
assert_not(stream[3])
|
|
|
|
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @current_user.activity_stream(4)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert(stream.empty?)
|
|
|
|
|
|
|
|
# cleanup
|
|
|
|
ticket.destroy
|
|
|
|
travel_back
|
2013-09-28 00:07:11 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
test 'organization' do
|
2016-12-08 14:06:54 +00:00
|
|
|
organization = Organization.create(
|
|
|
|
name: 'some name',
|
2017-06-14 15:25:45 +00:00
|
|
|
updated_by_id: @current_user.id,
|
|
|
|
created_by_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
)
|
|
|
|
travel 100.seconds
|
|
|
|
assert_equal(organization.class, Organization)
|
|
|
|
|
|
|
|
organization.update_attributes(name: 'some name (äöüß)')
|
|
|
|
updated_at = organization.updated_at
|
|
|
|
|
|
|
|
travel 10.seconds
|
|
|
|
organization.update_attributes(name: 'some name 2 (äöüß)')
|
|
|
|
|
|
|
|
# check activity_stream
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @admin_user.activity_stream(3)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_not(stream[0]['group_id'])
|
|
|
|
assert_equal(stream[0]['o_id'], organization.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[0]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
|
|
|
|
assert_equal(stream[0]['object'], 'Organization')
|
|
|
|
assert_equal(stream[0]['type'], 'update')
|
|
|
|
assert_not(stream[1]['group_id'])
|
|
|
|
assert_equal(stream[1]['o_id'], organization.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[1]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[1]['created_at'].to_s, organization.created_at.to_s)
|
|
|
|
assert_equal(stream[1]['object'], 'Organization')
|
|
|
|
assert_equal(stream[1]['type'], 'create')
|
|
|
|
assert_not(stream[2])
|
|
|
|
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @current_user.activity_stream(4)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert(stream.empty?)
|
|
|
|
|
|
|
|
# cleanup
|
|
|
|
organization.destroy
|
|
|
|
travel_back
|
2013-09-28 00:07:11 +00:00
|
|
|
end
|
|
|
|
|
2013-10-05 12:56:03 +00:00
|
|
|
test 'user with update check false' do
|
2016-12-08 14:06:54 +00:00
|
|
|
user = User.create(
|
|
|
|
login: 'someemail@example.com',
|
|
|
|
email: 'someemail@example.com',
|
|
|
|
firstname: 'Bob Smith II',
|
2017-06-14 15:25:45 +00:00
|
|
|
updated_by_id: @current_user.id,
|
|
|
|
created_by_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
)
|
|
|
|
assert_equal(user.class, User)
|
|
|
|
user.update_attributes(
|
|
|
|
firstname: 'Bob U',
|
|
|
|
lastname: 'Smith U',
|
|
|
|
)
|
2013-10-05 12:56:03 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
# check activity_stream
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @admin_user.activity_stream(3)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_not(stream[0]['group_id'])
|
|
|
|
assert_equal(stream[0]['o_id'], user.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[0]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[0]['created_at'].to_s, user.created_at.to_s)
|
|
|
|
assert_equal(stream[0]['object'], 'User')
|
|
|
|
assert_equal(stream[0]['type'], 'create')
|
|
|
|
assert_not(stream[1])
|
|
|
|
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @current_user.activity_stream(4)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert(stream.empty?)
|
|
|
|
|
|
|
|
# cleanup
|
|
|
|
user.destroy
|
|
|
|
travel_back
|
2013-10-05 12:56:03 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
test 'user with update check true' do
|
2016-12-08 14:06:54 +00:00
|
|
|
user = User.create(
|
|
|
|
login: 'someemail@example.com',
|
|
|
|
email: 'someemail@example.com',
|
|
|
|
firstname: 'Bob Smith II',
|
2017-06-14 15:25:45 +00:00
|
|
|
updated_by_id: @current_user.id,
|
|
|
|
created_by_id: @current_user.id,
|
2016-12-08 14:06:54 +00:00
|
|
|
)
|
|
|
|
travel 100.seconds
|
|
|
|
assert_equal(user.class, User)
|
2013-10-05 12:56:03 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
user.update_attributes(
|
|
|
|
firstname: 'Bob U',
|
|
|
|
lastname: 'Smith U',
|
|
|
|
)
|
|
|
|
updated_at = user.updated_at
|
2013-10-05 12:56:03 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
travel 10.seconds
|
|
|
|
user.update_attributes(
|
|
|
|
firstname: 'Bob',
|
|
|
|
lastname: 'Smith',
|
|
|
|
)
|
2014-06-26 22:42:27 +00:00
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
# check activity_stream
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @admin_user.activity_stream(3)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_not(stream[0]['group_id'])
|
|
|
|
assert_equal(stream[0]['o_id'], user.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[0]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[0]['created_at'].to_s, updated_at.to_s)
|
|
|
|
assert_equal(stream[0]['object'], 'User')
|
|
|
|
assert_equal(stream[0]['type'], 'update')
|
|
|
|
assert_not(stream[1]['group_id'])
|
|
|
|
assert_equal(stream[1]['o_id'], user.id)
|
2017-06-14 15:25:45 +00:00
|
|
|
assert_equal(stream[1]['created_by_id'], @current_user.id)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert_equal(stream[1]['created_at'].to_s, user.created_at.to_s)
|
|
|
|
assert_equal(stream[1]['object'], 'User')
|
|
|
|
assert_equal(stream[1]['type'], 'create')
|
|
|
|
assert_not(stream[2])
|
|
|
|
|
2017-06-14 15:25:45 +00:00
|
|
|
stream = @current_user.activity_stream(4)
|
2016-12-08 14:06:54 +00:00
|
|
|
assert(stream.empty?)
|
|
|
|
|
|
|
|
# cleanup
|
|
|
|
user.destroy
|
|
|
|
travel_back
|
2013-09-28 00:07:11 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|