aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-03-19 12:01:48 +0100
committerJosé Valim <jose.valim@gmail.com>2010-03-19 12:01:48 +0100
commitfbe35656a95228f760a2cd09676423ba41fe70ab (patch)
treec250acd14fa2fead65ba64a7d2b7cfab84dda782 /activesupport/test
parentb395c81e3c56f03a1a49f470883507eb70bb5cb3 (diff)
downloadrails-fbe35656a95228f760a2cd09676423ba41fe70ab.tar.gz
rails-fbe35656a95228f760a2cd09676423ba41fe70ab.tar.bz2
rails-fbe35656a95228f760a2cd09676423ba41fe70ab.zip
Singleton classes returns parent's methods with instance_methods(false) and this makes remove_method in Module#delegate fail. Add a test case and fix the bug.
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/core_ext/module_test.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/module_test.rb b/activesupport/test/core_ext/module_test.rb
index 9edd7cc7c0..1712b0649b 100644
--- a/activesupport/test/core_ext/module_test.rb
+++ b/activesupport/test/core_ext/module_test.rb
@@ -141,6 +141,20 @@ class ModuleTest < Test::Unit::TestCase
assert_equal 0.0, nil_project.to_f
end
+ def test_delegation_does_not_raise_error_when_removing_singleton_instance_methods
+ parent = Class.new do
+ def self.parent_method; end
+ end
+
+ assert_nothing_raised do
+ child = Class.new(parent) do
+ class << self
+ delegate :parent_method, :to => :superclass
+ end
+ end
+ end
+ end
+
def test_parent
assert_equal Yz::Zy, Yz::Zy::Cd.parent
assert_equal Yz, Yz::Zy.parent