require 'helper' class TestSlimCodeEvaluation < TestSlim def test_render_with_call_to_set_attributes source = %q{ p id="#{id_helper}" class="hello world" = hello_world } assert_html '

Hello World from @env

', source end def test_render_with_call_to_set_custom_attributes source = %q{ p data-id="#{id_helper}" data-class="hello world" = hello_world } assert_html '

Hello World from @env

', source end def test_render_with_call_to_set_attributes_and_call_to_set_content source = %q{ p id="#{id_helper}" class="hello world" = hello_world } assert_html '

Hello World from @env

', source end def test_render_with_parameterized_call_to_set_attributes_and_call_to_set_content source = %q{ p id="#{id_helper}" class="hello world" = hello_world("Hello Ruby!") } assert_html '

Hello Ruby!

', source end def test_render_with_spaced_parameterized_call_to_set_attributes_and_call_to_set_content source = %q{ p id="#{id_helper}" class="hello world" = hello_world "Hello Ruby!" } assert_html '

Hello Ruby!

', source end def test_render_with_spaced_parameterized_call_to_set_attributes_and_call_to_set_content_2 source = %q{ p id="#{id_helper}" class="hello world" = hello_world "Hello Ruby!", :dummy => "value" } assert_html '

Hello Ruby!dummy value

', source end def test_hash_call_in_attribute source = %q{ p id="#{hash[:a]}" Test it } assert_html '

Test it

', source end def test_instance_variable_in_attribute_without_quotes source = %q{ p id=@var } assert_html '

', source end def test_method_call_in_attribute_without_quotes source = %q{ form action=action_path(:page, :save) method='post' } assert_html '
', source end def test_ruby_attribute_with_unbalanced_delimiters source = %q{ div crazy=action_path('[') id="crazy_delimiters" } assert_html '
', source end def test_method_call_in_delimited_attribute_without_quotes source = %q{ form(action=action_path(:page, :save) method='post') } assert_html '
', source end def test_method_call_in_delimited_attribute_without_quotes2 source = %q{ form(method='post' action=action_path(:page, :save)) } assert_html '
', source end def test_bypassing_escape_in_attribute source = %q{ form action==action_path(:page, :save) method='post' } assert_html '
', source end def test_hash_call_in_attribute_without_quotes source = %q{ p id=hash[:a] Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute source = %q{ p(id=hash[:a]) Test it } assert_html '

Test it

', source end def test_hash_call_in_attribute_with_ruby_evaluation source = %q{ p id={hash[:a] + hash[:a]} Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute_with_ruby_evaluation source = %q{ p(id=(hash[:a] + hash[:a])) Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute_with_ruby_evaluation_2 source = %q{ p[id=(hash[:a] + hash[:a])] Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute_with_ruby_evaluation_3 source = %q{ p(id=[hash[:a] + hash[:a]]) Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute_with_ruby_evaluation_4 source = %q{ p(id=[hash[:a] + hash[:a]] class=[hash[:a]]) Test it } assert_html '

Test it

', source end def test_hash_call_in_delimited_attribute_with_ruby_evaluation_5 source = %q{ p(id=hash[:a] class=[hash[:a]]) Test it } assert_html '

Test it

', source end def test_computation_in_attribute source = %q{ p id=(1 + 1)*5 Test it } assert_html '

Test it

', source end def test_number_type_interpolation source = %q{ p = output_number } assert_html '

1337

', source end def test_ternary_operation_in_attribute source = %q{ p id="#{(false ? 'notshown' : 'shown')}" = output_number } assert_html '

1337

', source end def test_ternary_operation_in_attribute_2 source = %q{ p id=(false ? 'notshown' : 'shown') = output_number } assert_html '

1337

', source end def test_class_attribute_merging source = %{ .alpha class="beta" Test it } assert_html '
Test it
', source end def test_class_attribute_merging_with_nil source = %{ .alpha class="beta" class=nil class="gamma" Test it } assert_html '
Test it
', source end def test_id_attribute_merging source = %{ #alpha id="beta" Test it } assert_html '
Test it
', source, :attr_delimiter => {'class' => ' ', 'id' => '_' } end def test_id_attribute_merging2 source = %{ #alpha id="beta" Test it } assert_html '
Test it
', source, :attr_delimiter => {'class' => ' ', 'id' => '-' } end def test_boolean_attribute_false source = %{ option selected=false Text } assert_html '', source end def test_boolean_attribute_true source = %{ option selected=true Text } assert_html '', source end def test_boolean_attribute_dynamic source = %{ option selected=method_which_returns_true Text } assert_html '', source end def test_boolean_attribute_nil source = %{ option selected=nil Text } assert_html '', source end def test_boolean_attribute_string2 source = %{ option selected="selected" Text } assert_html '', source end def test_boolean_attribute_shortcut source = %{ option(class="clazz" selected) Text option(selected class="clazz") Text } assert_html '', source end def test_array_attribute source = %{ .alpha class="beta" class=[:gamma, nil, :delta, [true, false]] } assert_html '
', source end end