aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2016-08-08 12:35:29 +0200
committerYves Senn <yves.senn@gmail.com>2016-08-08 12:35:29 +0200
commite9852c92bfa5815c02a33b52f69f12b99578fe29 (patch)
tree6ba4df4490d8260439637ba12c12822440f1e151 /activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb
parent628474f2d3330f8a5f14d87153efbed1fcb23e0e (diff)
parent3529e58efd21697cb5559fe622df8013179625a2 (diff)
downloadrails-e9852c92bfa5815c02a33b52f69f12b99578fe29.tar.gz
rails-e9852c92bfa5815c02a33b52f69f12b99578fe29.tar.bz2
rails-e9852c92bfa5815c02a33b52f69f12b99578fe29.zip
Merge pull request #25681 from willnet/fix-thread_mattr_accessor
Fix `thread_mattr_accessor` share variable superclass with subclass
Diffstat (limited to 'activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb')
-rw-r--r--activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb b/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb
index cda5a34442..b816fa50e3 100644
--- a/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb
+++ b/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb
@@ -8,6 +8,12 @@ class ModuleAttributeAccessorPerThreadTest < ActiveSupport::TestCase
thread_mattr_accessor :bar, instance_writer: false
thread_mattr_reader :shaq, instance_reader: false
thread_mattr_accessor :camp, instance_accessor: false
+
+ def self.name; "MyClass" end
+ end
+
+ @subclass = Class.new(@class) do
+ def self.name; "SubMyClass" end
end
@object = @class.new
@@ -112,4 +118,14 @@ class ModuleAttributeAccessorPerThreadTest < ActiveSupport::TestCase
assert_equal @class.foo, @object.foo
end
+
+ def test_should_not_affect_superclass_if_subclass_set_value
+ @class.foo = "super"
+ assert_equal @class.foo, "super"
+ assert_nil @subclass.foo
+
+ @subclass.foo = "sub"
+ assert_equal @class.foo, "super"
+ assert_equal @subclass.foo, "sub"
+ end
end