diff options
-rw-r--r-- | app/controllers/application_controller.rb | 5 | ||||
-rw-r--r-- | lib/mail_handler/backends/mail_backend.rb | 2 | ||||
-rw-r--r-- | spec/controllers/help_controller_spec.rb | 27 | ||||
-rw-r--r-- | spec/fixtures/theme_views/theme_one/help/contact.es.html.erb | 1 | ||||
-rw-r--r-- | spec/fixtures/theme_views/theme_one/help/contact.html.erb | 1 | ||||
-rw-r--r-- | spec/lib/mail_handler/mail_handler_spec.rb | 2 |
6 files changed, 33 insertions, 5 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index c9ad48693..535f893f0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -51,6 +51,9 @@ class ApplicationController < ActionController::Base anonymous_cache(24.hours) end + # This is an override of the method provided by gettext_i18n_rails - note the explicit + # setting of I18n.locale, required due to the I18nProxy used in Rails 3 to trigger the + # lookup_context and expire the template cache def set_gettext_locale if AlaveteliConfiguration::include_default_locale_in_urls == false params_locale = params[:locale] ? params[:locale] : I18n.default_locale @@ -63,7 +66,7 @@ class ApplicationController < ActionController::Base requested_locale = params_locale || session[:locale] || cookies[:locale] || I18n.default_locale end requested_locale = FastGettext.best_locale_in(requested_locale) - session[:locale] = FastGettext.set_locale(requested_locale) + session[:locale] = I18n.locale = FastGettext.set_locale(requested_locale) if !@user.nil? if @user.locale != requested_locale @user.locale = session[:locale] diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb index 561946980..28c486e1b 100644 --- a/lib/mail_handler/backends/mail_backend.rb +++ b/lib/mail_handler/backends/mail_backend.rb @@ -112,7 +112,7 @@ module MailHandler if first_from.is_a?(ActiveSupport::Multibyte::Chars) return nil else - return first_from.display_name ? eval(%Q{"#{first_from.display_name}"}) : nil + return (first_from.display_name || nil) end else return nil diff --git a/spec/controllers/help_controller_spec.rb b/spec/controllers/help_controller_spec.rb index 0f6f75eb9..c47e1abd3 100644 --- a/spec/controllers/help_controller_spec.rb +++ b/spec/controllers/help_controller_spec.rb @@ -1,8 +1,9 @@ +# -*- coding: utf-8 -*- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe HelpController, "when using help" do render_views - + it "shows the about page" do get :about end @@ -12,7 +13,7 @@ describe HelpController, "when using help" do end it "sends a contact message" do - post :contact, { :contact => { + post :contact, { :contact => { :name => "Vinny Vanilli", :email => "vinny@localhost", :subject => "Why do I have such an ace name?", @@ -27,5 +28,27 @@ describe HelpController, "when using help" do deliveries.clear end + describe 'when requesting a page in a supported locale ' do + + before do + # Allow us to supply the locale manually + RoutingFilter.active = false + # Prepend our fixture templates + fixture_theme_path = File.join(Rails.root, 'spec', 'fixtures', 'theme_views', 'theme_one') + controller.prepend_view_path fixture_theme_path + end + + after do + RoutingFilter.active = true + end + + it 'should render the locale-specific template if available' do + get :contact, {:locale => 'es'} + response.body.should match('contáctenos theme one') + end + + end + + end diff --git a/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb b/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb new file mode 100644 index 000000000..a294c8aa1 --- /dev/null +++ b/spec/fixtures/theme_views/theme_one/help/contact.es.html.erb @@ -0,0 +1 @@ +contáctenos theme one diff --git a/spec/fixtures/theme_views/theme_one/help/contact.html.erb b/spec/fixtures/theme_views/theme_one/help/contact.html.erb new file mode 100644 index 000000000..428c7368d --- /dev/null +++ b/spec/fixtures/theme_views/theme_one/help/contact.html.erb @@ -0,0 +1 @@ +Contact us diff --git a/spec/lib/mail_handler/mail_handler_spec.rb b/spec/lib/mail_handler/mail_handler_spec.rb index 272b56d0b..d6e7ba5d2 100644 --- a/spec/lib/mail_handler/mail_handler_spec.rb +++ b/spec/lib/mail_handler/mail_handler_spec.rb @@ -223,7 +223,7 @@ describe 'when deriving a name, email and formatted address from a message from it 'should quote a name with quotes in it' do should_render_from_address('"FOI \" Person" <foiperson@localhost>', - ['FOI " Person', + ['FOI \" Person', 'foiperson@localhost', '"FOI \" Person" <foiperson@localhost>']) end |