aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/test/core_ext')
-rw-r--r--activesupport/test/core_ext/module/attribute_aliasing_test.rb25
1 files changed, 24 insertions, 1 deletions
diff --git a/activesupport/test/core_ext/module/attribute_aliasing_test.rb b/activesupport/test/core_ext/module/attribute_aliasing_test.rb
index 66ddbfe62a..05f7a5c4ca 100644
--- a/activesupport/test/core_ext/module/attribute_aliasing_test.rb
+++ b/activesupport/test/core_ext/module/attribute_aliasing_test.rb
@@ -2,15 +2,20 @@ require File.dirname(__FILE__) + '/../../abstract_unit'
module AttributeAliasing
class Content
- attr_accessor :title
+ attr_accessor :title, :Data
def title?
!title.nil?
end
+
+ def Data?
+ !self.Data.nil?
+ end
end
class Email < Content
alias_attribute :subject, :title
+ alias_attribute :body, :Data
end
end
@@ -28,4 +33,22 @@ class AttributeAliasingTest < Test::Unit::TestCase
assert_equal "We got a long way to go", e.title
assert e.title?
end
+
+ def test_aliasing_to_uppercase_attributes
+ # Although it's very un-Ruby, some people's AR-mapped tables have
+ # upper-case attributes, and when people want to alias those names
+ # to more sensible ones, everything goes *foof*.
+ e = AttributeAliasing::Email.new
+
+ assert !e.body?
+ assert !e.Data?
+
+ e.body = "No, really, this is not a joke."
+ assert_equal "No, really, this is not a joke.", e.Data
+ assert e.Data?
+
+ e.Data = "Uppercased methods are teh suck"
+ assert_equal "Uppercased methods are teh suck", e.body
+ assert e.body?
+ end
end