diff --git a/app/controllers/public/browse_controller.rb b/app/controllers/public/browse_controller.rb index 7951a70..17f85a5 100644 --- a/app/controllers/public/browse_controller.rb +++ b/app/controllers/public/browse_controller.rb @@ -8,17 +8,20 @@ class BrowseController < PublicController more_popular ) + def per_page + 27 + end + def people @filter = filter @title = self.filter_description(params[:action] + '_' + @filter ) @results = @environment.people.visible.send(@filter) - if params[:query].blank? - @results = @results.paginate(:per_page => 27, :page => params[:page]) - else - @results = @results.find_by_contents(params[:query]).paginate(:per_page => 27, :page => params[:page]) + if !params[:query].blank? + @results = @results.find_by_contents(params[:query]) end + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) end def communities @@ -27,11 +30,10 @@ class BrowseController < PublicController @results = @environment.communities.visible.send(@filter) - if params[:query].blank? - @results = @results.paginate(:per_page => 27, :page => params[:page]) - else - @results = @results.find_by_contents(params[:query]).paginate(:per_page => 27, :page => params[:page]) + if !params[:query].blank? + @results = @results.find_by_contents(params[:query]) end + @results = @results.compact.paginate(:per_page => per_page, :page => params[:page]) end protected diff --git a/test/functional/browse_controller_test.rb b/test/functional/browse_controller_test.rb index 92d1f21..d27aee6 100644 --- a/test/functional/browse_controller_test.rb +++ b/test/functional/browse_controller_test.rb @@ -65,6 +65,25 @@ class BrowseControllerTest < Test::Unit::TestCase assert_tag :a, '', :attributes => {:class => 'next_page'} end + should 'not return nil results in the more_active people list' do + Profile.delete_all + p1 = fast_create(Person) + p2 = fast_create(Person) + p3 = fast_create(Person) + fast_create(Article, :profile_id => p1, :created_at => 1.day.ago) + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => p2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => p3, :created_at => 1.day.ago) + + per_page = 1 + @controller.stubs(:per_page).returns(per_page) + + get :people, :filter => 'more_active' + + assert_equal assigns(:results).total_pages, Person.count/per_page + end + should 'list all people filter by more active' do Person.delete_all p1 = create(Person, :name => 'Testing person 1', :user_id => 1) @@ -160,6 +179,26 @@ class BrowseControllerTest < Test::Unit::TestCase assert_tag :a, '', :attributes => {:class => 'next_page'} end + should 'not return nil results in the more_active communities list' do + Profile.delete_all + c1 = fast_create(Community) + c2 = fast_create(Community) + c3 = fast_create(Community) + fast_create(Article, :profile_id => c1, :created_at => 1.day.ago) + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => c2, :created_at => 1.day.ago) + fast_create(Article, :profile_id => c3, :created_at => 1.day.ago) + + per_page = 1 + @controller.stubs(:per_page).returns(per_page) + + get :communities, :filter => 'more_active' + + assert_equal assigns(:results).total_pages, Community.count/per_page + end + + should 'list all communities filter by more active' do c1 = create(Community, :name => 'Testing community 1') c2 = create(Community, :name => 'Testing community 2') -- libgit2 0.21.2