Sha256: 782ab703f54913449db29ca18b64c184dc5add8280f60ab75dcb7fd2759f2f68

Contents?: true

Size: 1.61 KB

Versions: 7

Compression:

Stored size: 1.61 KB

Contents

require 'helper'

class TestSkimTextInterpolation < TestSkim
  def test_interpolation_in_attribute
    source = %q{
p id="a#{@id_helper()}b" = @hello_world()
}

    assert_html '<p id="anoticeb">Hello World from @env</p>', source
  end

  def test_nested_interpolation_in_attribute
    source = %q{
p id="#{"abc#{1+1}" + "("}" = @hello_world()
}

    assert_html '<p id="abc2(">Hello World from @env</p>', source
  end

  def test_interpolation_in_text
    source = %q{
p
 | #{@hello_world()} with "quotes"
p
 |
  A message from the compiler: #{@hello_world()}
}

    assert_html '<p>Hello World from @env with "quotes"</p><p>A message from the compiler: Hello World from @env</p>', source
  end

  def test_interpolation_in_tag
    source = %q{
p #{@hello_world()}
}

    assert_html '<p>Hello World from @env</p>', source
  end

  def test_escape_interpolation
    source = %q{
p \\#{@hello_world()}
}

    assert_html '<p>#{@hello_world()}</p>', source
  end

  def test_complex_interpolation
    source = %q{
p Message: #{@message('hello', "user #{@output_number()}")}
}

    assert_html '<p>Message: hello user 1337</p>', source
  end

  def test_interpolation_with_escaping
    source = %q{
| #{@evil_method()}
}

    assert_html '&lt;script&gt;do_something_evil();&lt;&#47;script&gt;', source
  end

  def test_interpolation_without_escaping
    source = %q{
| #{{@evil_method()}}
}

    assert_html '<script>do_something_evil();</script>', source
  end

  def test_interpolation_with_escaping_and_delimiter
    source = %q{
| #{(@evil_method())}
}
    assert_html '&lt;script&gt;do_something_evil();&lt;&#47;script&gt;', source
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
skim-0.8.6 test/test_text_interpolation.rb
skim-0.8.5 test/test_text_interpolation.rb
skim-0.8.4 test/test_text_interpolation.rb
skim-0.8.3 test/test_text_interpolation.rb
skim-0.8.2 test/test_text_interpolation.rb
skim-0.8.1 test/test_text_interpolation.rb
skim-0.8.0 test/test_text_interpolation.rb