diff options
Diffstat (limited to 'actionview/test/template/javascript_helper_test.rb')
-rw-r--r-- | actionview/test/template/javascript_helper_test.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/actionview/test/template/javascript_helper_test.rb b/actionview/test/template/javascript_helper_test.rb new file mode 100644 index 0000000000..de6a6eaab3 --- /dev/null +++ b/actionview/test/template/javascript_helper_test.rb @@ -0,0 +1,62 @@ +require 'abstract_unit' + +class JavaScriptHelperTest < ActionView::TestCase + tests ActionView::Helpers::JavaScriptHelper + + def _evaluate_assigns_and_ivars() end + + attr_accessor :formats, :output_buffer + + def update_details(details) + @details = details + yield if block_given? + end + + def setup + super + ActiveSupport.escape_html_entities_in_json = true + @template = self + end + + def teardown + ActiveSupport.escape_html_entities_in_json = false + end + + def test_escape_javascript + assert_equal '', escape_javascript(nil) + assert_equal %(This \\"thing\\" is really\\n netos\\'), escape_javascript(%(This "thing" is really\n netos')) + assert_equal %(backslash\\\\test), escape_javascript( %(backslash\\test) ) + assert_equal %(dont <\\/close> tags), escape_javascript(%(dont </close> tags)) + assert_equal %(unicode 
 newline), escape_javascript(%(unicode \342\200\250 newline).force_encoding(Encoding::UTF_8).encode!) + assert_equal %(unicode 
 newline), escape_javascript(%(unicode \342\200\251 newline).force_encoding(Encoding::UTF_8).encode!) + + assert_equal %(dont <\\/close> tags), j(%(dont </close> tags)) + end + + def test_escape_javascript_with_safebuffer + given = %('quoted' "double-quoted" new-line:\n </closed>) + expect = %(\\'quoted\\' \\"double-quoted\\" new-line:\\n <\\/closed>) + assert_equal expect, escape_javascript(given) + assert_equal expect, escape_javascript(ActiveSupport::SafeBuffer.new(given)) + assert_instance_of String, escape_javascript(given) + assert_instance_of ActiveSupport::SafeBuffer, escape_javascript(ActiveSupport::SafeBuffer.new(given)) + end + + def test_javascript_tag + self.output_buffer = 'foo' + + assert_dom_equal "<script>\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 + assert_dom_equal "<script id=\"the_js_tag\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>", + javascript_tag("alert('hello')", :id => "the_js_tag") + end + + def test_javascript_cdata_section + assert_dom_equal "\n//<![CDATA[\nalert('hello')\n//]]>\n", javascript_cdata_section("alert('hello')") + end +end |