diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index 4e5f885..6ecc31b 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -1398,4 +1398,29 @@ class TestModule < Test::Unit::TestCase assert_equal([:@@bar, :@@foo], m2.class_variables(true)) assert_equal([:@@bar], m2.class_variables(false)) end + + def test_extend_module_with_protected_method + list = [] + + x = Class.new { + extend Module.new { + protected + + define_method(:inherited) do |klass| + list << "protected" + super(klass) + end + } + + extend Module.new { + define_method(:inherited) do |klass| + list << "public" + super(klass) + end + } + } + + Class.new(x) + assert_equal ['public', 'protected'], list + end end