<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,6 +9,7 @@ desc 'Test the will_paginate plugin.'
 Rake::TestTask.new(:test) do |t|
   t.pattern = 'test/**/*_test.rb'
   t.verbose = true
+  t.libs &lt;&lt; 'test'
 end
 
 # I want to specify environment variables at call time
@@ -27,6 +28,7 @@ for configuration in %w( sqlite3 mysql postgres )
     t.pattern = 'test/finder_test.rb'
     t.verbose = true
     t.env = { 'DB' =&gt; configuration }
+    t.libs &lt;&lt; 'test'
   end
 end
 </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/helper'
+require 'helper'
 require 'will_paginate/array'
 
 class ArrayPaginationTest &lt; Test::Unit::TestCase</diff>
      <filename>test/array_pagination_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,5 +19,3 @@ else
     gem 'activerecord'
   end
 end
-
-$:.unshift &quot;#{plugin_root}/lib&quot;</diff>
      <filename>test/boot.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,8 @@
 #!/usr/bin/env ruby
 irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
 libs = []
-dirname = File.dirname(__FILE__)
 
 libs &lt;&lt; 'irb/completion'
-libs &lt;&lt; File.join(dirname, 'lib', 'load_fixtures')
+libs &lt;&lt; File.join('lib', 'load_fixtures')
 
-exec &quot;#{irb}#{libs.map{ |l| &quot; -r #{l}&quot; }.join} --simple-prompt&quot;
+exec &quot;#{irb} -Ilib:test#{libs.map{ |l| &quot; -r #{l}&quot; }.join} --simple-prompt&quot;</diff>
      <filename>test/console</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
-require File.dirname(__FILE__) + '/helper'
-require File.dirname(__FILE__) + '/lib/activerecord_test_case'
+require 'helper'
+require 'lib/activerecord_test_case'
 
 require 'will_paginate'
 WillPaginate.enable_activerecord
@@ -12,18 +12,18 @@ class FinderTest &lt; ActiveRecordTestCase
   end
   
   def test_simple_paginate
-    entries = Topic.paginate :page =&gt; nil
-    assert_equal 1, entries.current_page
-    assert_nil entries.previous_page
-    assert_nil entries.next_page
-    assert_equal 1, entries.total_pages
-    assert_equal 4, entries.size
+    assert_queries(1) do
+      entries = Topic.paginate :page =&gt; nil
+      assert_equal 1, entries.current_page
+      assert_equal 1, entries.total_pages
+      assert_equal 4, entries.size
+    end
     
-    entries = Topic.paginate :page =&gt; 2
-    assert_equal 2, entries.current_page
-    assert_equal 1, entries.previous_page
-    assert_equal 1, entries.total_pages
-    assert entries.empty?
+    assert_queries(2) do
+      entries = Topic.paginate :page =&gt; 2
+      assert_equal 1, entries.total_pages
+      assert entries.empty?
+    end
   end
 
   def test_parameter_api</diff>
      <filename>test/finder_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ require 'rubygems'
 # gem install redgreen for colored test output
 begin require 'redgreen'; rescue LoadError; end
 
-require File.join(File.dirname(__FILE__), 'boot') unless defined?(ActiveRecord)
+require 'boot' unless defined?(ActiveRecord)
 
 class Test::Unit::TestCase
   protected</diff>
      <filename>test/helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'activerecord_test_connector')
+require 'lib/activerecord_test_connector'
 
 class ActiveRecordTestCase &lt; Test::Unit::TestCase
   # Set our fixture path
@@ -18,6 +18,19 @@ class ActiveRecordTestCase &lt; Test::Unit::TestCase
   # Default so Test::Unit::TestCase doesn't complain
   def test_truth
   end
+
+  protected
+
+    def assert_queries(num = 1)
+      $query_count = 0
+      yield
+    ensure
+      assert_equal num, $query_count, &quot;#{$query_count} instead of #{num} queries were executed.&quot;
+    end
+
+    def assert_no_queries(&amp;block)
+      assert_queries(0, &amp;block)
+    end
 end
 
 ActiveRecordTestConnector.setup</diff>
      <filename>test/lib/activerecord_test_case.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,8 @@ class ActiveRecordTestConnector
   cattr_accessor :able_to_connect
   cattr_accessor :connected
 
+  FIXTURES_PATH = File.join(File.dirname(__FILE__), '..', 'fixtures')
+
   # Set our defaults
   self.connected = false
   self.able_to_connect = true
@@ -14,8 +16,7 @@ class ActiveRecordTestConnector
     unless self.connected || !self.able_to_connect
       setup_connection
       load_schema
-      # require_fixture_models
-      Dependencies.load_paths.unshift(File.dirname(__FILE__) + &quot;/../fixtures&quot;)
+      Dependencies.load_paths.unshift FIXTURES_PATH
       self.connected = true
     end
   rescue Exception =&gt; e  # errors from ActiveRecord setup
@@ -38,7 +39,7 @@ class ActiveRecordTestConnector
     
     ActiveRecord::Base.establish_connection(configuration)
     ActiveRecord::Base.configurations = { db =&gt; configuration }
-    ActiveRecord::Base.connection
+    add_counting ActiveRecord::Base.connection
 
     unless Object.const_defined?(:QUOTED_TYPE)
       Object.send :const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')
@@ -48,13 +49,21 @@ class ActiveRecordTestConnector
   def self.load_schema
     ActiveRecord::Base.silence do
       ActiveRecord::Migration.verbose = false
-      load File.dirname(__FILE__) + &quot;/../fixtures/schema.rb&quot;
+      load File.join(FIXTURES_PATH, 'schema.rb')
     end
   end
 
-  def self.require_fixture_models
-    models = Dir.glob(File.dirname(__FILE__) + &quot;/../fixtures/*.rb&quot;)
-    models = (models.grep(/user.rb/) + models).uniq
-    models.each { |f| require f }
+  def self.add_counting(conn)
+    class &lt;&lt; conn
+      IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/]
+
+      def execute_with_counting(sql, name = nil, &amp;block)
+        $query_count ||= 0
+        $query_count  += 1 unless IGNORED_SQL.any? { |r| sql =~ r }
+        execute_without_counting(sql, name, &amp;block)
+      end
+
+      alias_method_chain :execute, :counting
+    end
   end
 end</diff>
      <filename>test/lib/activerecord_test_connector.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,13 +1,11 @@
-dirname = File.dirname(__FILE__)
-require File.join(dirname, '..', 'boot')
-require File.join(dirname, 'activerecord_test_connector')
+require 'boot'
+require 'lib/activerecord_test_connector'
 
 # setup the connection
 ActiveRecordTestConnector.setup
 
 # load all fixtures
-fixture_path = File.join(dirname, '..', 'fixtures')
-Fixtures.create_fixtures(fixture_path, ActiveRecord::Base.connection.tables)
+Fixtures.create_fixtures(ActiveRecordTestConnector::FIXTURES_PATH, ActiveRecord::Base.connection.tables)
 
 require 'will_paginate'
 WillPaginate.enable_activerecord</diff>
      <filename>test/lib/load_fixtures.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-require File.dirname(__FILE__) + '/helper'
+require 'helper'
 require 'action_controller'
-require File.dirname(__FILE__) + '/lib/html_inner_text'
+require 'lib/html_inner_text'
 
 ActionController::Routing::Routes.draw do |map|
   map.connect ':controller/:action/:id'</diff>
      <filename>test/pagination_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>64d6ef16a9b0e01d85f960d337ba92d87abf3c50</id>
    </parent>
  </parents>
  <author>
    <name>Mislav Marohni&#263;</name>
    <email>mislav.marohnic@gmail.com</email>
  </author>
  <url>http://github.com/mislav/will_paginate/commit/1d8a06568ac0259ed1371d13e866d5fab0623fdd</url>
  <id>1d8a06568ac0259ed1371d13e866d5fab0623fdd</id>
  <committed-date>2008-04-04T20:58:21-07:00</committed-date>
  <authored-date>2008-04-04T20:58:21-07:00</authored-date>
  <message>Reduce File.dirname cruft: invoke individual tests with -Ilib:test parameter.
Stolen assert_queries from Rails, let's put it to good use in finder_test.rb</message>
  <tree>705216b2dc9f98b3dc86c6d823666307816f5116</tree>
  <committer>
    <name>Mislav Marohni&#263;</name>
    <email>mislav.marohnic@gmail.com</email>
  </committer>
</commit>
