2022-01-01 13:38:12 +00:00
|
|
|
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
2021-06-01 12:20:20 +00:00
|
|
|
|
2014-07-13 18:52:32 +00:00
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class SessionBasicTest < ActiveSupport::TestCase
|
2016-05-17 07:37:25 +00:00
|
|
|
|
2015-05-03 12:11:47 +00:00
|
|
|
test 'c session create / update' do
|
|
|
|
|
|
|
|
# create users
|
2017-11-23 08:09:44 +00:00
|
|
|
roles = Role.where(name: %w[Agent])
|
2015-05-03 12:11:47 +00:00
|
|
|
groups = Group.all
|
|
|
|
|
|
|
|
agent1 = User.create_or_update(
|
2018-12-19 17:31:51 +00:00
|
|
|
login: 'session-agent-1',
|
|
|
|
firstname: 'Session',
|
|
|
|
lastname: 'Agent 1',
|
|
|
|
email: 'session-agent1@example.com',
|
|
|
|
password: 'agentpw',
|
|
|
|
active: true,
|
|
|
|
roles: roles,
|
|
|
|
groups: groups,
|
2017-06-16 22:53:20 +00:00
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
2015-05-03 12:11:47 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
# create sessions
|
|
|
|
client_id1 = '123456789'
|
2016-03-03 08:56:13 +00:00
|
|
|
Sessions.create(client_id1, {}, { type: 'websocket' })
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# check if session exists
|
2016-03-03 08:56:13 +00:00
|
|
|
assert(Sessions.session_exists?(client_id1), 'check if session exists')
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# check session data
|
|
|
|
data = Sessions.get(client_id1)
|
2016-03-03 08:56:13 +00:00
|
|
|
assert(data[:meta], 'check if meta exists')
|
|
|
|
assert(data[:user], 'check if user exists')
|
2017-03-24 10:02:13 +00:00
|
|
|
assert_nil(data[:user]['id'], 'check if user id is correct')
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# recreate session
|
2016-03-03 08:56:13 +00:00
|
|
|
Sessions.create(client_id1, agent1.attributes, { type: 'websocket' })
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# check if session exists
|
2016-03-03 08:56:13 +00:00
|
|
|
assert(Sessions.session_exists?(client_id1), 'check if session exists')
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# check session data
|
|
|
|
data = Sessions.get(client_id1)
|
2016-03-03 08:56:13 +00:00
|
|
|
assert(data[:meta], 'check if meta exists')
|
|
|
|
assert(data[:user], 'check if user exists')
|
|
|
|
assert_equal(data[:user]['id'], agent1.id, 'check if user id is correct')
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# destroy session
|
2016-11-30 10:30:03 +00:00
|
|
|
Sessions.destroy(client_id1)
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
# check if session exists
|
2018-10-09 06:17:41 +00:00
|
|
|
assert_not(Sessions.session_exists?(client_id1), 'check if session exists')
|
2015-05-03 12:11:47 +00:00
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'c activity stream' do
|
2014-07-13 18:52:32 +00:00
|
|
|
|
|
|
|
# create users
|
2017-11-23 08:09:44 +00:00
|
|
|
roles = Role.where(name: %w[Agent Admin])
|
2014-07-13 18:52:32 +00:00
|
|
|
groups = Group.all
|
|
|
|
|
|
|
|
agent1 = User.create_or_update(
|
2018-12-19 17:31:51 +00:00
|
|
|
login: 'activity-stream-agent-1',
|
|
|
|
firstname: 'Session',
|
2021-09-20 10:47:05 +00:00
|
|
|
lastname: "activity stream #{SecureRandom.uuid}",
|
2018-12-19 17:31:51 +00:00
|
|
|
email: 'activity-stream-agent1@example.com',
|
|
|
|
password: 'agentpw',
|
|
|
|
active: true,
|
|
|
|
roles: roles,
|
|
|
|
groups: groups,
|
2017-06-16 22:53:20 +00:00
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
2014-07-13 18:52:32 +00:00
|
|
|
)
|
|
|
|
|
2016-12-08 14:06:54 +00:00
|
|
|
# create min. on activity record
|
2021-09-20 10:47:05 +00:00
|
|
|
random_name = "Random:#{SecureRandom.uuid}"
|
2016-12-08 14:06:54 +00:00
|
|
|
Group.create_or_update(
|
2018-12-19 17:31:51 +00:00
|
|
|
name: random_name,
|
2016-12-08 14:06:54 +00:00
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
|
|
|
|
2016-09-08 06:44:40 +00:00
|
|
|
as_client1 = Sessions::Backend::ActivityStream.new(agent1, {}, false, '123-1', 3)
|
2014-07-13 18:52:32 +00:00
|
|
|
|
|
|
|
# get as stream
|
|
|
|
result1 = as_client1.push
|
2016-03-03 08:56:13 +00:00
|
|
|
assert(result1, 'check as agent1')
|
2016-12-07 07:15:56 +00:00
|
|
|
travel 1.second
|
2014-07-13 18:52:32 +00:00
|
|
|
|
|
|
|
# next check should be empty
|
|
|
|
result1 = as_client1.push
|
2018-10-09 06:17:41 +00:00
|
|
|
assert_not(result1, 'check as agent1 - recall')
|
2014-07-13 18:52:32 +00:00
|
|
|
|
|
|
|
# next check should be empty
|
2016-12-07 07:15:56 +00:00
|
|
|
travel 4.seconds
|
2014-07-13 18:52:32 +00:00
|
|
|
result1 = as_client1.push
|
2018-10-09 06:17:41 +00:00
|
|
|
assert_not(result1, 'check as agent1 - recall 2')
|
2014-07-13 18:52:32 +00:00
|
|
|
|
2017-09-11 11:16:08 +00:00
|
|
|
agent1.update!(email: 'activity-stream-agent11@example.com')
|
2019-06-28 11:38:49 +00:00
|
|
|
Ticket.create!(
|
2018-12-19 17:31:51 +00:00
|
|
|
title: '12323',
|
|
|
|
group_id: 1,
|
|
|
|
priority_id: 1,
|
|
|
|
state_id: 1,
|
|
|
|
customer_id: 1,
|
2017-06-16 22:53:20 +00:00
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
|
|
|
)
|
2014-07-13 18:52:32 +00:00
|
|
|
|
2016-12-07 07:15:56 +00:00
|
|
|
travel 4.seconds
|
2014-07-13 18:52:32 +00:00
|
|
|
|
|
|
|
# get as stream
|
|
|
|
result1 = as_client1.push
|
2021-07-16 13:38:01 +00:00
|
|
|
assert(result1, 'check as agent1 - recall 3')
|
2016-12-08 14:06:54 +00:00
|
|
|
travel_back
|
2014-07-13 18:52:32 +00:00
|
|
|
end
|
|
|
|
|
2015-04-27 14:15:29 +00:00
|
|
|
end
|