diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-07-07 13:44:16 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-07-07 13:44:16 -0300 |
commit | 09f6fe1cd4099837c5801fe654804ae058c211b4 (patch) | |
tree | da14b61b5048406d6dd83ed5b23d7ff539fbec3c /actionview/test/template | |
parent | a67cc28311b0ecb4282ca7d80b5ece959d22628f (diff) | |
download | rails-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.rb | 25 |
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 |