aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2012-05-04 12:48:09 +0100
committerSeb Bacon <seb.bacon@gmail.com>2012-05-04 12:48:09 +0100
commitcc023c6748ceaf3bc8cc3260e0a0fdba054016d7 (patch)
tree7f3205246aeaed7d2fa4225bd60d776302efd564
parentb0b1aebb371211e0deb5e9eac600817e90f83301 (diff)
Don't cache results from pages with different locales using the same key. Fixes #454
-rw-r--r--app/controllers/request_controller.rb2
-rw-r--r--spec/controllers/request_controller_spec.rb10
2 files changed, 10 insertions, 2 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index 7ca081c04..36edab9fa 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -171,7 +171,7 @@ class RequestController < ApplicationController
query = make_query_from_params
@title = _("View and search requests")
sortby = "newest"
- @cache_tag = Digest::MD5.hexdigest(query + @page.to_s)
+ @cache_tag = Digest::MD5.hexdigest(query + @page.to_s + I18n.locale.to_s)
behavior_cache :tag => [@cache_tag] do
xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_collapse')
@list_results = xapian_object.results.map { |r| r[:model] }
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index cfd11a2ca..c737e5736 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -64,6 +64,14 @@ describe RequestController, "when listing recent requests" do
assigns[:cache_tag].size.should <= 32
end
+ it "should vary the cache tag with locale" do
+ get :list, :view => 'all', :request_date_after => '13/10/2007', :request_date_before => '01/11/2007'
+ en_tag = assigns[:cache_tag]
+ session[:locale] = :es
+ get :list, :view => 'all', :request_date_after => '13/10/2007', :request_date_before => '01/11/2007'
+ assigns[:cache_tag].should_not == en_tag
+ end
+
it "should list internal_review requests as unresolved ones" do
get :list, :view => 'awaiting'
@@ -91,7 +99,7 @@ describe RequestController, "when listing recent requests" do
rebuild_xapian_index
get :list, :view => 'awaiting'
- assigns[:list_results].map(&:info_request).include?(info_requests(:fancy_dog_request)).should == true
+ assigns[:list_results].map(&:info_request).include?(info_requests(:fancy_dog_request)).should == truei
end
it "should assign the first page of results" do