OSDN Git Service

Merged r6126 from trunk.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 2 Jul 2011 17:43:08 +0000 (17:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 2 Jul 2011 17:43:08 +0000 (17:43 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@6161 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/initializers/10-patches.rb
test/unit/initializers/patches_test.rb [new file with mode: 0644]

index 0e23a3d..bb4a7a2 100644 (file)
@@ -7,7 +7,7 @@ module ActiveRecord
     
     # Translate attribute names for validation errors display
     def self.human_attribute_name(attr)
-      l("field_#{attr.to_s.gsub(/_id$/, '')}")
+      l("field_#{attr.to_s.gsub(/_id$/, '')}", :default => attr)
     end
   end
 end
diff --git a/test/unit/initializers/patches_test.rb b/test/unit/initializers/patches_test.rb
new file mode 100644 (file)
index 0000000..b8959f3
--- /dev/null
@@ -0,0 +1,40 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# 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.expand_path('../../../test_helper', __FILE__)
+
+class PatchesTest < ActiveSupport::TestCase
+  include Redmine::I18n
+
+  context "ActiveRecord::Base.human_attribute_name" do
+    setup do
+      Setting.default_language = 'en'
+    end
+
+    should "transform name to field_name" do
+      assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on')
+    end
+
+    should "cut extra _id suffix for better validation" do
+      assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on_id')
+    end
+
+    should "default to humanized value if no translation has been found (useful for custom fields)" do
+      assert_equal 'Patch name', ActiveRecord::Base.human_attribute_name('Patch name')
+    end
+  end
+end