Commit 92d6d31a09cafc77f0ced5b946a7f72807cb6dbf

Authored by Luciano Prestes
1 parent a6d54e06

Update software_infos by categories

- Search softwares with one or more selected categories

Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
@@ -105,12 +105,7 @@ class SearchController @@ -105,12 +105,7 @@ class SearchController
105 105
106 unless category_ids.empty? 106 unless category_ids.empty?
107 filtered_software_list.select! do |software| 107 filtered_software_list.select! do |software|
108 - if software.nil? || software.community.nil?  
109 - false  
110 - else  
111 - result_ids = (software.community.category_ids & category_ids).sort  
112 - result_ids == category_ids.sort  
113 - end 108 + !(software.community.category_ids & category_ids).empty?
114 end 109 end
115 end 110 end
116 111
src/noosfero-spb/software_communities/test/functional/search_controller_test.rb
@@ -94,6 +94,22 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -94,6 +94,22 @@ class SearchControllerTest &lt; ActionController::TestCase
94 assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community 94 assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
95 end 95 end
96 96
  97 + should "software_infos search softwares with one or more selected categories" do
  98 + software = create_software_info("Software Two", :acronym => "SFT", :finality => "Task")
  99 + software.save!
  100 +
  101 + get(
  102 + :software_infos,
  103 + :query => "",
  104 + :selected_categories_id => [Category.all[0], Category.all[1]]
  105 + )
  106 +
  107 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  108 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
  109 + assert_not_includes assigns(:searches)[:software_infos][:results], software.community
  110 + end
  111 +
  112 +
97 should "software_infos search by programming language" do 113 should "software_infos search by programming language" do
98 @softwares.first.software_languages << create_software_language("Python", "1.0") 114 @softwares.first.software_languages << create_software_language("Python", "1.0")
99 @softwares.last.software_languages << create_software_language("Java", "8.1") 115 @softwares.last.software_languages << create_software_language("Java", "8.1")