From 5b613fa4bbb8612e292be4ee99eccb643e28c8dd Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Tue, 19 Apr 2016 10:54:11 -0300 Subject: [PATCH] Refactor ContextContentBlock#content_image --- plugins/context_content/lib/context_content_block_helper.rb | 11 +++++++++++ plugins/context_content/lib/context_content_plugin/context_content_block.rb | 13 ------------- plugins/context_content/test/unit/context_content_block_helper_test.rb | 27 +++++++++++++++++++++++++++ plugins/context_content/test/unit/context_content_block_test.rb | 21 --------------------- plugins/context_content/views/blocks/context_content.html.erb | 4 +++- 5 files changed, 41 insertions(+), 35 deletions(-) create mode 100644 plugins/context_content/lib/context_content_block_helper.rb create mode 100644 plugins/context_content/test/unit/context_content_block_helper_test.rb diff --git a/plugins/context_content/lib/context_content_block_helper.rb b/plugins/context_content/lib/context_content_block_helper.rb new file mode 100644 index 0000000..d00634e --- /dev/null +++ b/plugins/context_content/lib/context_content_block_helper.rb @@ -0,0 +1,11 @@ +module ContextContentBlockHelper + def content_image(content) + if content.image? + image_tag(content.public_filename(:thumb)) + else + extra_class = content.uploaded_file? ? "extension-#{content.extension}" : '' + klasses = [content.icon_name].flatten.map{|name| 'icon-'+name}.join(' ') + content_tag 'div', '', :class => "context-icon #{klasses} #{extra_class}" + end + end +end diff --git a/plugins/context_content/lib/context_content_plugin/context_content_block.rb b/plugins/context_content/lib/context_content_plugin/context_content_block.rb index 22a105b..154223a 100644 --- a/plugins/context_content/lib/context_content_plugin/context_content_block.rb +++ b/plugins/context_content/lib/context_content_plugin/context_content_block.rb @@ -43,19 +43,6 @@ class ContextContentPlugin::ContextContentBlock < Block settings[:types] = new_types.reject(&:blank?) end - def content_image(content) - block = self - proc do - if content.image? - image_tag(content.public_filename(:thumb)) - else - extra_class = content.uploaded_file? ? "extension-#{content.extension}" : '' - klasses = [content.icon_name].flatten.map{|name| 'icon-'+name}.join(' ') - content_tag 'div', '', :class => "context-icon #{klasses} #{extra_class}" - end - end - end - def contents(page, p=1) return @children unless @children.blank? if page diff --git a/plugins/context_content/test/unit/context_content_block_helper_test.rb b/plugins/context_content/test/unit/context_content_block_helper_test.rb new file mode 100644 index 0000000..a95d65b --- /dev/null +++ b/plugins/context_content/test/unit/context_content_block_helper_test.rb @@ -0,0 +1,27 @@ +require 'test_helper' + +class ContextContentBlockHelperTest < ActionView::TestCase + include ContextContentBlockHelper + + should 'display thumbnail for image content' do + content = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) + content = FilePresenter.for(content) + expects(:image_tag).once + content_image(content) + end + + should 'display div as content image for content that is not a image' do + content = fast_create(Folder) + content = FilePresenter.for(content) + expects(:content_tag).once + content_image(content) + end + + should 'display div with extension class for uploaded file that is not an image' do + content = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain')) + content = FilePresenter.for(content) + expects(:content_tag).with('div', '', :class => "context-icon icon-text icon-text-plain extension-txt").once + content_image(content) + end + +end diff --git a/plugins/context_content/test/unit/context_content_block_test.rb b/plugins/context_content/test/unit/context_content_block_test.rb index 5d7736a..4c585f2 100644 --- a/plugins/context_content/test/unit/context_content_block_test.rb +++ b/plugins/context_content/test/unit/context_content_block_test.rb @@ -134,27 +134,6 @@ class ContextContentBlockTest < ActiveSupport::TestCase assert_equal [UploadedFile, Event, TinyMceArticle, TextileArticle, RawHTMLArticle, Folder, Blog, Forum, Gallery, RssFeed, SomePluginContent], @block.available_content_types end - should 'display thumbnail for image content' do - content = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) - content = FilePresenter.for(content) - expects(:image_tag).once - instance_eval(&@block.content_image(content)) - end - - should 'display div as content image for content that is not a image' do - content = fast_create(Folder) - content = FilePresenter.for(content) - expects(:content_tag).once - instance_eval(&@block.content_image(content)) - end - - should 'display div with extension class for uploaded file that is not a image' do - content = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain')) - content = FilePresenter.for(content) - expects(:content_tag).with('div', '', :class => "context-icon icon-text icon-text-plain extension-txt").once - instance_eval(&@block.content_image(content)) - end - should 'do not display pagination links if page is nil' do @page = nil assert_equal '', instance_eval(&@block.footer) diff --git a/plugins/context_content/views/blocks/context_content.html.erb b/plugins/context_content/views/blocks/context_content.html.erb index 5d36c8c..6b86435 100644 --- a/plugins/context_content/views/blocks/context_content.html.erb +++ b/plugins/context_content/views/blocks/context_content.html.erb @@ -1,3 +1,5 @@ +<% extend ContextContentBlockHelper %> + <% if block.use_parent_title %> <%= block_title(parent_title, block.subtitle) %> <% else %> @@ -10,7 +12,7 @@
- <%= instance_eval(&block.content_image(content)) if block.show_image %> + <%= content_image(content) if block.show_image %>
<% if block.show_name %>
<%= content.name %>
-- libgit2 0.21.2