diff --git a/plugins/display_content/test/unit/display_content_block_test.rb b/plugins/display_content/test/unit/display_content_block_test.rb index 6a14691..d78482a 100644 --- a/plugins/display_content/test/unit/display_content_block_test.rb +++ b/plugins/display_content/test/unit/display_content_block_test.rb @@ -774,4 +774,63 @@ class DisplayContentBlockViewTest < ActionView::TestCase assert render_block_content(block).index(en_article.name).present? assert_nil render_block_content(block).index(pt_article.name) end + + should 'not escape abstract html of articles' do + profile = create_user('testuser').person + a1 = fast_create(TextileArticle, abstract: "
Test
", name: 'test article 1', profile_id: profile.id, published_at: DateTime.current) + + block = DisplayContentBlock.new + block.sections = [{:value => 'abstract', :checked => true}] + block.nodes = [a1.id] + box = mock() + block.stubs(:box).returns(box) + box.stubs(:owner).returns(profile) + assert_tag_in_string render_block_content(block), tag: 'p', attributes: { class: 'test-article-abstract' } + end + + should 'not raise if abstract of article is nil' do + profile = create_user('testuser').person + a1 = fast_create(TextileArticle, name: 'test article 1', profile_id: profile.id, published_at: DateTime.current) + + block = DisplayContentBlock.new + block.sections = [{:value => 'abstract', :checked => true}] + block.nodes = [a1.id] + box = mock() + block.stubs(:box).returns(box) + box.stubs(:owner).returns(profile) + assert_nil a1.abstract + assert_nothing_raised do + render_block_content(block) + end + end + + should 'not escape body html of articles' do + profile = create_user('testuser').person + a1 = fast_create(TextileArticle, body: "Test
", name: 'test article 1', profile_id: profile.id, published_at: DateTime.current) + + block = DisplayContentBlock.new + block.sections = [{:value => 'body', :checked => true}] + block.nodes = [a1.id] + box = mock() + block.stubs(:box).returns(box) + box.stubs(:owner).returns(profile) + assert_tag_in_string render_block_content(block), tag: 'p', attributes: { class: 'test-article-body' } + end + + should 'not raise if body of article is nil' do + profile = create_user('testuser').person + a1 = fast_create(TextileArticle, name: 'test article 1', profile_id: profile.id, published_at: DateTime.current) + + block = DisplayContentBlock.new + block.sections = [{:value => 'abstract', :checked => true}] + block.nodes = [a1.id] + box = mock() + block.stubs(:box).returns(box) + box.stubs(:owner).returns(profile) + assert_nil a1.body + assert_nothing_raised do + render_block_content(block) + end + end + end diff --git a/plugins/display_content/views/blocks/display_content/_document.slim b/plugins/display_content/views/blocks/display_content/_document.slim index ec4c857..2a52eec 100644 --- a/plugins/display_content/views/blocks/display_content/_document.slim +++ b/plugins/display_content/views/blocks/display_content/_document.slim @@ -1,4 +1,4 @@ li - unless item.folder? || item.class == RssFeed = render partial: 'blocks/display_content/section', collection: block.sections, locals: { block: block, item: item } - = render partial: 'blocks/display_content/read_more', locals: { item: item, abstract_section: block.sections.bsearch { |section| section[:value] == 'abstract' }, block: block } \ No newline at end of file + = render partial: 'blocks/display_content/read_more', locals: { item: item, abstract_section: block.sections.bsearch { |section| section[:value] == 'abstract' }, block: block } diff --git a/plugins/display_content/views/blocks/display_content/_section.slim b/plugins/display_content/views/blocks/display_content/_section.slim index 4b16dec..a2bad45 100644 --- a/plugins/display_content/views/blocks/display_content/_section.slim +++ b/plugins/display_content/views/blocks/display_content/_section.slim @@ -8,10 +8,10 @@ = link_to(h(item.title), item.url) - when 'abstract' div class='lead' - = item.abstract + = (item.abstract || '').html_safe - when 'body' div class='body' - = item.body + = (item.body || '').html_safe - when 'image' - unless item.image || item.image.public_filename div class='image' -- libgit2 0.21.2