require 'helper' class TestSlimHTMLAttributes < TestSlim 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_class_attribute_merging_with_empty_static source = %{ .alpha class="beta" class="" 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, merge_attrs: {'class' => ' ', 'id' => '_' } end def test_id_attribute_merging2 source = %{ #alpha id="beta" Test it } assert_html '
Test it
', source, merge_attrs: {'class' => ' ', 'id' => '-' } end def test_boolean_attribute_false source = %{ - cond=false option selected=false Text option selected=cond Text2 } assert_html '', source end def test_boolean_attribute_true source = %{ - cond=true option selected=true Text option selected=cond Text2 } assert_html '', source end def test_boolean_attribute_nil source = %{ - cond=nil option selected=nil Text option selected=cond Text2 } 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_merging source = %{ .alpha class="beta" class=[[""], :gamma, nil, :delta, [true, false]] .alpha class=:beta,:gamma } assert_html '
', source end def test_hyphenated_attribute source = %{ .alpha data={a: 'alpha', b: 'beta', c_d: 'gamma', c: {e: 'epsilon'}} } assert_html '
', source end def test_splat_without_content source = %q{ *hash p*hash } assert_html '

', source end def test_shortcut_splat source = %q{ *hash This is my title } assert_html '
This is my title
', source end def test_splat source = %q{ h1 *hash class=[] This is my title } assert_html '

This is my title

', source end def test_closed_splat source = %q{ *hash / } assert_html '
', source end def test_splat_tag_name source = %q{ *{tag: 'h1', id: 'title'} This is my title } assert_html '

This is my title

', source end def test_splat_empty_tag_name source = %q{ *{tag: '', id: 'test'} This is my title } assert_html '
This is my title
', source end def test_closed_splat_tag source = %q{ *hash / } assert_html '
', source end def test_splat_with_id_shortcut source = %q{ #myid*hash This is my title } assert_html '
This is my title
', source end def test_splat_with_class_shortcut source = %q{ .myclass*hash This is my title } assert_html '
This is my title
', source end def test_splat_with_id_and_class_shortcuts source = %q{ #myid.myclass*hash This is my title } assert_html '
This is my title
', source end def test_splat_with_class_merging source = %q{ #myid.myclass *{class: [:secondclass, %w(x y z)]} *hash This is my title } assert_html '
This is my title
', source end def test_splat_with_boolean_attribute source = %q{ *{disabled: true, empty1: false, nonempty: '', empty2: nil} This is my title } assert_html '
This is my title
', source end def test_splat_merging_with_arrays source = %q{ *{a: 1, b: 2} *[[:c, 3], [:d, 4]] *[[:e, 5], [:f, 6]] This is my title } assert_html '
This is my title
', source end def test_splat_with_other_attributes source = %q{ h1 data-id="123" *hash This is my title } assert_html '

This is my title

', source end def test_attribute_merging source = %q{ a class=true class=false a class=false *{class:true} a class=true a class=false } assert_html '', source end def test_static_empty_attribute source = %q{ p(id="marvin" name="" class="" data-info="Illudium Q-36")= output_number } assert_html '

1337

', source end def test_dynamic_empty_attribute source = %q{ p(id="marvin" class=nil nonempty=("".to_s) data-info="Illudium Q-36")= output_number } assert_html '

1337

', source end def test_weird_attribute source = %q{ p img(src='img.png' whatsthis?!) img src='img.png' whatsthis?!="wtf" } assert_html '

', source end end