aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test/template
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-07-07 13:44:16 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-07-07 13:44:16 -0300
commit09f6fe1cd4099837c5801fe654804ae058c211b4 (patch)
treeda14b61b5048406d6dd83ed5b23d7ff539fbec3c /actionview/test/template
parenta67cc28311b0ecb4282ca7d80b5ece959d22628f (diff)
downloadrails-09f6fe1cd4099837c5801fe654804ae058c211b4.tar.gz
rails-09f6fe1cd4099837c5801fe654804ae058c211b4.tar.bz2
rails-09f6fe1cd4099837c5801fe654804ae058c211b4.zip
Fix "Stack Level Too Deep" error when rendering recursive partials
When rendering recursive partial Action View is trying to generate the view digest infinitly causing a stack level error. Fixes #11340
Diffstat (limited to 'actionview/test/template')
-rw-r--r--actionview/test/template/digestor_test.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/actionview/test/template/digestor_test.rb b/actionview/test/template/digestor_test.rb
index 06735c30d3..07f8d36d93 100644
--- a/actionview/test/template/digestor_test.rb
+++ b/actionview/test/template/digestor_test.rb
@@ -95,6 +95,31 @@ class TemplateDigestorTest < ActionView::TestCase
end
end
+ def test_recursion_in_renders
+ assert digest("level/recursion") # assert recursion is possible
+ assert_not_nil digest("level/recursion") # assert digest is stored
+ end
+
+ def test_chaning_the_top_templete_on_recursion
+ assert digest("level/recursion") # assert recursion is possible
+
+ assert_digest_difference("level/recursion") do
+ change_template("level/recursion")
+ end
+
+ assert_not_nil digest("level/recursion") # assert digest is stored
+ end
+
+ def test_chaning_the_partial_templete_on_recursion
+ assert digest("level/recursion") # assert recursion is possible
+
+ assert_digest_difference("level/recursion") do
+ change_template("level/_recursion")
+ end
+
+ assert_not_nil digest("level/recursion") # assert digest is stored
+ end
+
def test_dont_generate_a_digest_for_missing_templates
assert_equal '', digest("nothing/there")
end