Commit a6d9e08e9cadae5e137ffb773179bf6564cafcc4

Authored by Fabio Teixeira
1 parent c5744e33

Fix search_controller broken tests

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
lib/ext/search_controller.rb
... ... @@ -3,29 +3,28 @@ require_dependency &#39;search_controller&#39;
3 3 class SearchController
4 4  
5 5 def communities
6   - @scope = visible_profiles(Community)
7   - full_text_search
8   - results = @searches[@asset][:results]
9   -
10   - results = results.each {|community| !community.software?}
  6 + results = filter_communities_list do |community|
  7 + !community.software?
  8 + end
  9 + results = results.paginate(:per_page => 24, :page => params[:page])
11 10 @searches[@asset] = {:results => results}
12 11 @search = results
13 12 end
14 13  
15 14 def software_infos
16 15 prepare_software_search_page
17   - @scope = visible_profiles(Community)
18   - full_text_search
19   - results = @searches[@asset][:results]
20   -
21   - results = results.select {|community| community if community.software?}
  16 + results = filter_software_infos_list
22 17 results = results.paginate(:per_page => @per_page, :page => params[:page])
23 18 @searches[@asset] = {:results => results}
24 19 @search = results
25   - @software_count = results.count
  20 + @software_count = filter_software_infos_list.count
  21 +
  22 +
26 23 render :layout=>false if request.xhr?
27 24 end
28 25  
  26 + protected
  27 +
29 28 def filter_communities_list
30 29 unfiltered_list = visible_profiles(Community)
31 30  
... ... @@ -51,8 +50,6 @@ class SearchController
51 50 sort_communities_list filtered_community_list
52 51 end
53 52  
54   - protected
55   -
56 53 def get_filter_category_ids
57 54 category_ids = []
58 55 unless params[:selected_categories_id].blank?
... ...
test/functional/search_controller_test.rb
... ... @@ -20,44 +20,57 @@ class SearchControllerTest &lt; ActionController::TestCase
20 20 @request.stubs(:ssl?).returns(:false)
21 21 @response = ActionController::TestResponse.new
22 22  
  23 + @licenses = [
  24 + LicenseInfo.create(:version => "GPL - 1"),
  25 + LicenseInfo.create(:version => "GPL - 2")
  26 + ]
  27 +
23 28 create_software_categories
  29 +
  30 + @softwares = []
  31 +
  32 + @softwares << create_software_info("Software One", :acronym => "SFO", :finality => "Help")
  33 + @softwares << create_software_info("Software Two", :acronym => "SFT", :finality => "Task")
  34 +
  35 + @softwares[0].community.categories << Category.first
  36 + @softwares[1].community.categories << Category.last
  37 +
  38 + @softwares[0].license_info = @licenses.first
  39 + @softwares[1].license_info = @licenses.last
  40 +
  41 + @softwares[0].save!
  42 + @softwares[1].save!
24 43 end
25 44  
26 45 should "communities searches don't have software" do
27   - community = create_community("New Community")
28   - software = create_software_info("New Software")
  46 + community = create_community("Community One")
29 47  
30   - get :communities, :query => "New"
  48 + get :communities, :query => "One"
31 49  
32 50 assert_includes assigns(:searches)[:communities][:results], community
33   - assert_not_includes assigns(:searches)[:communities][:results], software
  51 + assert_not_includes assigns(:searches)[:communities][:results], @softwares.first.community
34 52 end
35 53  
36 54 should "software_infos search don't have community" do
37   - community = create_community("New Community")
38   - software = create_software_info("New Software")
  55 + community = create_community("Community One")
39 56  
40   - software.license_info = LicenseInfo.create :version => "GPL - 1.0"
41   - software.save!
  57 + get :software_infos, :query => "One"
42 58  
43   - get :software_infos, :query => "New"
44   -
45   - assert_includes assigns(:searches)[:software_infos][:results], software.community
  59 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
46 60 assert_not_includes assigns(:searches)[:software_infos][:results], community
47 61 end
48 62  
49 63  
50   - should "Don't found template in communities search" do
51   - community = create_community("New Community")
52   - software = create_software_info("New Software")
53   - software.license_info = LicenseInfo.create(:version => "GPL")
54   - software.save!
  64 + should "Don't have template in communities search result" do
  65 + communities = []
  66 + communities << create_community("Community One")
  67 + communities << create_community("Community Two")
55 68  
56   - community_template = create_community("New Community Template")
  69 + community_template = create_community("Community Template")
57 70 community_template.is_template = true
58 71 community_template.save!
59 72  
60   - get :communities, :query => "New"
  73 + get :communities, :query => "Comm"
61 74  
62 75 assert_not_includes(
63 76 assigns(:searches)[:communities][:results],
... ... @@ -66,124 +79,79 @@ class SearchControllerTest &lt; ActionController::TestCase
66 79 end
67 80  
68 81 should "software_infos search by category" do
69   - software_one = create_software_info("Software One")
70   - software_two = create_software_info("Software Two")
71   -
72   - software_one.community.categories << Category.first
73   - software_two.community.categories << Category.last
74   -
75   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
76   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
77   -
78   - software_one.save!
79   - software_two.save!
80   -
81 82 get(
82 83 :software_infos,
83 84 :query => "",
84 85 :selected_categories_id => [Category.first.id]
85 86 )
86 87  
87   - assert_includes assigns(:searches)[:software_infos][:results], software_one.community
88   - assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community
  88 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  89 + assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
89 90 end
90 91  
91 92 should "software_infos search by programming language" do
92   - software_one = create_software_info("Software One")
93   - software_two = create_software_info("Software Two")
94   -
95   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
96   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
  93 + @softwares.first.software_languages << create_software_language("Python", "1.0")
  94 + @softwares.last.software_languages << create_software_language("Java", "8.1")
97 95  
98   - software_one.software_languages << create_software_language("Python", "1.0")
99   - software_two.software_languages << create_software_language("Java", "8.1")
100   -
101   - software_one.save!
102   - software_two.save!
  96 + @softwares.first.save!
  97 + @softwares.last.save!
103 98  
104 99 get(
105 100 :software_infos,
106 101 :query => "python",
107 102 )
108 103  
109   - assert_includes assigns(:searches)[:software_infos][:results], software_one.community
110   - assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community
  104 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  105 + assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
111 106 end
112 107  
113 108 should "software_infos search by database description" do
114   - software_one = create_software_info("Software One")
115   - software_two = create_software_info("Software Two")
116   -
117   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
118   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
119   -
120   - software_one.software_databases << create_software_database("MySQL", "1.0")
121   - software_two.software_databases << create_software_database("Postgrees", "8.1")
  109 + @softwares.first.software_databases << create_software_database("MySQL", "1.0")
  110 + @softwares.last.software_databases << create_software_database("Postgrees", "8.1")
122 111  
123   - software_one.save!
124   - software_two.save!
  112 + @softwares.first.save!
  113 + @softwares.last.save!
125 114  
126 115 get(
127 116 :software_infos,
128 117 :query => "mysql",
129 118 )
130 119  
131   - assert_includes assigns(:searches)[:software_infos][:results], software_one.community
132   - assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community
  120 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  121 + assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
133 122 end
134 123  
135 124 should "software_infos search by finality" do
136   - software_one = create_software_info("Software One", :finality => "Help")
137   - software_two = create_software_info("Software Two", :finality => "Task")
138   -
139   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
140   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
141   -
142   - software_one.save!
143   - software_two.save!
144   -
145 125 get(
146 126 :software_infos,
147 127 :query => "help",
148 128 )
149 129  
150   - assert_includes assigns(:searches)[:software_infos][:results], software_one.community
151   - assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community
  130 +
  131 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  132 + assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
152 133 end
153 134  
154 135 should "software_infos search by acronym" do
155   - software_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help")
156   - software_two = create_software_info("Software Two", :acronym => "SFT", :finality => "Task")
157   -
158   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
159   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
160   -
161   - software_one.save!
162   - software_two.save!
163   -
164 136 get(
165 137 :software_infos,
166 138 :query => "SFO",
167 139 )
168 140  
169   - assert_includes assigns(:searches)[:software_infos][:results], software_one.community
170   - assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community
  141 + assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community
  142 + assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community
171 143 end
172 144  
173 145 should "software_infos search by relevance" do
174   - software_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help")
175   - software_two = create_software_info("Java", :acronym => "SFT", :finality => "Task")
176   - software_three = create_software_info("Software Three", :acronym => "SFW", :finality => "Java")
  146 + @softwares << create_software_info("Software Three", :acronym => "SFW", :finality => "Java")
  147 + @softwares.last.license_info = LicenseInfo.create :version => "GPL - 3.0"
177 148  
178   - software_one.license_info = LicenseInfo.create :version => "GPL - 1.0"
179   - software_two.license_info = LicenseInfo.create :version => "GPL - 1.0"
180   - software_three.license_info = LicenseInfo.create :version => "GPL - 1.0"
181 149  
182   - software_one.software_languages << create_software_language("Java", "8.0")
  150 + @softwares.first.software_languages << create_software_language("Java", "8.0")
  151 + @softwares.first.save!
183 152  
184   - software_one.save!
185   - software_two.save!
186   - software_three.save!
  153 + @softwares[1].community.name = "Java"
  154 + @softwares[1].community.save!
187 155  
188 156 get(
189 157 :software_infos,
... ... @@ -191,9 +159,9 @@ class SearchControllerTest &lt; ActionController::TestCase
191 159 :query => "Java"
192 160 )
193 161  
194   - assert_equal assigns(:searches)[:software_infos][:results][0], software_two.community
195   - assert_equal assigns(:searches)[:software_infos][:results][1], software_three.community
196   - assert_equal assigns(:searches)[:software_infos][:results][2], software_one.community
  162 + assert_equal assigns(:searches)[:software_infos][:results][0], @softwares[1].community
  163 + assert_equal assigns(:searches)[:software_infos][:results][1], @softwares[2].community
  164 + assert_equal assigns(:searches)[:software_infos][:results][2], @softwares[0].community
197 165 end
198 166  
199 167 private
... ... @@ -241,5 +209,4 @@ class SearchControllerTest &lt; ActionController::TestCase
241 209 software_database
242 210 end
243 211  
244   -
245 212 end
... ...