Skip to content
This repository has been archived by the owner on Aug 23, 2022. It is now read-only.

Commit

Permalink
Merge pull request rails#5480 from drogus/rendering-issues
Browse files Browse the repository at this point in the history
Fix for rails#5440
  • Loading branch information
josevalim authored and spastorino committed Mar 17, 2012
1 parent 4711298 commit 39514af
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 0 deletions.
1 change: 1 addition & 0 deletions actionpack/lib/abstract_controller/rendering.rb
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ def render_to_body(options = {})
# Find and renders a template based on the options given.
# :api: private
def _render_template(options) #:nodoc:
lookup_context.rendered_format = nil if options[:formats]
view_renderer.render(view_context, options)
end

Expand Down
39 changes: 39 additions & 0 deletions actionpack/test/controller/render_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -559,6 +559,23 @@ def render_to_string_with_partial
render :template => "test/hello_world"
end

def render_to_string_with_template_and_html_partial
@text = render_to_string :template => "test/with_partial", :formats => [:text]
@html = render_to_string :template => "test/with_partial", :formats => [:html]
render :template => "test/with_html_partial"
end

def render_to_string_and_render_with_different_formats
@html = render_to_string :template => "test/with_partial", :formats => [:html]
render :template => "test/with_partial", :formats => [:text]
end

def render_template_within_a_template_with_other_format
render :template => "test/with_xml_template",
:formats => [:html],
:layout => "with_html_partial"
end

def partial_with_counter
render :partial => "counter", :locals => { :counter_counter => 5 }
end
Expand Down Expand Up @@ -1268,6 +1285,28 @@ def test_render_to_string_partial
assert_equal "text/html", @response.content_type
end

def test_render_to_string_with_template_and_html_partial
get :render_to_string_with_template_and_html_partial
assert_equal "**only partial**\n", assigns(:text)
assert_equal "<strong>only partial</strong>\n", assigns(:html)
assert_equal "<strong>only html partial</strong>\n", @response.body
assert_equal "text/html", @response.content_type
end

def test_render_to_string_and_render_with_different_formats
get :render_to_string_and_render_with_different_formats
assert_equal "<strong>only partial</strong>\n", assigns(:html)
assert_equal "**only partial**\n", @response.body
assert_equal "text/plain", @response.content_type
end

def test_render_template_within_a_template_with_other_format
get :render_template_within_a_template_with_other_format
expected = "only html partial<p>This is grand!</p>"
assert_equal expected, @response.body.strip
assert_equal "text/html", @response.content_type
end

def test_partial_with_counter
get :partial_with_counter
assert_equal "5", @response.body
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= render :partial => "partial_only_html" %><%= yield %>
1 change: 1 addition & 0 deletions actionpack/test/fixtures/test/_partial_only_html.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
only html partial
1 change: 1 addition & 0 deletions actionpack/test/fixtures/test/with_html_partial.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<strong><%= render :partial => "partial_only_html" %></strong>
1 change: 1 addition & 0 deletions actionpack/test/fixtures/test/with_partial.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<strong><%= render :partial => "partial_only" %></strong>
1 change: 1 addition & 0 deletions actionpack/test/fixtures/test/with_partial.text.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**<%= render :partial => "partial_only" %>**
1 change: 1 addition & 0 deletions actionpack/test/fixtures/test/with_xml_template.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= render :template => "test/greeting", :formats => :xml %>

0 comments on commit 39514af

Please sign in to comment.