describe Hamlit::Engine do describe 'new attributes' do it 'renders attributes' do assert_render(<<-HAML, <<-HTML) %p(class='foo') bar HAML

bar

HTML end it 'renders multiple attributes' do assert_render(<<-HAML, <<-HTML) %p(a=1 b=2) bar HAML

bar

HTML end it 'renders multi-line attributes properly' do assert_render(<<-HAML, <<-HTML, compatible_only: :faml) %span(a=__LINE__ b=__LINE__) = __LINE__ HAML 3 HTML end describe 'html escape' do it 'escapes attribute values on static attributes' do assert_render(<<-'HAML', <<-HTML, compatible_only: :faml) %a(title="'") %a(title = "'\"") %a(href='/search?foo=bar&hoge=') HAML HTML end it 'escapes attribute values on dynamic attributes' do assert_render(<<-'HAML', <<-HTML, compatible_only: :faml) - title = "'\"" - href = '/search?foo=bar&hoge=' %a(title=title) %a(href=href) HAML HTML end end describe 'element class with attribute class' do it 'does not generate double classes' do assert_render(<<-HAML, <<-HTML) .item(class='first') HAML
HTML end it 'does not generate double classes for a variable' do assert_render(<<-HAML, <<-HTML) - val = 'val' .element(class=val) HAML
HTML end end describe 'element id with attribute id' do it 'concatenates ids with underscore' do assert_render(<<-HAML, <<-HTML) #item(id='first') HAML
HTML end it 'concatenates ids with underscore for a variable' do assert_render(<<-HAML, <<-HTML) - val = 'first' #item(id=val) HAML
HTML end end end end