Commit a1e766d2a6fc621000165966306caa7c34cdd6aa

Authored by Moises Machado
1 parent fb2daa76

ActionItem751: remove the 10 results limit in find_by_contents

lib/acts_as_searchable.rb
... ... @@ -9,6 +9,8 @@ class << ActiveRecord::Base
9 9 if ferret_options[:per_page]
10 10 db_options[:per_page] = ferret_options.delete(:per_page)
11 11 end
  12 +
  13 + ferret_options[:limit] = :all
12 14  
13 15 ids = find_ids_with_ferret(query, ferret_options)[1].map{|r|r[:id].to_i}
14 16 if ids.empty?
... ...
test/functional/search_controller_test.rb
... ... @@ -946,6 +946,17 @@ class SearchControllerTest < Test::Unit::TestCase
946 946 assert_tag :tag => 'h1', :content => 'Communities'
947 947 end
948 948  
  949 + should 'indicate more than page for total_entries' do
  950 + Enterprise.destroy_all
  951 + ('1'..'20').each do |n|
  952 + Enterprise.create!(:name => 'test ' + n, :identifier => 'test_' + n)
  953 + end
  954 +
  955 + get :index, :query => 'test'
  956 +
  957 + assert_equal 20, assigns(:results)[:enterprises].total_entries
  958 + end
  959 +
949 960 ##################################################################
950 961 ##################################################################
951 962  
... ...
test/unit/environment_finder_test.rb
... ... @@ -311,4 +311,16 @@ class EnvironmentFinderTest < ActiveSupport::TestCase
311 311 assert_equal 2, counts[pc2.id]
312 312 assert_nil counts[pc3.id]
313 313 end
  314 +
  315 + should 'should retrieve more than 10 entries' do
  316 + Enterprise.destroy_all
  317 + finder = EnvironmentFinder.new(Environment.default)
  318 +
  319 + ('1'..'20').each do |n|
  320 + Enterprise.create!(:name => 'test ' + n, :identifier => 'test_' + n)
  321 + end
  322 +
  323 + assert_equal 20, finder.find(:enterprises, 'test').total_entries
  324 + end
  325 +
314 326 end
... ...
test/unit/environment_test.rb
... ... @@ -434,4 +434,14 @@ class EnvironmentTest < Test::Unit::TestCase
434 434 assert_equal 'default', Environment.new.layout_template
435 435 end
436 436  
  437 + should 'return more than 10 enterprises by contents' do
  438 + env = Environment.default
  439 + Enterprise.destroy_all
  440 + ('1'..'20').each do |n|
  441 + Enterprise.create!(:name => 'test ' + n, :identifier => 'test_' + n)
  442 + end
  443 +
  444 + assert_equal 20, env.enterprises.find_by_contents('test').total_entries
  445 + end
  446 +
437 447 end
... ...