diff --git a/app/controllers/application.rb b/app/controllers/application.rb index a6d881ff..3644c396 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 00000000..18f4891c --- /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