diff options
Diffstat (limited to 'activesupport/test/core_ext/module/attribute_aliasing_test.rb')
-rw-r--r-- | activesupport/test/core_ext/module/attribute_aliasing_test.rb | 25 |
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 |