annotate test/unit/initializers/patches_test.rb @ 1628:9c5f8e24dadc live tip

Quieten this cron script
author Chris Cannam
date Tue, 25 Aug 2020 11:38:49 +0100
parents dffacf8a6908
children
rev   line source
Chris@507 1 # Redmine - project management software
Chris@1494 2 # Copyright (C) 2006-2014 Jean-Philippe Lang
Chris@507 3 #
Chris@507 4 # This program is free software; you can redistribute it and/or
Chris@507 5 # modify it under the terms of the GNU General Public License
Chris@507 6 # as published by the Free Software Foundation; either version 2
Chris@507 7 # of the License, or (at your option) any later version.
Chris@507 8 #
Chris@507 9 # This program is distributed in the hope that it will be useful,
Chris@507 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@507 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@507 12 # GNU General Public License for more details.
Chris@507 13 #
Chris@507 14 # You should have received a copy of the GNU General Public License
Chris@507 15 # along with this program; if not, write to the Free Software
Chris@507 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Chris@507 17
Chris@507 18 require File.expand_path('../../../test_helper', __FILE__)
Chris@507 19
Chris@507 20 class PatchesTest < ActiveSupport::TestCase
Chris@507 21 include Redmine::I18n
Chris@507 22
Chris@1464 23 def setup
Chris@1464 24 Setting.default_language = 'en'
Chris@1517 25 @symbols = { :a => 1, :b => 2 }
Chris@1517 26 @keys = %w( blue green red pink orange )
Chris@1517 27 @values = %w( 000099 009900 aa0000 cc0066 cc6633 )
Chris@1517 28 @hash = Hash.new
Chris@1517 29 @ordered_hash = ActiveSupport::OrderedHash.new
Chris@1517 30
Chris@1517 31 @keys.each_with_index do |key, index|
Chris@1517 32 @hash[key] = @values[index]
Chris@1517 33 @ordered_hash[key] = @values[index]
Chris@1517 34 end
Chris@1464 35 end
Chris@507 36
Chris@1464 37 test "ActiveRecord::Base.human_attribute_name should transform name to field_name" do
Chris@1464 38 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on')
Chris@1464 39 end
Chris@507 40
Chris@1464 41 test "ActiveRecord::Base.human_attribute_name should cut extra _id suffix for better validation" do
Chris@1464 42 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on_id')
Chris@1464 43 end
Chris@507 44
Chris@1464 45 test "ActiveRecord::Base.human_attribute_name should default to humanized value if no translation has been found (useful for custom fields)" do
Chris@1464 46 assert_equal 'Patch name', ActiveRecord::Base.human_attribute_name('Patch name')
Chris@507 47 end
Chris@1517 48
Chris@1517 49 # https://github.com/rails/rails/pull/14198/files
Chris@1517 50 if RUBY_VERSION >= "1.9"
Chris@1517 51 def test_indifferent_select
Chris@1517 52 hash = ActiveSupport::HashWithIndifferentAccess.new(@symbols).select { |_ ,v| v == 1 }
Chris@1517 53 assert_equal({ 'a' => 1 }, hash)
Chris@1517 54 assert_instance_of ((Rails::VERSION::MAJOR < 4 && RUBY_VERSION < "2.1") ?
Chris@1517 55 Hash : ActiveSupport::HashWithIndifferentAccess),
Chris@1517 56 hash
Chris@1517 57 end
Chris@1517 58
Chris@1517 59 def test_indifferent_select_bang
Chris@1517 60 indifferent_strings = ActiveSupport::HashWithIndifferentAccess.new(@symbols)
Chris@1517 61 indifferent_strings.select! { |_, v| v == 1 }
Chris@1517 62 assert_equal({ 'a' => 1 }, indifferent_strings)
Chris@1517 63 assert_instance_of ActiveSupport::HashWithIndifferentAccess, indifferent_strings
Chris@1517 64 end
Chris@1517 65 end
Chris@1517 66
Chris@1517 67 def test_indifferent_reject
Chris@1517 68 hash = ActiveSupport::HashWithIndifferentAccess.new(@symbols).reject { |_, v| v != 1 }
Chris@1517 69 assert_equal({ 'a' => 1 }, hash)
Chris@1517 70 assert_instance_of ActiveSupport::HashWithIndifferentAccess, hash
Chris@1517 71 end
Chris@1517 72
Chris@1517 73 def test_indifferent_reject_bang
Chris@1517 74 indifferent_strings = ActiveSupport::HashWithIndifferentAccess.new(@symbols)
Chris@1517 75 indifferent_strings.reject! { |_, v| v != 1 }
Chris@1517 76 assert_equal({ 'a' => 1 }, indifferent_strings)
Chris@1517 77 assert_instance_of ActiveSupport::HashWithIndifferentAccess, indifferent_strings
Chris@1517 78 end
Chris@1517 79
Chris@1517 80 if RUBY_VERSION >= "1.9"
Chris@1517 81 def test_select
Chris@1517 82 assert_equal @keys, @ordered_hash.select { true }.map(&:first)
Chris@1517 83 new_ordered_hash = @ordered_hash.select { true }
Chris@1517 84 assert_equal @keys, new_ordered_hash.map(&:first)
Chris@1517 85 assert_instance_of ((Rails::VERSION::MAJOR < 4 && RUBY_VERSION < "2.1") ?
Chris@1517 86 Hash : ActiveSupport::OrderedHash),
Chris@1517 87 new_ordered_hash
Chris@1517 88 end
Chris@1517 89 end
Chris@1517 90
Chris@1517 91 def test_reject
Chris@1517 92 copy = @ordered_hash.dup
Chris@1517 93 new_ordered_hash = @ordered_hash.reject { |k, _| k == 'pink' }
Chris@1517 94 assert_equal copy, @ordered_hash
Chris@1517 95 assert !new_ordered_hash.keys.include?('pink')
Chris@1517 96 assert @ordered_hash.keys.include?('pink')
Chris@1517 97 assert_instance_of ActiveSupport::OrderedHash, new_ordered_hash
Chris@1517 98 end
Chris@507 99 end