X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factiverecord%2Ftest%2Fcases%2Fassociations%2Feager_load_includes_full_sti_class_test.rb;fp=vendor%2Frails%2Factiverecord%2Ftest%2Fcases%2Fassociations%2Feager_load_includes_full_sti_class_test.rb;h=7c470616a5a31c841e582abf83827a42ed836393;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git

diff --git a/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb b/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb
new file mode 100644
index 0000000..7c47061
--- /dev/null
+++ b/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb
@@ -0,0 +1,36 @@
+require 'cases/helper'
+require 'models/post'
+require 'models/tagging'
+
+module Namespaced
+  class Post < ActiveRecord::Base
+    set_table_name 'posts'
+    has_one :tagging, :as => :taggable, :class_name => 'Tagging'
+  end
+end
+
+class EagerLoadIncludeFullStiClassNamesTest < ActiveRecord::TestCase
+
+  def setup
+    generate_test_objects
+  end
+
+  def generate_test_objects
+    post = Namespaced::Post.create( :title => 'Great stuff', :body => 'This is not', :author_id => 1 )
+    tagging = Tagging.create( :taggable => post )
+  end
+
+  def test_class_names
+    old = ActiveRecord::Base.store_full_sti_class
+
+    ActiveRecord::Base.store_full_sti_class = false
+    post = Namespaced::Post.find_by_title( 'Great stuff', :include => :tagging )
+    assert_nil post.tagging
+
+    ActiveRecord::Base.store_full_sti_class = true
+    post = Namespaced::Post.find_by_title( 'Great stuff', :include => :tagging )
+    assert_equal 'Tagging', post.tagging.class.name
+  ensure
+    ActiveRecord::Base.store_full_sti_class = old
+  end
+end