aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test
diff options
context:
space:
mode:
authorŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2014-03-14 13:40:46 +0100
committerŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2014-03-14 13:41:06 +0100
commit2c2326e6eab4d192e361871787335ffa711af597 (patch)
tree27b4c841fd7c747e7ba2c2aa521f04dba9f6d280 /actionview/test
parent9f677bf043eb359a91d346bb5a1e6ee81cef6665 (diff)
downloadrails-2c2326e6eab4d192e361871787335ffa711af597.tar.gz
rails-2c2326e6eab4d192e361871787335ffa711af597.tar.bz2
rails-2c2326e6eab4d192e361871787335ffa711af597.zip
Introduce #with_formats_and_variants to prevent problems with mutating finder object
Diffstat (limited to 'actionview/test')
-rw-r--r--actionview/test/template/digestor_test.rb8
-rw-r--r--actionview/test/template/lookup_context_test.rb13
2 files changed, 21 insertions, 0 deletions
diff --git a/actionview/test/template/digestor_test.rb b/actionview/test/template/digestor_test.rb
index 1c47952f54..72d1f43f12 100644
--- a/actionview/test/template/digestor_test.rb
+++ b/actionview/test/template/digestor_test.rb
@@ -40,6 +40,14 @@ class FixtureFinder
def disable_cache(&block)
yield
end
+
+ def with_formats_and_variants(new_formats, new_variants)
+ old_formats, old_variants = formats, variants
+ self.formats, self.variants = new_formats, new_variants
+ yield
+ ensure
+ self.formats, self.variants = old_formats, old_variants
+ end
end
class TemplateDigestorTest < ActionView::TestCase
diff --git a/actionview/test/template/lookup_context_test.rb b/actionview/test/template/lookup_context_test.rb
index 4f7823045e..b11f252110 100644
--- a/actionview/test/template/lookup_context_test.rb
+++ b/actionview/test/template/lookup_context_test.rb
@@ -205,6 +205,19 @@ class LookupContextTest < ActiveSupport::TestCase
@lookup_context.prefixes = ["foo"]
assert_equal ["foo"], @lookup_context.prefixes
end
+
+ test "with_formats_and_variants preserves original values after execution" do
+ @lookup_context.formats = [:html]
+ @lookup_context.variants = [:phone]
+
+ @lookup_context.with_formats_and_variants([:xml], [:tablet]) do
+ assert_equal [:xml], @lookup_context.formats
+ assert_equal [:tablet], @lookup_context.variants
+ end
+
+ assert_equal [:html], @lookup_context.formats
+ assert_equal [:phone], @lookup_context.variants
+ end
end
class LookupContextWithFalseCaching < ActiveSupport::TestCase