Commit 3f8af20484a57772d7243c8998d7a9f2656ddd1c
1 parent
90f4f1c1
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Consider disabled assets at category search
Showing
2 changed files
with
23 additions
and
8 deletions
Show diff stats
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 < 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/ | ... | ... |