aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-06-06 17:59:41 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2008-06-06 17:59:41 -0700
commite732a405ab7d0d04f8a254764970c9dcda988f01 (patch)
tree3a245fbccbde5601965e244f3d966f31287c43b1
parentfec0f0678bef93f98cf1204bb007d109bbe97c37 (diff)
downloadrails-e732a405ab7d0d04f8a254764970c9dcda988f01.tar.gz
rails-e732a405ab7d0d04f8a254764970c9dcda988f01.tar.bz2
rails-e732a405ab7d0d04f8a254764970c9dcda988f01.zip
javascript_tag should only concat when block_given?
-rw-r--r--actionpack/lib/action_view/helpers/javascript_helper.rb17
-rw-r--r--actionpack/test/template/javascript_helper_test.rb4
2 files changed, 14 insertions, 7 deletions
diff --git a/actionpack/lib/action_view/helpers/javascript_helper.rb b/actionpack/lib/action_view/helpers/javascript_helper.rb
index a2f2577636..85b205c264 100644
--- a/actionpack/lib/action_view/helpers/javascript_helper.rb
+++ b/actionpack/lib/action_view/helpers/javascript_helper.rb
@@ -172,14 +172,17 @@ module ActionView
# alert('All is good')
# <% end -%>
def javascript_tag(content_or_options_with_block = nil, html_options = {}, &block)
- if block_given?
- html_options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
- content = capture(&block)
- else
- content = content_or_options_with_block
- end
+ content =
+ if block_given?
+ html_options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
+ capture(&block)
+ else
+ content_or_options_with_block
+ end
+
+ tag = content_tag("script", javascript_cdata_section(content), html_options.merge(:type => Mime::JS))
- concat(content_tag("script", javascript_cdata_section(content), html_options.merge(:type => Mime::JS)))
+ block_given? ? concat(tag) : tag
end
def javascript_cdata_section(content) #:nodoc:
diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb
index f136f56777..4924074c3e 100644
--- a/actionpack/test/template/javascript_helper_test.rb
+++ b/actionpack/test/template/javascript_helper_test.rb
@@ -82,8 +82,12 @@ class JavaScriptHelperTest < ActionView::TestCase
end
def test_javascript_tag
+ @output_buffer = 'foo'
+
assert_dom_equal "<script type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>",
javascript_tag("alert('hello')")
+
+ assert_equal 'foo', @output_buffer, 'javascript_tag without a block should not concat to @output_buffer'
end
def test_javascript_tag_with_options