diff --git a/app/models/box.rb b/app/models/box.rb index fc09e1f..7a925bf 100644 --- a/app/models/box.rb +++ b/app/models/box.rb @@ -14,8 +14,8 @@ class Box < ActiveRecord::Base end def acceptable_blocks - blocks_classes = central? ? Box.acceptable_center_blocks + plugins.dispatch(:extra_blocks, :type => owner.class, :position => 1) : Box.acceptable_side_blocks + plugins.dispatch(:extra_blocks, :type => owner.class, :position => [2, 3]) - to_css_selector(blocks_classes) + blocks_classes = if central? then Box.acceptable_center_blocks + plugins.dispatch(:extra_blocks, :type => owner.class, :position => 1) else Box.acceptable_side_blocks + plugins.dispatch(:extra_blocks, :type => owner.class, :position => [2, 3]) end + to_css_selector blocks_classes end def central? diff --git a/test/unit/box_test.rb b/test/unit/box_test.rb index 8a8cf7b..deff6e1 100644 --- a/test/unit/box_test.rb +++ b/test/unit/box_test.rb @@ -18,67 +18,67 @@ class BoxTest < ActiveSupport::TestCase should 'list allowed blocks for center box' do blocks = Box.new.tap { |b| b.position = 1 }.acceptable_blocks - assert !blocks.include?('block') - assert !blocks.include?('disabled-enterprise-message-block') - assert !blocks.include?('featured-products-block') - assert !blocks.include?('products-block') - assert !blocks.include?('profile-info-block') - assert !blocks.include?('profile-list-block') - assert !blocks.include?('profile-search-block') - assert !blocks.include?('slideshow-block') - assert !blocks.include?('location-block') - - assert blocks.include?('article-block') - assert blocks.include?('blog-archives-block') - assert blocks.include?('categories-block') - assert blocks.include?('communities-block') - assert blocks.include?('enterprises-block') - assert blocks.include?('fans-block') - assert blocks.include?('favorite-enterprises-block') - assert blocks.include?('feed-reader-block') - assert blocks.include?('highlights-block') - assert blocks.include?('link-list-block') - assert blocks.include?('login-block') - assert blocks.include?('main-block') - assert blocks.include?('my-network-block') - assert blocks.include?('profile-image-block') - assert blocks.include?('raw-html-block') - assert blocks.include?('recent-documents-block') - assert blocks.include?('sellers-search-block') - assert blocks.include?('tags-block') + assert !blocks.include?('.block') + assert !blocks.include?('.disabled-enterprise-message-block') + assert !blocks.include?('.featured-products-block') + assert !blocks.include?('.products-block') + assert !blocks.include?('.profile-info-block') + assert !blocks.include?('.profile-list-block') + assert !blocks.include?('.profile-search-block') + assert !blocks.include?('.slideshow-block') + assert !blocks.include?('.location-block') + + assert blocks.include?('.article-block') + assert blocks.include?('.blog-archives-block') + assert blocks.include?('.categories-block') + assert blocks.include?('.communities-block') + assert blocks.include?('.enterprises-block') + assert blocks.include?('.fans-block') + assert blocks.include?('.favorite-enterprises-block') + assert blocks.include?('.feed-reader-block') + assert blocks.include?('.highlights-block') + assert blocks.include?('.link-list-block') + assert blocks.include?('.login-block') + assert blocks.include?('.main-block') + assert blocks.include?('.my-network-block') + assert blocks.include?('.profile-image-block') + assert blocks.include?('.raw-html-block') + assert blocks.include?('.recent-documents-block') + assert blocks.include?('.sellers-search-block') + assert blocks.include?('.tags-block') end should 'list allowed blocks for box at position 2' do blocks = Box.new.tap { |b| b.position = 2 }.acceptable_blocks - assert !blocks.include?('main-block') - assert !blocks.include?('block') - assert !blocks.include?('profile-list-block') - - assert blocks.include?('article-block') - assert blocks.include?('blog-archives-block') - assert blocks.include?('categories-block') - assert blocks.include?('communities-block') - assert blocks.include?('disabled-enterprise-message-block') - assert blocks.include?('enterprises-block') - assert blocks.include?('fans-block') - assert blocks.include?('favorite-enterprises-block') - assert blocks.include?('featured-products-block') - assert blocks.include?('feed-reader-block') - assert blocks.include?('highlights-block') - assert blocks.include?('link-list-block') - assert blocks.include?('location-block') - assert blocks.include?('login-block') - assert blocks.include?('my-network-block') - assert blocks.include?('products-block') - assert blocks.include?('profile-image-block') - assert blocks.include?('profile-info-block') - assert blocks.include?('profile-search-block') - assert blocks.include?('raw-html-block') - assert blocks.include?('recent-documents-block') - assert blocks.include?('sellers-search-block') - assert blocks.include?('slideshow-block') - assert blocks.include?('tags-block') + assert !blocks.include?('.main-block') + assert !blocks.include?('.block') + assert !blocks.include?('.profile-list-block') + + assert blocks.include?('.article-block') + assert blocks.include?('.blog-archives-block') + assert blocks.include?('.categories-block') + assert blocks.include?('.communities-block') + assert blocks.include?('.disabled-enterprise-message-block') + assert blocks.include?('.enterprises-block') + assert blocks.include?('.fans-block') + assert blocks.include?('.favorite-enterprises-block') + assert blocks.include?('.featured-products-block') + assert blocks.include?('.feed-reader-block') + assert blocks.include?('.highlights-block') + assert blocks.include?('.link-list-block') + assert blocks.include?('.location-block') + assert blocks.include?('.login-block') + assert blocks.include?('.my-network-block') + assert blocks.include?('.products-block') + assert blocks.include?('.profile-image-block') + assert blocks.include?('.profile-info-block') + assert blocks.include?('.profile-search-block') + assert blocks.include?('.raw-html-block') + assert blocks.include?('.recent-documents-block') + assert blocks.include?('.sellers-search-block') + assert blocks.include?('.slideshow-block') + assert blocks.include?('.tags-block') end should 'list plugin block as allowed for box at position 1' do -- libgit2 0.21.2