aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2006-03-16 02:46:01 +0000
committerRick Olson <technoweenie@gmail.com>2006-03-16 02:46:01 +0000
commitdef746030c20697f2c4376515169eeda2f6332b4 (patch)
tree1569968114c0c728011b450ff10ac278914f60e8 /activerecord/test
parent0859779d6f1cadfec12f1112c80382658466ab7d (diff)
downloadrails-def746030c20697f2c4376515169eeda2f6332b4.tar.gz
rails-def746030c20697f2c4376515169eeda2f6332b4.tar.bz2
rails-def746030c20697f2c4376515169eeda2f6332b4.zip
Added Base.abstract_class? that marks which classes are not part of the Active Record hierarchy. closes #3704
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3882 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/associations_join_model_test.rb10
-rwxr-xr-xactiverecord/test/base_test.rb9
-rw-r--r--activerecord/test/fixtures/post.rb4
3 files changed, 20 insertions, 3 deletions
diff --git a/activerecord/test/associations_join_model_test.rb b/activerecord/test/associations_join_model_test.rb
index 2d74895664..58208ced65 100644
--- a/activerecord/test/associations_join_model_test.rb
+++ b/activerecord/test/associations_join_model_test.rb
@@ -38,7 +38,15 @@ class AssociationsJoinModelTest < Test::Unit::TestCase
def test_polymorphic_has_many_going_through_join_model
assert_equal tags(:general), posts(:welcome).tags.first
end
-
+
+ def test_polymorphic_has_many_create_model_with_inheritance_and_custom_base_class
+ post = SubStiPost.create :title => 'SubStiPost', :body => 'SubStiPost body'
+ assert_instance_of SubStiPost, post
+
+ tagging = tags(:misc).taggings.create(:taggable => post)
+ assert_equal "SubStiPost", tagging.taggable_type
+ end
+
def test_polymorphic_has_many_going_through_join_model_with_inheritance
assert_equal tags(:general), posts(:thinking).tags.first
end
diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb
index d910215a0a..de08118240 100755
--- a/activerecord/test/base_test.rb
+++ b/activerecord/test/base_test.rb
@@ -21,6 +21,7 @@ class TestOracleDefault < ActiveRecord::Base; end
class LoosePerson < ActiveRecord::Base
attr_protected :credit_rating, :administrator
+ self.abstract_class = true
end
class LooseDescendant < LoosePerson
@@ -1148,8 +1149,12 @@ class BasicsTest < Test::Unit::TestCase
end
def test_base_class
- assert_equal LoosePerson, LoosePerson.base_class
- assert_equal LoosePerson, LooseDescendant.base_class
+ assert LoosePerson.abstract_class?
+ assert !LooseDescendant.abstract_class?
+ assert_equal LoosePerson, LoosePerson.base_class
+ assert_equal LooseDescendant, LooseDescendant.base_class
+ assert_equal TightPerson, TightPerson.base_class
+ assert_equal TightPerson, TightDescendant.base_class
end
def test_assert_queries
diff --git a/activerecord/test/fixtures/post.rb b/activerecord/test/fixtures/post.rb
index e5b95aff32..a00fd80671 100644
--- a/activerecord/test/fixtures/post.rb
+++ b/activerecord/test/fixtures/post.rb
@@ -39,5 +39,9 @@ end
class SpecialPost < Post; end;
class StiPost < Post
+ self.abstract_class = true
has_one :special_comment, :class_name => "SpecialComment"
end
+
+class SubStiPost < StiPost
+end