aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Longair <mhl@pobox.com>2013-11-19 11:35:41 +0000
committerLouise Crow <louise.crow@gmail.com>2013-11-19 15:00:57 +0000
commit6ce13edab05e938d7cd9d0b18b99fe608ca25306 (patch)
treed6d0927479bb10b4b6824da6fa3e92b88f949ef8
parent45a19e32e5d830d650768fef45273d60a7e7cd29 (diff)
Use upstream globalize.
We're trying to switch to an upstream version of globalize, which now has Henare's change to allowed blank values without them being converted to nil - however, there is another intermediate change that was introduced which means that the name is only written back to the original table if the locale matches the default locale. This is described in more depth here: globalize/globalize#183 This change broke the make_single_language_example helper, but this commit fixes that by also setting the default locale before creating the example public bodies.
-rw-r--r--Gemfile3
-rw-r--r--Gemfile.lock6
-rw-r--r--spec/controllers/general_controller_spec.rb18
-rw-r--r--spec/controllers/public_body_controller_spec.rb44
-rw-r--r--spec/spec_helper.rb8
5 files changed, 43 insertions, 36 deletions
diff --git a/Gemfile b/Gemfile
index 5467eaa4d..3caa83885 100644
--- a/Gemfile
+++ b/Gemfile
@@ -45,8 +45,7 @@ gem 'zip'
gem 'fast_gettext'
gem 'gettext_i18n_rails'
gem 'gettext'
-# Use until this PR is merged: https://github.com/svenfuchs/globalize3/pull/191
-gem 'globalize3', :git => 'git://github.com/henare/globalize3.git', :branch => 'not-null-empty-attributes'
+gem 'globalize3', :git => 'git://github.com/globalize/globalize.git', :ref => '5fd95f2389dff1'
gem 'locale'
gem 'routing-filter'
gem 'unicode'
diff --git a/Gemfile.lock b/Gemfile.lock
index 339aa358d..989920a72 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
GIT
- remote: git://github.com/henare/globalize3.git
- revision: 2931f559cbed8843ab7d16278d70ce99a0239132
- branch: not-null-empty-attributes
+ remote: git://github.com/globalize/globalize.git
+ revision: 5fd95f2389dff13c9368fb2e08c96c8a48798c72
+ ref: 5fd95f2389dff1
specs:
globalize3 (0.3.0)
activemodel (>= 3.0.0)
diff --git a/spec/controllers/general_controller_spec.rb b/spec/controllers/general_controller_spec.rb
index 593d51683..116dbe07a 100644
--- a/spec/controllers/general_controller_spec.rb
+++ b/spec/controllers/general_controller_spec.rb
@@ -73,11 +73,10 @@ describe GeneralController, "when showing the frontpage" do
end
it "should render the front page with default language" do
- old_default_locale = I18n.default_locale
- I18n.default_locale = "es"
- get :frontpage
- response.should have_selector('html[lang="es"]')
- I18n.default_locale = old_default_locale
+ with_default_locale("es") do
+ get :frontpage
+ response.should have_selector('html[lang="es"]')
+ end
end
it "should render the front page with default language and ignore the browser setting" do
@@ -85,11 +84,10 @@ describe GeneralController, "when showing the frontpage" do
config['USE_DEFAULT_BROWSER_LANGUAGE'] = false
accept_language = "en-GB,en-US;q=0.8,en;q=0.6"
request.env['HTTP_ACCEPT_LANGUAGE'] = accept_language
- old_default_locale = I18n.default_locale
- I18n.default_locale = "es"
- get :frontpage
- response.should have_selector('html[lang="es"]')
- I18n.default_locale = old_default_locale
+ with_default_locale("es") do
+ get :frontpage
+ response.should have_selector('html[lang="es"]')
+ end
end
it "should render the front page with browser-selected language when there's no default set" do
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb
index 6800765f2..0e0b0a575 100644
--- a/spec/controllers/public_body_controller_spec.rb
+++ b/spec/controllers/public_body_controller_spec.rb
@@ -82,21 +82,23 @@ describe PublicBodyController, "when listing bodies" do
def make_single_language_example(locale)
result = nil
- I18n.with_locale(locale) do
- case locale
- when :en
- result = PublicBody.new(:name => 'English only',
- :short_name => 'EO')
- when :es
- result = PublicBody.new(:name => 'Español Solamente',
- :short_name => 'ES')
- else
- raise StandardError.new "Unknown locale #{locale}"
+ with_default_locale(locale) do
+ I18n.with_locale(locale) do
+ case locale
+ when :en
+ result = PublicBody.new(:name => 'English only',
+ :short_name => 'EO')
+ when :es
+ result = PublicBody.new(:name => 'Español Solamente',
+ :short_name => 'ES')
+ else
+ raise StandardError.new "Unknown locale #{locale}"
+ end
+ result.request_email = "#{locale}@example.org"
+ result.last_edit_editor = 'test'
+ result.last_edit_comment = ''
+ result.save
end
- result.request_email = "#{locale}@example.org"
- result.last_edit_editor = 'test'
- result.last_edit_comment = ''
- result.save
end
result
end
@@ -188,13 +190,13 @@ describe PublicBodyController, "when listing bodies" do
end
it "should list bodies in alphabetical order with different locale" do
- I18n.default_locale = :es
- get :list
- response.should render_template('list')
- assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body), public_bodies(:humpadink_public_body) ]
- assigns[:tag].should == "all"
- assigns[:description].should == ""
- I18n.default_locale = :en
+ with_default_locale(:es) do
+ get :list
+ response.should render_template('list')
+ assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body), public_bodies(:humpadink_public_body) ]
+ assigns[:tag].should == "all"
+ assigns[:description].should == ""
+ end
end
it "should list a tagged thing on the appropriate list page, and others on the other page, and all still on the all page" do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 9d16f6387..d22f3c0ff 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -183,6 +183,14 @@ Spork.prefork do
end
end
+ def with_default_locale(locale)
+ original_default_locale = I18n.default_locale
+ I18n.default_locale = locale
+ yield
+ ensure
+ I18n.default_locale = original_default_locale
+ end
+
def load_test_categories
PublicBodyCategories.add(:en, [
"Local and regional",