aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/inclusion_test.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/test/cases/inclusion_test.rb b/activerecord/test/cases/inclusion_test.rb
index 297c7a9923..8f095e4953 100644
--- a/activerecord/test/cases/inclusion_test.rb
+++ b/activerecord/test/cases/inclusion_test.rb
@@ -82,6 +82,42 @@ class InclusionUnitTest < ActiveRecord::TestCase
def test_included_twice
@klass.send :include, ActiveRecord::Model
end
+
+ def test_deprecation_proxy
+ proxy = ActiveRecord::Model::DeprecationProxy.new
+
+ assert_equal ActiveRecord::Model.name, proxy.name
+ assert_equal ActiveRecord::Base.superclass, assert_deprecated { proxy.superclass }
+
+ sup, sup2 = nil, nil
+ ActiveSupport.on_load(:__test_active_record_model_deprecation) do
+ sup = superclass
+ sup2 = send(:superclass)
+ end
+ assert_deprecated do
+ ActiveSupport.run_load_hooks(:__test_active_record_model_deprecation, proxy)
+ end
+ assert_equal ActiveRecord::Base.superclass, sup
+ assert_equal ActiveRecord::Base.superclass, sup2
+ end
+
+ test "including in deprecation proxy" do
+ model, base = ActiveRecord::Model.dup, ActiveRecord::Base.dup
+ proxy = ActiveRecord::Model::DeprecationProxy.new(model, base)
+
+ mod = Module.new
+ proxy.include mod
+ assert model < mod
+ end
+
+ test "extending in deprecation proxy" do
+ model, base = ActiveRecord::Model.dup, ActiveRecord::Base.dup
+ proxy = ActiveRecord::Model::DeprecationProxy.new(model, base)
+
+ mod = Module.new
+ assert_deprecated { proxy.extend mod }
+ assert base.singleton_class < mod
+ end
end
class InclusionFixturesTest < ActiveRecord::TestCase