From 8adb320978290991bc3d75864a5dc3476be9b81b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 13 Feb 2008 20:47:27 +0000 Subject: [PATCH] Fixed a bug in localization introduced by r1131 (anonymous users inherit the language of the first anonymous user). git-svn-id: http://redmine.rubyforge.org/svn/trunk@1144 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/application.rb | 1 + test/integration/application_test.rb | 43 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 test/integration/application_test.rb diff --git a/app/controllers/application.rb b/app/controllers/application.rb index a6d881ff3..3644c396a 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -59,6 +59,7 @@ class ApplicationController < ActionController::Base end def set_localization + User.current.language = nil unless User.current.logged? lang = begin if !User.current.language.blank? and GLoc.valid_languages.include? User.current.language.to_sym User.current.language diff --git a/test/integration/application_test.rb b/test/integration/application_test.rb new file mode 100644 index 000000000..18f4891c2 --- /dev/null +++ b/test/integration/application_test.rb @@ -0,0 +1,43 @@ +# redMine - project management software +# Copyright (C) 2006-2008 Jean-Philippe Lang +# +# 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.dirname(__FILE__)}/../test_helper" + +class ApplicationTest < ActionController::IntegrationTest + fixtures :users + + def test_set_localization + Setting.default_language = 'en' + + # a french user + get 'projects', { }, 'Accept-Language' => 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' + assert_response :success + assert_tag :tag => 'h2', :content => 'Projets' + assert_equal 'fr', User.current.language + + # then an italien user + get 'projects', { }, 'Accept-Language' => 'it;q=0.8,en-us;q=0.5,en;q=0.3' + assert_response :success + assert_tag :tag => 'h2', :content => 'Progetti' + assert_equal 'it', User.current.language + + # not a supported language: default language should be used + get 'projects', { }, 'Accept-Language' => 'zz' + assert_response :success + assert_tag :tag => 'h2', :content => 'Projects' + end +end -- 2.39.5