Commit 3f8af20484a57772d7243c8998d7a9f2656ddd1c

Authored by Victor Costa
1 parent 90f4f1c1

Consider disabled assets at category search

app/controllers/public/search_controller.rb
... ... @@ -45,14 +45,15 @@ class SearchController < PublicController
45 45 @order = []
46 46 @names = {}
47 47 limit = MULTIPLE_SEARCH_LIMIT
48   - [
49   - [ :people, _('People'), :recent_people ],
50   - [ :enterprises, _('Enterprises'), :recent_enterprises ],
51   - [ :products, _('Products'), :recent_products ],
52   - [ :events, _('Upcoming events'), :upcoming_events ],
53   - [ :communities, _('Communities'), :recent_communities ],
54   - [ :articles, _('Contents'), :recent_articles ]
55   - ].each do |asset, name, filter|
  48 + items = []
  49 + items << [ :people, _('People'), :recent_people ] if environment.disabled?('disable_asset_people')
  50 + items << [ :enterprises, _('Enterprises'), :recent_enterprises ] if environment.disabled?('disable_asset_enterprises')
  51 + items << [ :products, _('Products'), :recent_products ] if environment.disabled?('disable_asset_products')
  52 + items << [ :events, _('Upcoming events'), :upcoming_events ] if environment.disabled?('disable_asset_events')
  53 + items << [ :communities, _('Communities'), :recent_communities ] if environment.disabled?('disable_asset_communities')
  54 + items << [ :articles, _('Contents'), :recent_articles ] if environment.disabled?('disable_asset_articles')
  55 +
  56 + items.each do |asset, name, filter|
56 57 @order << asset
57 58 @searches[asset]= {:results => @category.send(filter, limit)}
58 59 raise "No total_entries for: #{asset}" unless @searches[asset][:results].respond_to?(:total_entries)
... ...
test/functional/search_controller_test.rb
... ... @@ -216,6 +216,20 @@ class SearchControllerTest &lt; ActionController::TestCase
216 216 assert_equal @category, assigns(:category)
217 217 end
218 218  
  219 + should 'display results for enabled assets' do
  220 + assets = ['people', 'enterprises', 'products', 'events', 'communities', 'articles']
  221 + get :category_index, :category_path => [ 'my-category' ]
  222 + assets.each { |asset| assert_select "div.search-results-#{asset}" }
  223 + end
  224 +
  225 + should 'not display results for disabled assets' do
  226 + assets = ['people', 'enterprises', 'products', 'events', 'communities', 'articles']
  227 + environment = Environment.default
  228 + assets.each { |asset| environment.enable("disable_asset_#{asset}") }
  229 + get :category_index, :category_path => [ 'my-category' ]
  230 + assets.each { |asset| assert_select "div.search-results-#{asset}", false }
  231 + end
  232 +
219 233 should 'not list "Search for ..." in category_index' do
220 234 get :category_index, :category_path => [ 'my-category' ]
221 235 assert_no_tag :content => /Search for ".*" in the whole site/
... ...