Chris@0: # redMine - project management software Chris@0: # Copyright (C) 2006-2007 Jean-Philippe Lang Chris@0: # Chris@0: # This program is free software; you can redistribute it and/or Chris@0: # modify it under the terms of the GNU General Public License Chris@0: # as published by the Free Software Foundation; either version 2 Chris@0: # of the License, or (at your option) any later version. Chris@0: # Chris@0: # This program is distributed in the hope that it will be useful, Chris@0: # but WITHOUT ANY WARRANTY; without even the implied warranty of Chris@0: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Chris@0: # GNU General Public License for more details. Chris@0: # Chris@0: # You should have received a copy of the GNU General Public License Chris@0: # along with this program; if not, write to the Free Software Chris@0: # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Chris@0: Chris@119: require File.expand_path('../../test_helper', __FILE__) Chris@0: require 'application_controller' Chris@0: Chris@0: class ApplicationControllerTest < ActionController::TestCase Chris@0: include Redmine::I18n Chris@0: Chris@0: def setup Chris@0: @controller = ApplicationController.new Chris@0: @request = ActionController::TestRequest.new Chris@0: @response = ActionController::TestResponse.new Chris@0: end Chris@0: Chris@0: # check that all language files are valid Chris@0: def test_localization Chris@0: lang_files_count = Dir["#{RAILS_ROOT}/config/locales/*.yml"].size Chris@0: assert_equal lang_files_count, valid_languages.size Chris@0: valid_languages.each do |lang| Chris@0: assert set_language_if_valid(lang) Chris@0: end Chris@0: set_language_if_valid('en') Chris@0: end Chris@0: Chris@0: def test_call_hook_mixed_in Chris@0: assert @controller.respond_to?(:call_hook) Chris@0: end Chris@119: Chris@119: context "test_api_offset_and_limit" do Chris@119: context "without params" do Chris@119: should "return 0, 25" do Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({}) Chris@119: end Chris@119: end Chris@119: Chris@119: context "with limit" do Chris@119: should "return 0, limit" do Chris@119: assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30}) Chris@119: end Chris@119: Chris@119: should "not exceed 100" do Chris@119: assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120}) Chris@119: end Chris@119: Chris@119: should "not be negative" do Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10}) Chris@119: end Chris@119: end Chris@119: Chris@119: context "with offset" do Chris@119: should "return offset, 25" do Chris@119: assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10}) Chris@119: end Chris@119: Chris@119: should "not be negative" do Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10}) Chris@119: end Chris@119: Chris@119: context "and limit" do Chris@119: should "return offset, limit" do Chris@119: assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50}) Chris@119: end Chris@119: end Chris@119: end Chris@119: Chris@119: context "with page" do Chris@119: should "return offset, 25" do Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1}) Chris@119: assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3}) Chris@119: end Chris@119: Chris@119: should "not be negative" do Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0}) Chris@119: assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2}) Chris@119: end Chris@119: Chris@119: context "and limit" do Chris@119: should "return offset, limit" do Chris@119: assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100}) Chris@119: assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100}) Chris@119: end Chris@119: end Chris@119: end Chris@119: end Chris@0: end