##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15284:6cc6a918b4f3
r15741:f8df935dcada
Show More
sessions_controller_test.rb
138 lines | 5.1 KiB | text/x-ruby | RubyLexer
/ test / functional / sessions_controller_test.rb
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Adds our own class for controller tests....
r15279 class SessionsControllerTest < Redmine::ControllerTest
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 include Redmine::I18n
tests WelcomeController
fixtures :users, :email_addresses
def setup
Rails.application.config.redmine_verify_sessions = true
end
def teardown
Rails.application.config.redmine_verify_sessions = false
end
def test_session_token_should_be_updated
Jean-Philippe Lang
Test failure....
r14362 token = Token.create!(:user_id => 2, :action => 'session', :created_on => 10.hours.ago, :updated_on => 10.hours.ago)
created = token.reload.created_on
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_response :success
token.reload
Jean-Philippe Lang
Compare timestamps in seconds (#21058)....
r14360 assert_equal created.to_i, token.created_on.to_i
assert_not_equal created.to_i, token.updated_on.to_i
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert token.updated_on > created
end
def test_user_session_should_not_be_reset_if_lifetime_and_timeout_disabled
created = 2.years.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_lifetime => '0', :session_timeout => '0' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_response :success
end
end
def test_user_session_without_token_should_be_reset
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F'
end
def test_expired_user_session_should_be_reset_if_lifetime_enabled
created = 2.days.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_timeout => '720' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F'
end
end
def test_valid_user_session_should_not_be_reset_if_lifetime_enabled
created = 3.hours.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_timeout => '720' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_response :success
end
end
def test_expired_user_session_should_be_reset_if_timeout_enabled
created = 4.hours.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_timeout => '60' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F'
end
end
def test_valid_user_session_should_not_be_reset_if_timeout_enabled
created = 10.minutes.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_timeout => '60' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_response :success
end
end
def test_expired_user_session_should_be_restarted_if_autologin
created = 2.hours.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_lifetime => '720', :session_timeout => '60', :autologin => 7 do
autologin_token = Token.create!(:user_id => 2, :action => 'autologin', :created_on => 1.day.ago)
@request.cookies['autologin'] = autologin_token.value
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => 2, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_equal 2, session[:user_id]
assert_response :success
assert_not_equal token.value, session[:tk]
end
end
def test_expired_user_session_should_set_locale
set_language_if_valid 'it'
user = User.find(2)
user.language = 'fr'
user.save!
created = 4.hours.ago
token = Token.create!(:user_id => 2, :action => 'session', :created_on => created, :updated_on => created)
with_settings :session_timeout => '60' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :session => {:user_id => user.id, :tk => token.value}
Jean-Philippe Lang
Keep track of valid user sessions (#21058)....
r14353 assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F'
assert_include "Veuillez vous reconnecter", flash[:error]
assert_equal :fr, current_language
end
end
def test_anonymous_session_should_not_be_reset
with_settings :session_lifetime => '720', :session_timeout => '60' do
get :index
assert_response :success
end
end
end