require 'helper' require 'erb' class TestSlimEmbeddedEngines < TestSlim def test_render_with_markdown source = %q{ markdown: #Header Hello from #{"Markdown!"} #{1+2} * one * two } if ::Tilt['md'].name =~ /Redcarpet/ # redcarpet assert_html "
Hello from Markdown!
\n\n3
\n\nHello from Markdown!
\n\n3
\n\nHello from Markdown!
\n\n3
\n\nHello from Markdown!
\n\n3
\n\nHello from Markdown!
\n\n3
\n\nHi
}, source end def test_render_with_javascript_empty_attributes source = %q{ javascript (): alert('hello') } assert_html %{}, source end def test_render_with_javascript_attribute source = %q{ javascript [class = "myClass"]: alert('hello') } assert_html %{}, source end def test_render_with_javascript_multiple_attributes source = %q{ javascript { class = "myClass" id="myId" other-attribute = 'my_other_attribute' } : alert('hello') } assert_html %{}, source end def test_render_with_javascript_with_tabs source = "javascript:\n\t$(function() {});\n\talert('hello')\np Hi" assert_html "Hi
", source end def test_render_with_javascript_including_variable source = %q{ - func = "alert('hello');" javascript: $(function() { #{func} }); } assert_html %q||, source end def test_render_with_javascript_with_explicit_html_comment Slim::Engine.with_options(js_wrapper: :comment) do source = "javascript:\n\t$(function() {});\n\talert('hello')\np Hi" assert_html "Hi
", source end end def test_render_with_javascript_with_explicit_cdata_comment Slim::Engine.with_options(js_wrapper: :cdata) do source = "javascript:\n\t$(function() {});\n\talert('hello')\np Hi" assert_html "Hi
", source end end def test_render_with_javascript_with_format_xhtml_comment Slim::Engine.with_options(js_wrapper: :guess, format: :xhtml) do source = "javascript:\n\t$(function() {});\n\talert('hello')\np Hi" assert_html "Hi
", source end end def test_render_with_javascript_with_format_html_comment Slim::Engine.with_options(js_wrapper: :guess, format: :html) do source = "javascript:\n\t$(function() {});\n\talert('hello')\np Hi" assert_html "Hi
", source end end def test_render_with_ruby source = %q{ ruby: variable = 1 + 2 = variable } assert_html '3', source end def test_render_with_ruby_heredoc source = %q{ ruby: variable = <<-MSG foobar MSG = variable } assert_html "foobar\n", source end def test_render_with_scss source = %q{ scss: $color: #f00; body { color: $color; } } assert_html "", source end def test_render_with_scss_attribute source = %q{ scss [class="myClass"]: $color: #f00; body { color: $color; } } assert_html "", source end def test_render_with_sass source = %q{ sass: $color: #f00 body color: $color } assert_html "", source end def test_render_with_sass_attribute source = %q{ sass [class="myClass"]: $color: #f00 body color: $color } assert_html "", source end def test_disabled_embedded_engine source = %{ ruby: Embedded Ruby } assert_runtime_error 'Embedded engine ruby is disabled', source, enable_engines: [:javascript] assert_runtime_error 'Embedded engine ruby is disabled', source, enable_engines: %w(javascript) source = %{ ruby: Embedded Ruby } assert_runtime_error 'Embedded engine ruby is disabled', source, enable_engines: [:javascript] assert_runtime_error 'Embedded engine ruby is disabled', source, enable_engines: %w(javascript) source = %{ ruby: Embedded Ruby } assert_runtime_error 'Embedded engine ruby is disabled', source, disable_engines: [:ruby] assert_runtime_error 'Embedded engine ruby is disabled', source, disable_engines: %w(ruby) end def test_enabled_embedded_engine source = %q{ javascript: $(function() {}); } assert_html '', source, disable_engines: [:ruby] assert_html '', source, disable_engines: %w(ruby) source = %q{ javascript: $(function() {}); } assert_html '', source, enable_engines: [:javascript] assert_html '', source, enable_engines: %w(javascript) end end