require 'helper' class TestSlimCodeEscaping < TestSlim def test_escaping_evil_method source = %q{ p = evil_method } assert_html '
<script>do_something_evil();</script>
', source end def test_render_without_html_safe source = %q{ p = "Hello World\\n, meet \\"Slim\\"." } assert_html "<strong>Hello World\n, meet \"Slim\"</strong>.
", source end def test_render_without_html_safe2 source = %q{ p = "Hello World\\n, meet 'Slim'." } assert_html "<strong>Hello World\n, meet 'Slim'</strong>.
", source end def test_render_with_html_safe_false source = %q{ p = "Hello World\\n, meet \\"Slim\\"." } with_html_safe do assert_html "<strong>Hello World\n, meet \"Slim\"</strong>.
", source, use_html_safe: true end end def test_render_with_html_safe_true source = %q{ p = "Hello World\\n, meet \\"Slim\\".".html_safe } with_html_safe do assert_html "Hello World\n, meet \"Slim\".
", source, use_html_safe: true end end def test_render_splat_with_html_safe_true source = %q{ p *{ title: '&'.html_safe } } with_html_safe do assert_html "", source, use_html_safe: true end end def test_render_splat_with_html_safe_false source = %q{ p *{ title: '&' } } with_html_safe do assert_html "", source, use_html_safe: true end end def test_render_splat_injecting_evil_attr_name source = %q{ p *{ ">'test' } } with_html_safe do assert_raises Slim::InvalidAttributeNameError do render(source, use_html_safe: true) end end end def test_render_attribute_with_html_safe_true source = %q{ p title=('&'.html_safe) } with_html_safe do assert_html "
", source, use_html_safe: true end end def test_render_with_disable_escape_false source = %q{ = "Hello
" == "World
" } assert_html "<p>Hello</p>World
", source end def test_render_with_disable_escape_true source = %q{ = "Hello
" == "World
" } assert_html "Hello
World
", source, disable_escape: true end def test_escaping_evil_method_with_pretty source = %q{ p = evil_method } assert_html "\n <script>do_something_evil();</script>\n
", source, pretty: true end def test_render_without_html_safe_with_pretty source = %q{ p = "Hello World\\n, meet \\"Slim\\"." } assert_html "\n <strong>Hello World\n , meet \"Slim\"</strong>.\n
", source, pretty: true end def test_render_with_html_safe_false_with_pretty source = %q{ p = "Hello World\\n, meet \\"Slim\\"." } with_html_safe do assert_html "\n <strong>Hello World\n , meet \"Slim\"</strong>.\n
", source, use_html_safe: true, pretty: true end end def test_render_with_html_safe_true_with_pretty source = %q{ p = "Hello World\\n, meet \\"Slim\\".".html_safe } with_html_safe do assert_html "\n Hello World\n , meet \"Slim\".\n
", source, use_html_safe: true, pretty: true end end def test_render_with_disable_escape_false_with_pretty source = %q{ = "Hello
" == "World
" } assert_html "<p>Hello</p>World
", source, pretty: true end def test_render_with_disable_escape_true_with_pretty source = %q{ = "Hello
" == "World
" } assert_html "Hello
World
", source, disable_escape: true, pretty: true end end