diff test/functional/application_controller_test.rb @ 117:af80e5618e9b redmine-1.1

* Update to Redmine 1.1-stable branch (Redmine SVN rev 4707)
author Chris Cannam
date Thu, 13 Jan 2011 12:53:21 +0000
parents 513646585e45
children 0c939c159af4
line wrap: on
line diff
--- a/test/functional/application_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/application_controller_test.rb	Thu Jan 13 12:53:21 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'application_controller'
 
 # Re-raise errors caught by the controller.
@@ -43,4 +43,61 @@
   def test_call_hook_mixed_in
     assert @controller.respond_to?(:call_hook)
   end
+  
+  context "test_api_offset_and_limit" do
+    context "without params" do
+      should "return 0, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({})
+      end
+    end
+    
+    context "with limit" do
+      should "return 0, limit" do
+        assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30})
+      end
+      
+      should "not exceed 100" do
+        assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10})
+      end
+    end
+    
+    context "with offset" do
+      should "return offset, 25" do
+        assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50})
+        end
+      end
+    end
+    
+    context "with page" do
+      should "return offset, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1})
+        assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0})
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
+          assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
+        end
+      end
+    end
+  end
 end