trabajo-afectivo/test/unit/session_basic_test.rb

280 lines
8.4 KiB
Ruby
Raw Normal View History

2014-07-13 18:52:32 +00:00
# encoding: utf-8
require 'test_helper'
class SessionBasicTest < ActiveSupport::TestCase
user = User.lookup(id: 1)
roles = Role.where(name: %w(Agent Admin))
user.roles = roles
user.save
2014-07-13 18:52:32 +00:00
test 'a cache' do
2016-05-21 16:19:34 +00:00
Sessions::CacheIn.set('last_run_test', true, { expires_in: 1.second })
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.get('last_run_test')
assert_equal(true, result, 'check 1')
2014-07-13 18:52:32 +00:00
# should not be expired
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.expired('last_run_test')
assert_equal(false, result, 'check 1 - expired')
2014-07-13 18:52:32 +00:00
# should be expired
2016-05-21 16:19:34 +00:00
sleep 2
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.expired('last_run_test')
assert_equal(true, result, 'check 1 - expired')
2014-07-13 18:52:32 +00:00
# renew expire
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.get('last_run_test', re_expire: true)
assert_equal(true, result, 'check 1 - re_expire')
2014-07-13 18:52:32 +00:00
# should not be expired
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.expired('last_run_test')
assert_equal(false, result, 'check 1 - expired')
2014-07-13 18:52:32 +00:00
# ignore expired
2016-05-21 16:19:34 +00:00
sleep 2
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.get('last_run_test', ignore_expire: true)
assert_equal(true, result, 'check 1 - ignore_expire')
2014-07-13 18:52:32 +00:00
# should be expired
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.expired('last_run_test')
assert_equal(true, result, 'check 2')
2014-07-13 18:52:32 +00:00
2016-03-03 08:56:13 +00:00
result = Sessions::CacheIn.get('last_run_test')
assert_equal(nil, result, 'check 2')
2014-07-13 18:52:32 +00:00
# check delete cache
2016-03-03 08:56:13 +00:00
Sessions::CacheIn.set('last_run_delete', true, { expires_in: 5.seconds })
result = Sessions::CacheIn.get('last_run_delete')
assert_equal(true, result, 'check 1')
Sessions::CacheIn.delete('last_run_delete')
result = Sessions::CacheIn.get('last_run_delete')
assert_equal(nil, nil, 'check delete')
2014-07-13 18:52:32 +00:00
end
2015-05-03 12:11:47 +00:00
test 'c session create / update' do
# create users
2016-03-03 08:56:13 +00:00
roles = Role.where(name: ['Agent'])
2015-05-03 12:11:47 +00:00
groups = Group.all
UserInfo.current_user_id = 1
agent1 = User.create_or_update(
login: 'session-agent-1',
firstname: 'Session',
lastname: 'Agent 1',
email: 'session-agent1@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
)
agent1.roles = roles
agent1.save
# 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')
assert_equal(data[:user]['id'], nil, '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
Sessions.destory(client_id1)
# 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
end
test 'c collections group' do
2014-07-13 18:52:32 +00:00
require 'sessions/backend/collections/group.rb'
2014-11-10 19:14:48 +00:00
UserInfo.current_user_id = 2
user = User.lookup(id: 1)
2016-05-21 16:19:34 +00:00
collection_client1 = Sessions::Backend::Collections::Group.new(user, {}, false, '123-1', 2)
collection_client2 = Sessions::Backend::Collections::Group.new(user, {}, false, '234-2', 2)
2014-07-13 18:52:32 +00:00
# get whole collections
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1.empty?, 'check collections')
2015-02-25 22:35:00 +00:00
sleep 0.6
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2.empty?, 'check collections')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# next check should be empty
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check collections - recall')
2014-07-13 18:52:32 +00:00
sleep 1
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2, 'check collections - recall')
2014-07-13 18:52:32 +00:00
# change collection
group = Group.first
group.touch
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
# get whole collections
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1.empty?, 'check collections - after touch')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2.empty?, 'check collections - after touch')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# check again after touch
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check collections - after touch - recall')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2, 'check collections - after touch - recall')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# change collection
2016-03-03 08:56:13 +00:00
group = Group.create(name: 'SomeGroup::' + rand(999_999).to_s, active: true)
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
# get whole collections
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1.empty?, 'check collections - after create')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2.empty?, 'check collections - after create')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# check again after create
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check collections - after create - recall')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2, 'check collections - after create - recall')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# change collection
group.destroy
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
# get whole collections
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1.empty?, 'check collections - after destroy')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2.empty?, 'check collections - after destroy')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
# check again after destroy
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
result1 = collection_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check collections - after destroy - recall')
2014-07-13 18:52:32 +00:00
result2 = collection_client2.push
2016-03-03 08:56:13 +00:00
assert(!result2, 'check collections - after destroy - recall')
assert_equal(result1, result2, 'check collections')
2014-07-13 18:52:32 +00:00
end
2015-05-03 12:11:47 +00:00
test 'c rss' do
user = User.lookup(id: 1)
2016-03-03 08:56:13 +00:00
collection_client1 = Sessions::Backend::Rss.new(user, {}, false, '123-1')
2014-07-13 18:52:32 +00:00
# get whole collections
result1 = collection_client1.push
#puts "RSS1: #{result1.inspect}"
2016-03-03 08:56:13 +00:00
assert(!result1.empty?, 'check rss')
2016-05-21 16:19:34 +00:00
sleep 0.5
2014-07-13 18:52:32 +00:00
# next check should be empty
result1 = collection_client1.push
#puts "R1: #{result1.inspect}"
2016-03-03 08:56:13 +00:00
assert(!result1, 'check rss - recall')
2014-07-13 18:52:32 +00:00
end
2015-05-03 12:11:47 +00:00
test 'c activity stream' do
2014-07-13 18:52:32 +00:00
# create users
2016-03-03 08:56:13 +00:00
roles = Role.where(name: %w(Agent Admin))
2014-07-13 18:52:32 +00:00
groups = Group.all
2014-11-10 19:14:48 +00:00
UserInfo.current_user_id = 2
2014-07-13 18:52:32 +00:00
agent1 = User.create_or_update(
login: 'activity-stream-agent-1',
firstname: 'Session',
lastname: "activity stream #{rand(99_999)}",
email: 'activity-stream-agent1@example.com',
password: 'agentpw',
active: true,
roles: roles,
groups: groups,
2014-07-13 18:52:32 +00:00
)
agent1.roles = roles
2016-03-03 08:56:13 +00:00
assert(agent1.save, 'create/update agent1')
2014-07-13 18:52:32 +00:00
2016-05-21 16:19:34 +00:00
as_client1 = Sessions::Backend::ActivityStream.new(agent1, {}, false, '123-1', 2)
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')
2014-07-13 18:52:32 +00:00
sleep 1
# next check should be empty
result1 = as_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check as agent1 - recall')
2014-07-13 18:52:32 +00:00
# next check should be empty
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
result1 = as_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check as agent1 - recall 2')
2014-07-13 18:52:32 +00:00
2016-03-03 08:56:13 +00:00
agent1.update_attribute(:email, 'activity-stream-agent11@example.com')
ticket = Ticket.create(title: '12323', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
2014-07-13 18:52:32 +00:00
2016-05-21 16:19:34 +00:00
sleep 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 - recall 3')
2014-07-13 18:52:32 +00:00
end
2015-05-03 12:11:47 +00:00
test 'c ticket_create' do
2014-07-13 18:52:32 +00:00
2014-11-10 19:14:48 +00:00
UserInfo.current_user_id = 2
user = User.lookup(id: 1)
2016-05-21 16:19:34 +00:00
ticket_create_client1 = Sessions::Backend::TicketCreate.new(user, {}, false, '123-1', 2)
2014-07-13 18:52:32 +00:00
# get as stream
result1 = ticket_create_client1.push
2016-03-03 08:56:13 +00:00
assert(result1, 'check ticket_create')
2015-02-25 22:35:00 +00:00
sleep 0.6
2014-07-13 18:52:32 +00:00
# next check should be empty
result1 = ticket_create_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check ticket_create - recall')
2014-07-13 18:52:32 +00:00
# next check should be empty
2015-02-25 22:35:00 +00:00
sleep 0.6
2014-07-13 18:52:32 +00:00
result1 = ticket_create_client1.push
2016-03-03 08:56:13 +00:00
assert(!result1, 'check ticket_create - recall 2')
2014-07-13 18:52:32 +00:00
2016-03-03 08:56:13 +00:00
Group.create(name: 'SomeTicketCreateGroup::' + rand(999_999).to_s, active: true)
2014-07-13 18:52:32 +00:00
2016-05-21 16:19:34 +00:00
sleep 3
2014-07-13 18:52:32 +00:00
# get as stream
result1 = ticket_create_client1.push
2016-03-03 08:56:13 +00:00
assert(result1, 'check ticket_create - recall 3')
2014-07-13 18:52:32 +00:00
end
end