require 'helper' class TestSkimTextInterpolation < TestSkim def test_interpolation_in_attribute source = %q{ p id="a#{@id_helper()}b" = @hello_world() } assert_html '
Hello World from @env
', source end def test_nested_interpolation_in_attribute source = %q{ p id="#{"abc#{1+1}" + "("}" = @hello_world() } assert_html 'Hello World from @env
', source end def test_interpolation_in_text source = %q{ p | #{@hello_world()} with "quotes" p | A message from the compiler: #{@hello_world()} } assert_html 'Hello World from @env with "quotes"
A message from the compiler: Hello World from @env
', source end def test_interpolation_in_tag source = %q{ p #{@hello_world()} } assert_html 'Hello World from @env
', source end def test_escape_interpolation source = %q{ p \\#{@hello_world()} p text1 \\#{@hello_world()} text2 } assert_html '#{@hello_world()}
text1 #{@hello_world()} text2
', source end def test_complex_interpolation source = %q{ p Message: #{@message('hello', "user #{@output_number()}")} } assert_html 'Message: hello user 1337
', source end def test_interpolation_with_escaping source = %q{ | #{@evil_method()} } assert_html '<script>do_something_evil();</script>', source end def test_interpolation_without_escaping source = %q{ | #{{@evil_method()}} } assert_html '', source end def test_interpolation_with_escaping_and_delimiter source = %q{ | #{(@evil_method())} } assert_html '<script>do_something_evil();</script>', source end end