Commit 4e00577f5a104c6ff46eeba0a82dbd9064f5c162

Authored by Rafael Martins
1 parent 4111d3d5

Changes on SearchControllerTest to adapt to new searching method

app/controllers/public/search_controller.rb
@@ -293,7 +293,7 @@ class SearchController < PublicController @@ -293,7 +293,7 @@ class SearchController < PublicController
293 solr_options.merge! asset_class.facets_find_options(params[:facet]) 293 solr_options.merge! asset_class.facets_find_options(params[:facet])
294 solr_options[:all_facets] = true 294 solr_options[:all_facets] = true
295 solr_options[:limit] = 0 if @facets_only 295 solr_options[:limit] = 0 if @facets_only
296 - solr_options[:facets][:browse] << asset_class.facet_category_query.call(@category) if @category and asset_class.facet_category_query 296 + #solr_options[:facets][:browse] << asset_class.facet_category_query.call(@category) if @category and asset_class.facet_category_query
297 end 297 end
298 solr_options[:order] = params[:order_by] if params[:order_by] 298 solr_options[:order] = params[:order_by] if params[:order_by]
299 solr_options[:filter_queries] ||= [] 299 solr_options[:filter_queries] ||= []
test/functional/search_controller_test.rb
@@ -14,7 +14,13 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -14,7 +14,13 @@ class SearchControllerTest &lt; ActionController::TestCase
14 14
15 @category = Category.create!(:name => 'my category', :environment => Environment.default) 15 @category = Category.create!(:name => 'my category', :environment => Environment.default)
16 16
17 - domain = Environment.default.domains.first 17 + env = Environment.default
  18 + domain = env.domains.first
  19 + if !domain
  20 + domain = Domain.create!(:name => "localhost")
  21 + env.domains = [domain]
  22 + env.save!
  23 + end
18 domain.google_maps_key = 'ENVIRONMENT_KEY' 24 domain.google_maps_key = 'ENVIRONMENT_KEY'
19 domain.save! 25 domain.save!
20 26
@@ -68,20 +74,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -68,20 +74,6 @@ class SearchControllerTest &lt; ActionController::TestCase
68 assert_includes assigns(:results)[:articles], art 74 assert_includes assigns(:results)[:articles], art
69 end 75 end
70 76
71 - should 'search for articles in a specific category' do  
72 - person = fast_create(Person)  
73 -  
74 - # in category  
75 - art1 = create_article_with_optional_category('an article to be found', person, @category)  
76 - # not in category  
77 - art2 = create_article_with_optional_category('another article to be found', person)  
78 -  
79 - get :index, :category_path => [ 'my-category' ], :query => 'article found', :find_in => [ 'articles' ]  
80 -  
81 - assert_includes assigns(:results)[:articles], art1  
82 - assert_not_includes assigns(:results)[:articles], art2  
83 - end  
84 -  
85 # 'assets' outside any category 77 # 'assets' outside any category
86 should 'list articles in general' do 78 should 'list articles in general' do
87 person = fast_create(Person) 79 person = fast_create(Person)
@@ -95,42 +87,12 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -95,42 +87,12 @@ class SearchControllerTest &lt; ActionController::TestCase
95 assert_includes assigns(:results)[:articles], art2 87 assert_includes assigns(:results)[:articles], art2
96 end 88 end
97 89
98 - # 'assets' inside a category  
99 - should 'list articles in a specific category' do  
100 - person = fast_create(Person)  
101 -  
102 - # in category  
103 - art1 = create_article_with_optional_category('one article', person, @category)  
104 - art2 = create_article_with_optional_category('two article', person, @category)  
105 - # not in category  
106 - art3 = create_article_with_optional_category('another article', person)  
107 -  
108 - get :articles, :category_path => ['my-category']  
109 -  
110 - assert_includes assigns(:results)[:articles], art1  
111 - assert_includes assigns(:results)[:articles], art2  
112 - assert_not_includes assigns(:results)[:articles], art3  
113 - end  
114 -  
115 should 'find enterprises' do 90 should 'find enterprises' do
116 ent = create_profile_with_optional_category(Enterprise, 'teste') 91 ent = create_profile_with_optional_category(Enterprise, 'teste')
117 get 'index', :query => 'teste', :find_in => [ 'enterprises' ] 92 get 'index', :query => 'teste', :find_in => [ 'enterprises' ]
118 assert_includes assigns(:results)[:enterprises], ent 93 assert_includes assigns(:results)[:enterprises], ent
119 end 94 end
120 95
121 - should 'find enterprises in a specified category' do  
122 -  
123 - # in category  
124 - ent1 = create_profile_with_optional_category(Enterprise, 'testing enterprise 1', @category)  
125 - # not in category  
126 - ent2 = create_profile_with_optional_category(Enterprise, 'testing enterprise 2')  
127 -  
128 - get :index, :category_path => [ 'my-category' ], :query => 'testing', :find_in => [ 'enterprises' ]  
129 -  
130 - assert_includes assigns(:results)[:enterprises], ent1  
131 - assert_not_includes assigns(:results)[:enterprises], ent2  
132 - end  
133 -  
134 should 'list enterprises in general' do 96 should 'list enterprises in general' do
135 ent1 = create_profile_with_optional_category(Enterprise, 'teste 1') 97 ent1 = create_profile_with_optional_category(Enterprise, 'teste 1')
136 ent2 = create_profile_with_optional_category(Enterprise, 'teste 2') 98 ent2 = create_profile_with_optional_category(Enterprise, 'teste 2')
@@ -140,32 +102,12 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -140,32 +102,12 @@ class SearchControllerTest &lt; ActionController::TestCase
140 assert_includes assigns(:results)[:enterprises], ent2 102 assert_includes assigns(:results)[:enterprises], ent2
141 end 103 end
142 104
143 - # 'assets' menu inside a category  
144 - should 'list enterprises in a specified category' do  
145 - # in category  
146 - ent1 = create_profile_with_optional_category(Enterprise, 'teste 1', @category)  
147 - # not in category  
148 - ent2 = create_profile_with_optional_category(Enterprise, 'teste 2')  
149 -  
150 - get :enterprises, :category_path => [ 'my-category' ]  
151 - assert_includes assigns(:results)[:enterprises], ent1  
152 - assert_not_includes assigns(:results)[:enterprises], ent2  
153 - end  
154 -  
155 should 'find people' do 105 should 'find people' do
156 p1 = create_user('people_1').person; p1.name = 'a beautiful person'; p1.save! 106 p1 = create_user('people_1').person; p1.name = 'a beautiful person'; p1.save!
157 get :index, :query => 'beautiful', :find_in => [ 'people' ] 107 get :index, :query => 'beautiful', :find_in => [ 'people' ]
158 assert_includes assigns(:results)[:people], p1 108 assert_includes assigns(:results)[:people], p1
159 end 109 end
160 110
161 - should 'find people in a specific category' do  
162 - p1 = create_user('people_1').person; p1.name = 'a beautiful person'; p1.add_category @category; p1.save!  
163 - p2 = create_user('people_2').person; p2.name = 'another beautiful person'; p2.save!  
164 - get :index, :category_path => [ 'my-category' ], :query => 'beautiful', :find_in => [ 'people' ]  
165 - assert_includes assigns(:results)[:people], p1  
166 - assert_not_includes assigns(:results)[:people], p2  
167 - end  
168 -  
169 # 'assets' menu outside any category 111 # 'assets' menu outside any category
170 should 'list people in general' do 112 should 'list people in general' do
171 Profile.delete_all 113 Profile.delete_all
@@ -178,34 +120,12 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -178,34 +120,12 @@ class SearchControllerTest &lt; ActionController::TestCase
178 assert_equivalent [p2,p1], assigns(:results)[:people] 120 assert_equivalent [p2,p1], assigns(:results)[:people]
179 end 121 end
180 122
181 - # 'assets' menu inside a category  
182 - should 'list people in a specified category' do  
183 - Profile.delete_all  
184 -  
185 - # in category  
186 - p1 = create_user('test1').person; p1.add_category @category  
187 -  
188 - # not in category  
189 - p2 = create_user('test2').person  
190 -  
191 - get :people, :category_path => [ 'my-category' ]  
192 - assert_equal [p1], assigns(:results)[:people]  
193 - end  
194 -  
195 should 'find communities' do 123 should 'find communities' do
196 c1 = create_profile_with_optional_category(Community, 'a beautiful community') 124 c1 = create_profile_with_optional_category(Community, 'a beautiful community')
197 get :index, :query => 'beautiful', :find_in => [ 'communities' ] 125 get :index, :query => 'beautiful', :find_in => [ 'communities' ]
198 assert_includes assigns(:results)[:communities], c1 126 assert_includes assigns(:results)[:communities], c1
199 end 127 end
200 128
201 - should 'find communities in a specified category' do  
202 - c1 = create_profile_with_optional_category(Community, 'a beautiful community', @category)  
203 - c2 = create_profile_with_optional_category(Community, 'another beautiful community')  
204 - get :index, :category_path => [ 'my-category' ], :query => 'beautiful', :find_in => [ 'communities' ]  
205 - assert_includes assigns(:results)[:communities], c1  
206 - assert_not_includes assigns(:results)[:communities], c2  
207 - end  
208 -  
209 # 'assets' menu outside any category 129 # 'assets' menu outside any category
210 should 'list communities in general' do 130 should 'list communities in general' do
211 c1 = create_profile_with_optional_category(Community, 'a beautiful community') 131 c1 = create_profile_with_optional_category(Community, 'a beautiful community')
@@ -215,23 +135,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -215,23 +135,6 @@ class SearchControllerTest &lt; ActionController::TestCase
215 assert_equivalent [c2, c1], assigns(:results)[:communities] 135 assert_equivalent [c2, c1], assigns(:results)[:communities]
216 end 136 end
217 137
218 - # 'assets' menu  
219 - should 'list communities in a specified category' do  
220 -  
221 - # in category  
222 - c1 = create_profile_with_optional_category(Community, 'a beautiful community', @category)  
223 -  
224 - # not in category  
225 - c2 = create_profile_with_optional_category(Community, 'another beautiful community')  
226 -  
227 - # in category  
228 - c3 = create_profile_with_optional_category(Community, 'yet another beautiful community', @category)  
229 -  
230 - get :communities, :category_path => [ 'my-category' ]  
231 -  
232 - assert_equivalent [c3, c1], assigns(:results)[:communities]  
233 - end  
234 -  
235 should 'find products' do 138 should 'find products' do
236 ent = create_profile_with_optional_category(Enterprise, 'teste') 139 ent = create_profile_with_optional_category(Enterprise, 'teste')
237 prod = ent.products.create!(:name => 'a beautiful product', :product_category => @product_category) 140 prod = ent.products.create!(:name => 'a beautiful product', :product_category => @product_category)
@@ -239,16 +142,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -239,16 +142,6 @@ class SearchControllerTest &lt; ActionController::TestCase
239 assert_includes assigns(:results)[:products], prod 142 assert_includes assigns(:results)[:products], prod
240 end 143 end
241 144
242 - should 'find products in a specific category' do  
243 - ent1 = create_profile_with_optional_category(Enterprise, 'teste1', @category)  
244 - ent2 = create_profile_with_optional_category(Enterprise, 'teste2')  
245 - prod1 = ent1.products.create!(:name => 'a beautiful product', :product_category => @product_category)  
246 - prod2 = ent2.products.create!(:name => 'another beautiful product', :product_category => @product_category)  
247 - get :index, :category_path => @category.path.split('/'), :query => 'beautiful', :find_in => ['products']  
248 - assert_includes assigns(:results)[:products], prod1  
249 - assert_not_includes assigns(:results)[:products], prod2  
250 - end  
251 -  
252 # 'assets' menu outside any category 145 # 'assets' menu outside any category
253 should 'list products in general' do 146 should 'list products in general' do
254 Profile.delete_all 147 Profile.delete_all
@@ -262,23 +155,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -262,23 +155,6 @@ class SearchControllerTest &lt; ActionController::TestCase
262 assert_equivalent [prod2, prod1], assigns(:results)[:products] 155 assert_equivalent [prod2, prod1], assigns(:results)[:products]
263 end 156 end
264 157
265 - # 'assets' menu inside a category  
266 - should 'list products in a specific category' do  
267 - Profile.delete_all  
268 -  
269 - # in category  
270 - ent1 = create_profile_with_optional_category(Enterprise, 'teste1', @category)  
271 - prod1 = ent1.products.create!(:name => 'a beautiful product', :product_category => @product_category)  
272 -  
273 - # not in category  
274 - ent2 = create_profile_with_optional_category(Enterprise, 'teste2')  
275 - prod2 = ent2.products.create!(:name => 'another beautiful product', :product_category => @product_category)  
276 -  
277 - get :products, :category_path => [ 'my-category' ]  
278 -  
279 - assert_equal [prod1], assigns(:results)[:products]  
280 - end  
281 -  
282 should 'include extra content supplied by plugins on product asset' do 158 should 'include extra content supplied by plugins on product asset' do
283 class Plugin1 < Noosfero::Plugin 159 class Plugin1 < Noosfero::Plugin
284 def asset_product_extras(product, enterprise) 160 def asset_product_extras(product, enterprise)
@@ -293,13 +169,13 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -293,13 +169,13 @@ class SearchControllerTest &lt; ActionController::TestCase
293 end 169 end
294 170
295 enterprise = fast_create(Enterprise) 171 enterprise = fast_create(Enterprise)
296 - product = fast_create(Product, :enterprise_id => enterprise.id) 172 + product = fast_create(Product, :enterprise_id => enterprise.id, :name => "produto1")
297 173
298 e = Environment.default 174 e = Environment.default
299 e.enable_plugin(Plugin1.name) 175 e.enable_plugin(Plugin1.name)
300 e.enable_plugin(Plugin2.name) 176 e.enable_plugin(Plugin2.name)
301 177
302 - get :assets, :asset => 'products' 178 + get :assets, {:asset => 'products', :query => 'produto1'}
303 179
304 assert_tag :tag => 'span', :content => 'This is Plugin1 speaking!', :attributes => {:id => 'plugin1'} 180 assert_tag :tag => 'span', :content => 'This is Plugin1 speaking!', :attributes => {:id => 'plugin1'}
305 assert_tag :tag => 'span', :content => 'This is Plugin2 speaking!', :attributes => {:id => 'plugin2'} 181 assert_tag :tag => 'span', :content => 'This is Plugin2 speaking!', :attributes => {:id => 'plugin2'}
@@ -317,13 +193,13 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -317,13 +193,13 @@ class SearchControllerTest &lt; ActionController::TestCase
317 end 193 end
318 end 194 end
319 enterprise = fast_create(Enterprise) 195 enterprise = fast_create(Enterprise)
320 - product = fast_create(Product, :enterprise_id => enterprise.id) 196 + product = fast_create(Product, :enterprise_id => enterprise.id, :name => "produto1")
321 197
322 environment = Environment.default 198 environment = Environment.default
323 environment.enable_plugin(Plugin1.name) 199 environment.enable_plugin(Plugin1.name)
324 environment.enable_plugin(Plugin2.name) 200 environment.enable_plugin(Plugin2.name)
325 201
326 - get :products 202 + get :products, :query => "produto1"
327 203
328 assert_tag :tag => 'li', :content => /Property1/, :child => {:tag => 'a', :attributes => {:href => '/plugin1'}, :content => product.name} 204 assert_tag :tag => 'li', :content => /Property1/, :child => {:tag => 'a', :attributes => {:href => '/plugin1'}, :content => product.name}
329 assert_tag :tag => 'li', :content => /Property2/, :child => {:tag => 'a', :attributes => {:href => '/plugin2'}, :content => product.name} 205 assert_tag :tag => 'li', :content => /Property2/, :child => {:tag => 'a', :attributes => {:href => '/plugin2'}, :content => product.name}
@@ -339,173 +215,16 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -339,173 +215,16 @@ class SearchControllerTest &lt; ActionController::TestCase
339 assert_equal 1, assigns(:results)[:enterprises].size 215 assert_equal 1, assigns(:results)[:enterprises].size
340 end 216 end
341 217
342 - should 'display search results' do  
343 - ent = create_profile_with_optional_category(Enterprise, 'display enterprise')  
344 - product = ent.products.create!(:name => 'display product', :product_category => @product_category)  
345 - person = create_user('displayperson').person; person.name = 'display person'; person.save!  
346 - article = person.articles.create!(:name => 'display article')  
347 - event = Event.new(:name => 'display event', :start_date => Date.today); event.profile = person; event.save!  
348 - comment = article.comments.create!(:title => 'display comment', :body => '...', :author => person)  
349 - community = create_profile_with_optional_category(Community, 'display community')  
350 -  
351 - get :index, :query => 'display'  
352 -  
353 - names = {  
354 - :articles => ['Articles', article],  
355 - :enterprises => ['Enterprises', ent],  
356 - :communities => ['Communities', community],  
357 - :products => ['Products', product],  
358 - :events => ['Events', event],  
359 - }  
360 - names.each do |thing, pair|  
361 - description, object = pair  
362 - assert_tag :tag => 'div', :attributes => { :class => /search-results-#{thing}/ }, :descendant => { :tag => 'h3', :content => Regexp.new(description) }  
363 - assert_tag :tag => 'a', :content => object.respond_to?(:short_name) ? object.short_name : object.name  
364 - end  
365 -  
366 - # display only first name on people listing  
367 - assert_tag :tag => 'div', :attributes => { :class => /search-results-people/ }, :descendant => { :tag => 'h3', :content => /People/ }  
368 - end  
369 -  
370 - should 'present options of where to search' do  
371 - get :popup  
372 - names = {  
373 - :articles => 'Articles',  
374 - :people => 'People',  
375 - :enterprises => 'Enterprises',  
376 - :communities => 'Communities',  
377 - :products => 'Products',  
378 - :events => 'Events',  
379 - }  
380 - names.each do |thing,description|  
381 - assert_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => "find_in[]", :value => thing.to_s, :checked => 'checked' }  
382 - assert_tag :tag => 'label', :content => description  
383 - end  
384 - end  
385 -  
386 - should 'not display option to choose where to search when not inside filter' do  
387 - get :popup  
388 - assert_no_tag :tag => 'input', :attributes => { :type => 'radio', :name => 'search_whole_site', :value => 'yes' }  
389 - end  
390 -  
391 - should 'display option to choose searching in whole site or in current category' do  
392 - parent = Category.create!(:name => 'cat', :environment => Environment.default)  
393 - Category.create!(:name => 'sub', :environment => Environment.default, :parent => parent)  
394 -  
395 - get :popup, :category_path => [ 'cat', 'sub']  
396 - assert_tag :tag => 'input', :attributes => { :type => 'submit', :name => 'search_whole_site_yes' }  
397 - assert_tag :tag => 'input', :attributes => { :type => 'submit', :name => 'search_whole_site_no' }  
398 - end  
399 -  
400 - should 'display option to search within a given point and distance' do  
401 - state = State.create!(:name => "Bahia", :environment => Environment.default)  
402 - get :popup  
403 -  
404 - assert_tag :tag => 'select', :attributes => {:name => 'radius'}  
405 - assert_tag :tag => 'select', :attributes => {:name => 'state'}  
406 - assert_tag :tag => 'select', :attributes => {:name => 'city'}  
407 - end  
408 -  
409 - should 'search in whole site when told so' do  
410 - parent = Category.create!(:name => 'randomcat', :environment => Environment.default)  
411 - Category.create!(:name => 'randomchild', :environment => Environment.default, :parent => parent)  
412 -  
413 - get :index, :category_path => [ 'randomcat', 'randomchild' ], :query => 'some random query', :search_whole_site => 'yes'  
414 -  
415 - # search_whole_site must be removed to precent a infinite redirect loop  
416 - assert_redirected_to :controller.to_s => 'search', :action.to_s => 'index', :category_path.to_s => [], :query.to_s => 'some random query', :search_whole_site.to_s => nil, :search_whole_site_yes.to_s => nil  
417 - end  
418 -  
419 - should 'submit form to root when not inside a filter' do  
420 - get :popup  
421 - assert_tag :tag => 'form', :attributes => { :action => '/search' }  
422 - end  
423 -  
424 - should 'submit form to category path when inside a filter' do  
425 - get :popup, :category_path => Category.create!(:name => 'mycat', :environment => Environment.default).explode_path  
426 - assert_tag :tag => 'form', :attributes => { :action => '/search/index/mycat' }  
427 - end  
428 -  
429 - should 'use GET method to search' do  
430 - get :popup  
431 - assert_tag :tag => 'form' , :attributes => { :method => 'get' }  
432 - end  
433 -  
434 should 'display a given category' do 218 should 'display a given category' do
435 get :category_index, :category_path => [ 'my-category' ] 219 get :category_index, :category_path => [ 'my-category' ]
436 assert_equal @category, assigns(:category) 220 assert_equal @category, assigns(:category)
437 end 221 end
438 222
439 - should 'expose category in a method' do  
440 - get :category_index, :category_path => [ 'my-category' ]  
441 - assert_same assigns(:category), @controller.category  
442 - end  
443 -  
444 - should 'list recent articles in the category' do  
445 - recent = []  
446 - finder = CategoryFinder.new(@category)  
447 - finder.expects(:recent).with(any_parameters).at_least_once  
448 - finder.expects(:recent).with('text_articles', anything).returns(recent)  
449 - CategoryFinder.stubs(:new).with(@category).returns(finder)  
450 -  
451 - get :category_index, :category_path => [ 'my-category' ]  
452 - assert_same recent, assigns(:results)[:articles]  
453 - end  
454 -  
455 - should 'list most commented articles in the category' do  
456 - most_commented = []  
457 - finder = CategoryFinder.new(@category)  
458 - finder.expects(:most_commented_articles).returns(most_commented)  
459 - CategoryFinder.stubs(:new).with(@category).returns(finder)  
460 -  
461 - get :category_index, :category_path => [ 'my-category' ]  
462 - assert_same most_commented, assigns(:results)[:most_commented_articles]  
463 - end  
464 -  
465 - should 'list recently registered people in the category' do  
466 - recent_people = []  
467 - finder = CategoryFinder.new(@category)  
468 - finder.expects(:recent).with(any_parameters).at_least_once  
469 - finder.expects(:recent).with('people', kind_of(Integer)).returns(recent_people)  
470 - CategoryFinder.stubs(:new).with(@category).returns(finder)  
471 -  
472 - get :category_index, :category_path => [ 'my-category' ]  
473 - assert_same recent_people, assigns(:results)[:people]  
474 - end  
475 -  
476 - should 'list recently registered communities in the category' do  
477 - recent_communities = []  
478 - finder = CategoryFinder.new(@category)  
479 - finder.expects(:recent).with(any_parameters).at_least_once  
480 - finder.expects(:recent).with('communities', anything).returns(recent_communities)  
481 - CategoryFinder.stubs(:new).with(@category).returns(finder)  
482 -  
483 - get :category_index, :category_path => [ 'my-category' ]  
484 - assert_same recent_communities, assigns(:results)[:communities]  
485 - end  
486 -  
487 - should 'list recently registered enterprises in the category' do  
488 - recent_enterptises = []  
489 - finder = CategoryFinder.new(@category)  
490 - finder.expects(:recent).with(any_parameters).at_least_once  
491 - finder.expects(:recent).with('enterprises', anything).returns(recent_enterptises)  
492 - CategoryFinder.stubs(:new).with(@category).returns(finder)  
493 -  
494 - get :category_index, :category_path => [ 'my-category' ]  
495 - assert_same recent_enterptises, assigns(:results)[:enterprises]  
496 - end  
497 -  
498 should 'not list "Search for ..." in category_index' do 223 should 'not list "Search for ..." in category_index' do
499 get :category_index, :category_path => [ 'my-category' ] 224 get :category_index, :category_path => [ 'my-category' ]
500 assert_no_tag :content => /Search for ".*" in the whole site/ 225 assert_no_tag :content => /Search for ".*" in the whole site/
501 end 226 end
502 227
503 - # SECURITY  
504 - should 'not allow unrecognized assets' do  
505 - get :unexisting_asset  
506 - assert_response 403  
507 - end  
508 -  
509 should 'not use design blocks' do 228 should 'not use design blocks' do
510 get :index 229 get :index
511 assert_no_tag :tag => 'div', :attributes => { :id => 'boxes', :class => 'boxes' } 230 assert_no_tag :tag => 'div', :attributes => { :id => 'boxes', :class => 'boxes' }
@@ -527,15 +246,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -527,15 +246,6 @@ class SearchControllerTest &lt; ActionController::TestCase
527 } 246 }
528 end 247 end
529 248
530 - should 'display only category name in "search results for ..." title' do  
531 - parent = Category.create!(:name => 'Parent Category', :environment => Environment.default)  
532 - child = Category.create!(:name => "Child Category", :environment => Environment.default, :parent => parent)  
533 -  
534 - get :index, :category_path => [ 'parent-category', 'child-category' ], :query => 'a sample search'  
535 - assert_tag :tag => 'h2', :content => /Searched for 'a sample search'/  
536 - assert_tag :tag => 'h2', :content => /In category Child Category/  
537 - end  
538 -  
539 should 'search in category hierachy' do 249 should 'search in category hierachy' do
540 parent = Category.create!(:name => 'Parent Category', :environment => Environment.default) 250 parent = Category.create!(:name => 'Parent Category', :environment => Environment.default)
541 child = Category.create!(:name => 'Child Category', :environment => Environment.default, :parent => parent) 251 child = Category.create!(:name => 'Child Category', :environment => Environment.default, :parent => parent)
@@ -547,15 +257,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -547,15 +257,6 @@ class SearchControllerTest &lt; ActionController::TestCase
547 assert_includes assigns(:results)[:people], p 257 assert_includes assigns(:results)[:people], p
548 end 258 end
549 259
550 - # FIXME how do test link_to_remote?  
551 - should 'keep asset selection for new searches' do  
552 - get :index, :query => 'a sample query', :find_in => [ 'people', 'communities' ]  
553 - assert_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'people', :checked => 'checked' }  
554 - assert_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'communities', :checked => 'checked' }  
555 - assert_no_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'enterprises', :checked => 'checked' }  
556 - assert_no_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'products', :checked => 'checked' }  
557 - end  
558 -  
559 should 'find enterprise by product category' do 260 should 'find enterprise by product category' do
560 ent1 = create_profile_with_optional_category(Enterprise, 'test1') 261 ent1 = create_profile_with_optional_category(Enterprise, 'test1')
561 prod_cat = ProductCategory.create!(:name => 'pctest', :environment => Environment.default) 262 prod_cat = ProductCategory.create!(:name => 'pctest', :environment => Environment.default)
@@ -589,57 +290,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -589,57 +290,6 @@ class SearchControllerTest &lt; ActionController::TestCase
589 assert_includes assigns(:results)[:events], ev 290 assert_includes assigns(:results)[:events], ev
590 end 291 end
591 292
592 - should 'search for events in a specific category' do  
593 - person = create_user('teste').person  
594 -  
595 - # in category  
596 - ev1 = create_event(person, :name => 'an event to be found')  
597 - ev1.add_category @category  
598 - ev1.save!  
599 -  
600 - # not in category  
601 - ev2 = create_event(person, :name => 'another event to be found')  
602 - ev2.save!  
603 -  
604 - get :index, :category_path => [ 'my-category' ], :query => 'event found', :find_in => [ 'events' ]  
605 -  
606 - assert_includes assigns(:results)[:events], ev1  
607 - assert_not_includes assigns(:results)[:events], ev2  
608 - end  
609 -  
610 - # 'assets' outside any category  
611 - should 'list events in general' do  
612 - person = create_user('testuser').person  
613 - person2 = create_user('anotheruser').person  
614 -  
615 - ev1 = create_event(person, :name => 'one event', :category_ids => [@category.id])  
616 -  
617 - ev2 = create_event(person2, :name => 'two event', :category_ids => [@category.id])  
618 -  
619 - get :events  
620 -  
621 - assert_includes assigns(:results)[:events], ev1  
622 - assert_includes assigns(:results)[:events], ev2  
623 - end  
624 -  
625 - # 'assets' inside a category  
626 - should 'list events in a specific category' do  
627 - person = create_user('testuser').person  
628 -  
629 - # in category  
630 - ev1 = create_event(person, :name => 'one event', :category_ids => [@category.id])  
631 - ev2 = create_event(person, :name => 'other event', :category_ids => [@category.id])  
632 -  
633 - # not in category  
634 - ev3 = create_event(person, :name => 'another event')  
635 -  
636 - get :events, :category_path => ['my-category']  
637 -  
638 - assert_includes assigns(:results)[:events], ev1  
639 - assert_includes assigns(:results)[:events], ev2  
640 - assert_not_includes assigns(:results)[:events], ev3  
641 - end  
642 -  
643 should 'list events for a given month' do 293 should 'list events for a given month' do
644 person = create_user('testuser').person 294 person = create_user('testuser').person
645 295
@@ -651,59 +301,13 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -651,59 +301,13 @@ class SearchControllerTest &lt; ActionController::TestCase
651 assert_equal [ 'upcoming event 1' ], assigns(:results)[:events].map(&:name) 301 assert_equal [ 'upcoming event 1' ], assigns(:results)[:events].map(&:name)
652 end 302 end
653 303
654 - should 'list events for a given month in a specific category' do  
655 - person = create_user('testuser').person  
656 -  
657 - create_event(person, :name => 'upcoming event 1', :category_ids => [@category.id], :start_date => Date.new(2008, 1, 25))  
658 - create_event(person, :name => 'upcoming event 2', :category_ids => [@category.id], :start_date => Date.new(2008, 4, 27))  
659 -  
660 - get :events, :category_path => [ 'my-category' ], :year => '2008', :month => '1'  
661 -  
662 - assert_equal [ 'upcoming event 1' ], assigns(:results)[:events].map(&:name)  
663 - end  
664 -  
665 - should 'list upcoming events in a specific category' do  
666 - person = create_user('testuser').person  
667 -  
668 - # today is January 15th, 2008  
669 - Date.expects(:today).returns(Date.new(2008,1,15)).at_least_once  
670 -  
671 - # in category, but in the past  
672 - create_event(person, :name => 'past event', :category_ids => [@category.id], :start_date => Date.new(2008, 1, 1))  
673 -  
674 - # in category, upcoming  
675 - create_event(person, :name => 'upcoming event 1', :category_ids => [@category.id], :start_date => Date.new(2008, 1, 25))  
676 - create_event(person, :name => 'upcoming event 2', :category_ids => [@category.id], :start_date => Date.new(2008, 1, 27))  
677 -  
678 - # not in category  
679 - create_event(person, :name => 'event not in category')  
680 -  
681 - get :category_index, :category_path => ['my-category']  
682 -  
683 - assert_equal [ 'upcoming event 1', 'upcoming event 2' ], assigns(:results)[:events].map(&:name)  
684 - end  
685 -  
686 -  
687 %w[ people enterprises articles events communities products ].each do |asset| 304 %w[ people enterprises articles events communities products ].each do |asset|
688 should "render asset-specific template when searching for #{asset}" do 305 should "render asset-specific template when searching for #{asset}" do
689 - get :index, :find_in => [ asset ] 306 + get "#{asset}"
690 assert_template asset 307 assert_template asset
691 end 308 end
692 end 309 end
693 310
694 - should 'list only categories with products' do  
695 - cat1 = ProductCategory.create!(:name => 'pc test 1', :environment => Environment.default)  
696 - cat2 = ProductCategory.create!(:name => 'pc test 2', :environment => Environment.default)  
697 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
698 -  
699 - cat1.products.create!(:name => 'prod test 1', :enterprise => ent)  
700 -  
701 - get :index, :find_in => 'products', :query => 'test'  
702 -  
703 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /pc test 1/ }  
704 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /pc test c/ }  
705 - end  
706 -  
707 should 'display only within a product category when specified' do 311 should 'display only within a product category when specified' do
708 prod_cat = ProductCategory.create!(:name => 'prod cat test', :environment => Environment.default) 312 prod_cat = ProductCategory.create!(:name => 'prod cat test', :environment => Environment.default)
709 ent = create_profile_with_optional_category(Enterprise, 'test ent') 313 ent = create_profile_with_optional_category(Enterprise, 'test ent')
@@ -716,120 +320,17 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -716,120 +320,17 @@ class SearchControllerTest &lt; ActionController::TestCase
716 end 320 end
717 321
718 should 'display properly in conjuntion with a category' do 322 should 'display properly in conjuntion with a category' do
719 - cat = Category.create(:name => 'cat', :environment => Environment.default)  
720 - prod_cat1 = ProductCategory.create!(:name => 'prod cat test 1', :environment => Environment.default)  
721 - prod_cat2 = ProductCategory.create!(:name => 'prod cat test 2', :environment => Environment.default, :parent => prod_cat1)  
722 - ent = create_profile_with_optional_category(Enterprise, 'test ent', cat)  
723 -  
724 - p = prod_cat2.products.create!(:name => 'prod test 1', :enterprise => ent)  
725 -  
726 - get :index, :find_in => 'products', :category_path => cat.path.split('/'), :product_category => prod_cat1.id  
727 -  
728 - assert_includes assigns(:results)[:products], p  
729 - end  
730 -  
731 - should 'display only top level product categories that has products when no product category filter is specified' do  
732 - cat1 = ProductCategory.create(:name => 'prod cat 1', :environment => Environment.default)  
733 - cat2 = ProductCategory.create(:name => 'prod cat 2', :environment => Environment.default)  
734 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
735 - p = cat1.products.create!(:name => 'prod test 1', :enterprise => ent)  
736 323
737 - get :index, :find_in => 'products'  
738 -  
739 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 1/ }  
740 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 2/ }  
741 - end  
742 -  
743 - should 'display children categories that has products when product category filter is selected' do  
744 - cat1 = ProductCategory.create(:name => 'prod cat 1', :environment => Environment.default)  
745 - cat11 = ProductCategory.create(:name => 'prod cat 11', :environment => Environment.default, :parent => cat1)  
746 - cat12 = ProductCategory.create(:name => 'prod cat 12', :environment => Environment.default, :parent => cat1)  
747 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
748 - p = cat11.products.create!(:name => 'prod test 1', :enterprise => ent)  
749 -  
750 - get :index, :find_in => 'products', :product_category => cat1.id  
751 -  
752 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 11/ }  
753 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 12/ }  
754 - end  
755 -  
756 - should 'list only product categories with enterprises' do  
757 - cat1 = ProductCategory.create!(:name => 'pc test 1', :environment => Environment.default)  
758 - cat2 = ProductCategory.create!(:name => 'pc test 2', :environment => Environment.default)  
759 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
760 -  
761 - cat1.products.create!(:name => 'prod test 1', :enterprise => ent)  
762 -  
763 - get :index, :find_in => 'enterprises', :query => 'test'  
764 -  
765 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /pc test 1/ }  
766 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /pc test c/ }  
767 - end  
768 -  
769 - should 'display only enterprises in the product category when its specified' do  
770 - prod_cat = ProductCategory.create!(:name => 'prod cat test', :environment => Environment.default)  
771 - ent1 = create_profile_with_optional_category(Enterprise, 'test_ent1')  
772 - p = prod_cat.products.create!(:name => 'prod test 1', :enterprise => ent1)  
773 -  
774 - ent2 = create_profile_with_optional_category(Enterprise, 'test_ent2')  
775 -  
776 - get :index, :find_in => 'enterprises', :product_category => prod_cat.id  
777 -  
778 - assert_includes assigns(:results)[:enterprises], ent1  
779 - assert_not_includes assigns(:results)[:enterprises], ent2  
780 - end  
781 -  
782 - should 'display enterprises properly in conjuntion with a category' do  
783 cat = Category.create(:name => 'cat', :environment => Environment.default) 324 cat = Category.create(:name => 'cat', :environment => Environment.default)
784 prod_cat1 = ProductCategory.create!(:name => 'prod cat test 1', :environment => Environment.default) 325 prod_cat1 = ProductCategory.create!(:name => 'prod cat test 1', :environment => Environment.default)
785 prod_cat2 = ProductCategory.create!(:name => 'prod cat test 2', :environment => Environment.default, :parent => prod_cat1) 326 prod_cat2 = ProductCategory.create!(:name => 'prod cat test 2', :environment => Environment.default, :parent => prod_cat1)
786 - ent1 = create_profile_with_optional_category(Enterprise, 'test ent 1', cat)  
787 - p = prod_cat2.products.create!(:name => 'prod test 1', :enterprise => ent1)  
788 -  
789 - ent2 = create_profile_with_optional_category(Enterprise, 'test ent 2', cat)  
790 -  
791 - get :index, :find_in => 'enterprises', :category_path => cat.path.split('/'), :product_category => prod_cat1.id  
792 -  
793 - assert_includes assigns(:results)[:enterprises], ent1  
794 - assert_not_includes assigns(:results)[:enterprises], ent2  
795 - end  
796 -  
797 - should 'display only top level product categories that has enterprises when no product category filter is specified' do  
798 - cat1 = ProductCategory.create(:name => 'prod cat 1', :environment => Environment.default)  
799 - cat2 = ProductCategory.create(:name => 'prod cat 2', :environment => Environment.default)  
800 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
801 - p = cat1.products.create!(:name => 'prod test 1', :enterprise => ent)  
802 -  
803 - get :index, :find_in => 'enterprises'  
804 -  
805 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 1/ }  
806 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 2/ }  
807 - end  
808 -  
809 - should 'display children categories that has enterprises when product category filter is selected' do  
810 - cat1 = ProductCategory.create(:name => 'prod cat 1', :environment => Environment.default)  
811 - cat11 = ProductCategory.create(:name => 'prod cat 11', :environment => Environment.default, :parent => cat1)  
812 - cat12 = ProductCategory.create(:name => 'prod cat 12', :environment => Environment.default, :parent => cat1)  
813 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
814 - p = cat11.products.create!(:name => 'prod test 1', :enterprise => ent)  
815 -  
816 - get :index, :find_in => 'enterprises', :product_category => cat1.id  
817 -  
818 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 11/ }  
819 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 12/ }  
820 - end 327 + ent = create_profile_with_optional_category(Enterprise, 'test ent', cat)
821 328
822 - should 'load two level of the product categories tree' do  
823 - cat1 = ProductCategory.create(:name => 'prod cat 1', :environment => Environment.default)  
824 - cat11 = ProductCategory.create(:name => 'prod cat 11', :environment => Environment.default, :parent => cat1)  
825 - cat12 = ProductCategory.create(:name => 'prod cat 12', :environment => Environment.default, :parent => cat1)  
826 - ent = create_profile_with_optional_category(Enterprise, 'test ent')  
827 - p = cat11.products.create!(:name => 'prod test 1', :enterprise => ent) 329 + product = prod_cat2.products.create!(:name => 'prod test 1', :enterprise_id => ent.id)
828 330
829 - get :index, :find_in => 'enterprises' 331 + get :products, {:category_path => cat.path.split('/'), :product_category => prod_cat1.id}
830 332
831 - assert_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 11/ }  
832 - assert_no_tag :attributes => { :id => "product-categories-menu" }, :descendant => { :tag => 'a', :content => /prod cat 12/ } 333 + assert_includes assigns(:results)[:products], product
833 end 334 end
834 335
835 should 'provide calendar for events' do 336 should 'provide calendar for events' do
@@ -844,11 +345,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -844,11 +345,6 @@ class SearchControllerTest &lt; ActionController::TestCase
844 assert_tag :tag => 'table', :attributes => {:class => /current-month/}, :descendant => {:tag => 'caption', :content => /August 2008/} 345 assert_tag :tag => 'table', :attributes => {:class => /current-month/}, :descendant => {:tag => 'caption', :content => /August 2008/}
845 end 346 end
846 347
847 - should 'submit search form to /search when viewing asset' do  
848 - get :people  
849 - assert_tag :tag => "form", :attributes => { :class => 'search_form', :action => '/search' }  
850 - end  
851 -  
852 should 'found TextileArticle in articles' do 348 should 'found TextileArticle in articles' do
853 person = create_user('teste').person 349 person = create_user('teste').person
854 art = TextileArticle.create!(:name => 'an text_article article to be found', :profile => person) 350 art = TextileArticle.create!(:name => 'an text_article article to be found', :profile => person)
@@ -858,33 +354,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -858,33 +354,6 @@ class SearchControllerTest &lt; ActionController::TestCase
858 assert_includes assigns(:results)[:articles], art 354 assert_includes assigns(:results)[:articles], art
859 end 355 end
860 356
861 - should 'know about disabled assets' do  
862 - env = mock  
863 - %w[ articles enterprises people communities events].each do |item|  
864 - env.expects(:enabled?).with('disable_asset_' + item).returns(false).at_least_once  
865 - end  
866 - env.expects(:enabled?).with('disable_asset_products').returns(true).at_least_once  
867 - @controller.stubs(:environment).returns(env)  
868 -  
869 - %w[ articles enterprises people communities events].each do |item|  
870 - assert_includes @controller.where_to_search.map(&:first), item.to_sym  
871 - end  
872 - assert_not_includes @controller.where_to_search.map(&:first), :products  
873 - end  
874 -  
875 - should 'search for products by origin and radius correctly' do  
876 - s = City.create!(:name => 'Salvador', :lat => -12.97, :lng => -38.51, :environment => Environment.default)  
877 - e1 = create_profile_with_optional_category(Enterprise, 'test ent 1', nil, :lat => -12.97, :lng => -38.51)  
878 - p1 = e1.products.create!(:name => 'test_product1', :product_category => @product_category)  
879 - e2 = create_profile_with_optional_category(Enterprise, 'test ent 2', nil, :lat => -14.97, :lng => -40.51)  
880 - p2 = e2.products.create!(:name => 'test_product2', :product_category => @product_category)  
881 -  
882 - get :assets, :asset => 'products', :city => s.id, :radius => 15  
883 -  
884 - assert_includes assigns(:results)[:products], p1  
885 - assert_not_includes assigns(:results)[:products], p2  
886 - end  
887 -  
888 should 'show link to article asset in the see all foot link of the articles block in the category page' do 357 should 'show link to article asset in the see all foot link of the articles block in the category page' do
889 a = create_user('test1').person.articles.create!(:name => 'an article to be found') 358 a = create_user('test1').person.articles.create!(:name => 'an article to be found')
890 a.add_category @category 359 a.add_category @category
@@ -909,20 +378,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -909,20 +378,6 @@ class SearchControllerTest &lt; ActionController::TestCase
909 assert_equal 20, assigns(:results)[:enterprises].total_entries 378 assert_equal 20, assigns(:results)[:enterprises].total_entries
910 end 379 end
911 380
912 - should 'add link to list in all categories when in a category' do  
913 - ['people', 'enterprises', 'products', 'communities', 'articles'].each do |asset|  
914 - get asset, :category_path => [ 'my-category' ]  
915 - assert_tag :tag => 'div', :content => 'In all categories'  
916 - end  
917 - end  
918 -  
919 - should 'not add link to list in all categories when not in a category' do  
920 - ['people', 'enterprises', 'products', 'communities', 'articles'].each do |asset|  
921 - get asset  
922 - assert_no_tag :tag => 'div', :content => 'In all categories'  
923 - end  
924 - end  
925 -  
926 should 'find products when enterprises has own hostname' do 381 should 'find products when enterprises has own hostname' do
927 ent = create_profile_with_optional_category(Enterprise, 'teste') 382 ent = create_profile_with_optional_category(Enterprise, 'teste')
928 ent.domains << Domain.new(:name => 'testent.com'); ent.save! 383 ent.domains << Domain.new(:name => 'testent.com'); ent.save!
@@ -938,12 +393,14 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -938,12 +393,14 @@ class SearchControllerTest &lt; ActionController::TestCase
938 end 393 end
939 394
940 should 'add script tag for google maps if searching enterprises' do 395 should 'add script tag for google maps if searching enterprises' do
  396 + ent = create_profile_with_optional_category(Enterprise, 'teste')
941 get 'index', :query => 'enterprise', :display => 'map', :find_in => ['enterprises'] 397 get 'index', :query => 'enterprise', :display => 'map', :find_in => ['enterprises']
942 398
943 assert_tag :tag => 'script', :attributes => { :src => 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=ENVIRONMENT_KEY'} 399 assert_tag :tag => 'script', :attributes => { :src => 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=ENVIRONMENT_KEY'}
944 end 400 end
945 401
946 should 'not add script tag for google maps if searching articles' do 402 should 'not add script tag for google maps if searching articles' do
  403 + ent = create_profile_with_optional_category(Enterprise, 'teste')
947 get 'index', :query => 'article', :display => 'map', :find_in => ['articles'] 404 get 'index', :query => 'article', :display => 'map', :find_in => ['articles']
948 405
949 assert_no_tag :tag => 'script', :attributes => { :src => 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=ENVIRONMENT_KEY'} 406 assert_no_tag :tag => 'script', :attributes => { :src => 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=ENVIRONMENT_KEY'}
@@ -970,34 +427,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -970,34 +427,6 @@ class SearchControllerTest &lt; ActionController::TestCase
970 assert_tag :tag => 'a', :content => /Joao Birthday/ 427 assert_tag :tag => 'a', :content => /Joao Birthday/
971 end 428 end
972 429
973 - should 'filter events by category' do  
974 - person = create_user('anotheruser').person  
975 -  
976 - searched_category = Category.create!(:name => 'Category with events', :environment => Environment.default)  
977 -  
978 - event_in_searched_category = create_event(person, :name => 'Maria Birthday', :start_date => Date.today, :category_ids => [searched_category.id])  
979 - event_in_non_searched_category = create_event(person, :name => 'Joao Birthday', :start_date => Date.today, :category_ids => [@category.id])  
980 -  
981 - get :events, :category_path => ['category-with-events']  
982 -  
983 - assert_includes assigns(:events_of_the_day), event_in_searched_category  
984 - assert_not_includes assigns(:events_of_the_day), event_in_non_searched_category  
985 - end  
986 -  
987 - should 'filter events by category of specific day' do  
988 - person = create_user('anotheruser').person  
989 -  
990 - searched_category = Category.create!(:name => 'Category with events', :environment => Environment.default)  
991 -  
992 - event_in_searched_category = create_event(person, :name => 'Maria Birthday', :start_date => Date.new(2009, 10, 28), :category_ids => [searched_category.id])  
993 - event_in_non_searched_category = create_event(person, :name => 'Joao Birthday', :start_date => Date.new(2009, 10, 28), :category_ids => [@category.id])  
994 -  
995 - get :events_by_day, :year => 2009, :month => 10, :day => 28, :category_id => searched_category.id  
996 -  
997 - assert_tag :tag => 'a', :content => /Maria Birthday/  
998 - assert_no_tag :tag => 'a', :content => /Joao Birthday/  
999 - end  
1000 -  
1001 should 'ignore filter of events if category not exists' do 430 should 'ignore filter of events if category not exists' do
1002 person = create_user('anotheruser').person 431 person = create_user('anotheruser').person
1003 create_event(person, :name => 'Joao Birthday', :start_date => Date.new(2009, 10, 28), :category_ids => [@category.id]) 432 create_event(person, :name => 'Joao Birthday', :start_date => Date.new(2009, 10, 28), :category_ids => [@category.id])
@@ -1011,158 +440,26 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -1011,158 +440,26 @@ class SearchControllerTest &lt; ActionController::TestCase
1011 assert_tag :tag => 'a', :content => /Maria Birthday/ 440 assert_tag :tag => 'a', :content => /Maria Birthday/
1012 end 441 end
1013 442
1014 - should 'search for people' do  
1015 - Person.delete_all  
1016 - small = create(Person, :name => 'A small person for testing', :user_id => 1)  
1017 - create(Person, :name => 'A big person for testing', :user_id => 2)  
1018 -  
1019 - get :people, :query => 'small'  
1020 - assert_equal [small], assigns(:results)  
1021 - end  
1022 -  
1023 - should 'list all people order by more recent one by default' do  
1024 - Person.delete_all  
1025 - p1 = create(Person, :name => 'Testing person 1', :user_id => 1, :created_at => DateTime.now - 2)  
1026 - p2 = create(Person, :name => 'Testing person 2', :user_id => 2, :created_at => DateTime.now - 1)  
1027 - p3 = create(Person, :name => 'Testing person 3', :user_id => 3)  
1028 -  
1029 - get :people  
1030 - assert_equal [p3,p2,p1] , assigns(:results)  
1031 - end  
1032 -  
1033 should 'paginate search of people in groups of 27' do 443 should 'paginate search of people in groups of 27' do
1034 Person.delete_all 444 Person.delete_all
1035 445
1036 1.upto(30).map do |n| 446 1.upto(30).map do |n|
1037 - create(Person, :name => 'Testing person', :user_id => n) 447 + create(User)
1038 end 448 end
1039 449
1040 get :people 450 get :people
1041 - assert_equal 30 , Person.count  
1042 - assert_equal 27 , assigns(:results).count  
1043 - assert_tag :a, '', :attributes => {:class => 'next_page'}  
1044 - end  
1045 -  
1046 - should 'paginate ferret search of people in groups of 27' do  
1047 - Person.delete_all  
1048 -  
1049 - 1.upto(30).map do |n|  
1050 - create(Person, :name => 'Testing person', :user_id => n)  
1051 - end  
1052 -  
1053 - get :people, :query => 'Testing'  
1054 - assert_equal 27 , assigns(:results).count 451 + assert_equal 30, Person.count
  452 + assert_equal 27, assigns(:results).count
1055 assert_tag :a, '', :attributes => {:class => 'next_page'} 453 assert_tag :a, '', :attributes => {:class => 'next_page'}
1056 end 454 end
1057 455
1058 - should 'not return nil results in the more_active people list' do  
1059 - Profile.delete_all  
1060 - p1 = fast_create(Person)  
1061 - p2 = fast_create(Person)  
1062 - p3 = fast_create(Person)  
1063 - fast_create(Article, :profile_id => p1, :created_at => 1.day.ago)  
1064 - fast_create(Article, :profile_id => p2, :created_at => 1.day.ago)  
1065 - fast_create(Article, :profile_id => p2, :created_at => 1.day.ago)  
1066 - fast_create(Article, :profile_id => p2, :created_at => 1.day.ago)  
1067 - fast_create(Article, :profile_id => p3, :created_at => 1.day.ago)  
1068 -  
1069 - per_page = 1  
1070 - @controller.stubs(:per_page).returns(per_page)  
1071 -  
1072 - get :people, :filter => 'more_active'  
1073 -  
1074 - assert_equal Person.count/per_page, assigns(:results).total_entries  
1075 - end  
1076 -  
1077 - should 'list all people filter by more active' do  
1078 - Person.delete_all  
1079 - p1 = create(Person, :name => 'Testing person 1', :user_id => 1)  
1080 - p2 = create(Person, :name => 'Testing person 2', :user_id => 2)  
1081 - p3 = create(Person, :name => 'Testing person 3', :user_id => 3)  
1082 - ActionTracker::Record.delete_all  
1083 - fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => p1, :created_at => Time.now)  
1084 - fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => p2, :created_at => Time.now)  
1085 - fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => p2, :created_at => Time.now)  
1086 - get :people, :filter => 'more_active'  
1087 - assert_equal [p2,p1,p3] , assigns(:results)  
1088 - end  
1089 -  
1090 - should 'filter more popular people' do  
1091 - Person.delete_all  
1092 - p1 = create(Person, :name => 'Testing person 1', :user_id => 1)  
1093 - p2 = create(Person, :name => 'Testing person 2', :user_id => 2)  
1094 - p3 = create(Person, :name => 'Testing person 3', :user_id => 3)  
1095 -  
1096 - p1.add_friend(p2)  
1097 - p2.add_friend(p1)  
1098 - p2.add_friend(p3)  
1099 - get :people, :filter => 'more_popular'  
1100 - assert_equal [p2,p1,p3] , assigns(:results)  
1101 - end  
1102 -  
1103 - should 'set filter be only the hardcoded one' do  
1104 - get :people, :filter => 'more_recent'  
1105 - assert_equal 'more_recent' , assigns(:filter)  
1106 - get :people, :filter => 'more_active'  
1107 - assert_equal 'more_active' , assigns(:filter)  
1108 - get :people, :filter => 'more_popular'  
1109 - assert_equal 'more_popular' , assigns(:filter)  
1110 - get :people, :filter => 'more_anything'  
1111 - assert_equal 'more_recent' , assigns(:filter)  
1112 -  
1113 - get :communities, :filter => 'more_recent'  
1114 - assert_equal 'more_recent' , assigns(:filter)  
1115 - get :communities, :filter => 'more_active'  
1116 - assert_equal 'more_active' , assigns(:filter)  
1117 - get :communities, :filter => 'more_popular'  
1118 - assert_equal 'more_popular' , assigns(:filter)  
1119 - get :communities, :filter => 'more_anything'  
1120 - assert_equal 'more_recent' , assigns(:filter)  
1121 - end  
1122 -  
1123 - should 'the people filter define the title' do  
1124 - get :people, :filter => 'more_recent'  
1125 - assert_equal 'More recent people from network' , assigns(:filter_title)  
1126 - assert_tag :h1, :content => 'More recent people from network'  
1127 - get :people, :filter => 'more_active'  
1128 - assert_equal 'More active people from network' , assigns(:filter_title)  
1129 - assert_tag :h1, :content => 'More active people from network'  
1130 - get :people, :filter => 'more_popular'  
1131 - assert_equal 'More popular people from network' , assigns(:filter_title)  
1132 - assert_tag :h1, :content => 'More popular people from network'  
1133 - get :people, :filter => 'more_anything'  
1134 - assert_equal 'More recent people from network' , assigns(:filter_title)  
1135 - assert_tag :h1, :content => 'More recent people from network'  
1136 - get :communities, :filter => 'more_recent'  
1137 -  
1138 - assert_equal 'More recent communities from network' , assigns(:filter_title)  
1139 - assert_tag :h1, :content => 'More recent communities from network'  
1140 - get :communities, :filter => 'more_active'  
1141 - assert_equal 'More active communities from network' , assigns(:filter_title)  
1142 - assert_tag :h1, :content => 'More active communities from network'  
1143 - get :communities, :filter => 'more_popular'  
1144 - assert_equal 'More popular communities from network' , assigns(:filter_title)  
1145 - assert_tag :h1, :content => 'More popular communities from network'  
1146 - get :communities, :filter => 'more_anything'  
1147 - assert_equal 'More recent communities from network' , assigns(:filter_title)  
1148 - assert_tag :h1, :content => 'More recent communities from network'  
1149 - end  
1150 -  
1151 - should 'search for community' do  
1152 - small = create(Community, :name => 'A small community for testing')  
1153 - create(Community, :name => 'A big community for testing')  
1154 -  
1155 - get :communities, :query => 'small'  
1156 - assert_equal [small], assigns(:results)  
1157 - end  
1158 -  
1159 should 'list all community order by more recent one by default' do 456 should 'list all community order by more recent one by default' do
1160 c1 = create(Community, :name => 'Testing community 1', :created_at => DateTime.now - 2) 457 c1 = create(Community, :name => 'Testing community 1', :created_at => DateTime.now - 2)
1161 c2 = create(Community, :name => 'Testing community 2', :created_at => DateTime.now - 1) 458 c2 = create(Community, :name => 'Testing community 2', :created_at => DateTime.now - 1)
1162 c3 = create(Community, :name => 'Testing community 3') 459 c3 = create(Community, :name => 'Testing community 3')
1163 460
1164 get :communities 461 get :communities
1165 - assert_equal [c3,c2,c1] , assigns(:results) 462 + assert_equal [c3,c2,c1] , assigns(:results)[:communities]
1166 end 463 end
1167 464
1168 should 'paginate search of communities in groups of 27' do 465 should 'paginate search of communities in groups of 27' do
@@ -1176,36 +473,6 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -1176,36 +473,6 @@ class SearchControllerTest &lt; ActionController::TestCase
1176 assert_tag :a, '', :attributes => {:class => 'next_page'} 473 assert_tag :a, '', :attributes => {:class => 'next_page'}
1177 end 474 end
1178 475
1179 - should 'paginate ferret search of communities in groups of 27' do  
1180 - 1.upto(30).map do |n|  
1181 - create(Community, :name => 'Testing community')  
1182 - end  
1183 -  
1184 - get :communities, :query => 'Testing'  
1185 - assert_equal 27 , assigns(:results).count  
1186 - assert_tag :a, '', :attributes => {:class => 'next_page'}  
1187 - end  
1188 -  
1189 - should 'not return nil results in the more_active communities list' do  
1190 - Profile.delete_all  
1191 - c1 = fast_create(Community)  
1192 - c2 = fast_create(Community)  
1193 - c3 = fast_create(Community)  
1194 - fast_create(Article, :profile_id => c1, :created_at => 1.day.ago)  
1195 - fast_create(Article, :profile_id => c2, :created_at => 1.day.ago)  
1196 - fast_create(Article, :profile_id => c2, :created_at => 1.day.ago)  
1197 - fast_create(Article, :profile_id => c2, :created_at => 1.day.ago)  
1198 - fast_create(Article, :profile_id => c3, :created_at => 1.day.ago)  
1199 -  
1200 - per_page = 1  
1201 - @controller.stubs(:per_page).returns(per_page)  
1202 -  
1203 - get :communities, :filter => 'more_active'  
1204 -  
1205 - assert_equal Community.count/per_page, assigns(:results).total_pages  
1206 - end  
1207 -  
1208 -  
1209 should 'list all communities filter by more active' do 476 should 'list all communities filter by more active' do
1210 person = fast_create(Person) 477 person = fast_create(Person)
1211 c1 = create(Community, :name => 'Testing community 1') 478 c1 = create(Community, :name => 'Testing community 1')
@@ -1216,22 +483,7 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -1216,22 +483,7 @@ class SearchControllerTest &lt; ActionController::TestCase
1216 fast_create(ActionTracker::Record, :target_id => c2, :user_type => 'Profile', :user_id => person, :created_at => Time.now) 483 fast_create(ActionTracker::Record, :target_id => c2, :user_type => 'Profile', :user_id => person, :created_at => Time.now)
1217 fast_create(ActionTracker::Record, :target_id => c2, :user_type => 'Profile', :user_id => person, :created_at => Time.now) 484 fast_create(ActionTracker::Record, :target_id => c2, :user_type => 'Profile', :user_id => person, :created_at => Time.now)
1218 get :communities, :filter => 'more_active' 485 get :communities, :filter => 'more_active'
1219 - assert_equal [c2,c1,c3] , assigns(:results)  
1220 - end  
1221 -  
1222 - should 'filter more popular communities' do  
1223 - Person.delete_all  
1224 - Community.delete_all  
1225 - c1 = create(Community, :name => 'Testing community 1')  
1226 - c2 = create(Community, :name => 'Testing community 2')  
1227 -  
1228 - p1 = create(Person, :name => 'Testing person 1', :user_id => 1)  
1229 - p2 = create(Person, :name => 'Testing person 2', :user_id => 2)  
1230 - c1.add_member(p1)  
1231 - c2.add_member(p1)  
1232 - c2.add_member(p2)  
1233 - get :communities, :filter => 'more_popular'  
1234 - assert_equal [c2,c1] , assigns(:results) 486 + assert_equal [c2,c1,c3] , assigns(:results)[:communities]
1235 end 487 end
1236 488
1237 should "only include visible people in more_recent filter" do 489 should "only include visible people in more_recent filter" do