ibm_db 2.5.9-x86-mswin32-60 → 2.5.10-x86-mswin32-60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +7 -0
 - data/README +79 -141
 - data/ext/extconf.rb +74 -13
 - data/ext/ibm_db.c +20 -5
 - data/lib/active_record/connection_adapters/ibm_db_adapter.rb +45 -8
 - data/lib/mswin32/rb18x/ibm_db.so +0 -0
 - data/lib/mswin32/rb19x/ibm_db.so +0 -0
 - data/test/cases/adapter_test.rb +162 -160
 - data/test/cases/associations/belongs_to_associations_test.rb +23 -0
 - data/test/cases/associations/cascaded_eager_loading_test.rb +3 -7
 - data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +40 -10
 - data/test/cases/associations/join_model_test.rb +4 -4
 - data/test/cases/attribute_methods_test.rb +169 -33
 - data/test/cases/base_test.rb +302 -77
 - data/test/cases/calculations_test.rb +37 -1
 - data/test/cases/migration_test.rb +183 -115
 - data/test/cases/persistence_test.rb +17 -11
 - data/test/cases/query_cache_test.rb +18 -3
 - data/test/cases/relations_test.rb +178 -15
 - data/test/cases/schema_dumper_test.rb +5 -1
 - data/test/cases/transaction_callbacks_test.rb +2 -2
 - data/test/cases/xml_serialization_test.rb +133 -1
 - data/test/schema/schema.rb +22 -3
 - metadata +2 -2
 
    
        data/test/cases/base_test.rb
    CHANGED
    
    | 
         @@ -21,9 +21,19 @@ require 'models/parrot' 
     | 
|
| 
       21 
21 
     | 
    
         
             
            require 'models/person'
         
     | 
| 
       22 
22 
     | 
    
         
             
            require 'models/edge'
         
     | 
| 
       23 
23 
     | 
    
         
             
            require 'models/joke'
         
     | 
| 
      
 24 
     | 
    
         
            +
            require 'models/bulb'
         
     | 
| 
      
 25 
     | 
    
         
            +
            require 'models/bird'
         
     | 
| 
       24 
26 
     | 
    
         
             
            require 'rexml/document'
         
     | 
| 
       25 
27 
     | 
    
         
             
            require 'active_support/core_ext/exception'
         
     | 
| 
      
 28 
     | 
    
         
            +
            require 'bcrypt'
         
     | 
| 
       26 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
            class FirstAbstractClass < ActiveRecord::Base
         
     | 
| 
      
 31 
     | 
    
         
            +
              self.abstract_class = true
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
      
 33 
     | 
    
         
            +
            class SecondAbstractClass < FirstAbstractClass
         
     | 
| 
      
 34 
     | 
    
         
            +
              self.abstract_class = true
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
      
 36 
     | 
    
         
            +
            class Photo < SecondAbstractClass; end
         
     | 
| 
       27 
37 
     | 
    
         
             
            class Category < ActiveRecord::Base; end
         
     | 
| 
       28 
38 
     | 
    
         
             
            class Categorization < ActiveRecord::Base; end
         
     | 
| 
       29 
39 
     | 
    
         
             
            class Smarts < ActiveRecord::Base; end
         
     | 
| 
         @@ -53,9 +63,28 @@ class Weird < ActiveRecord::Base; end 
     | 
|
| 
       53 
63 
     | 
    
         | 
| 
       54 
64 
     | 
    
         
             
            class Boolean < ActiveRecord::Base; end
         
     | 
| 
       55 
65 
     | 
    
         | 
| 
      
 66 
     | 
    
         
            +
            class LintTest < ActiveRecord::TestCase
         
     | 
| 
      
 67 
     | 
    
         
            +
              include ActiveModel::Lint::Tests
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              class LintModel < ActiveRecord::Base; end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 72 
     | 
    
         
            +
                @model = LintModel.new
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
            end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
       56 
76 
     | 
    
         
             
            class BasicsTest < ActiveRecord::TestCase
         
     | 
| 
       57 
77 
     | 
    
         
             
              fixtures :topics, :companies, :developers, :projects, :computers, :accounts, :minimalistics, 'warehouse_things', :authors, :categorizations, :categories, :posts
         
     | 
| 
       58 
78 
     | 
    
         | 
| 
      
 79 
     | 
    
         
            +
              def test_generated_methods_modules
         
     | 
| 
      
 80 
     | 
    
         
            +
                modules = Computer.ancestors
         
     | 
| 
      
 81 
     | 
    
         
            +
                assert modules.include?(Computer::GeneratedFeatureMethods)
         
     | 
| 
      
 82 
     | 
    
         
            +
                assert_equal(Computer::GeneratedFeatureMethods, Computer.generated_feature_methods)
         
     | 
| 
      
 83 
     | 
    
         
            +
                assert(modules.index(Computer.generated_attribute_methods) > modules.index(Computer.generated_feature_methods),
         
     | 
| 
      
 84 
     | 
    
         
            +
                       "generated_attribute_methods must be higher in inheritance hierarchy than generated_feature_methods")
         
     | 
| 
      
 85 
     | 
    
         
            +
                assert_not_equal Computer.generated_feature_methods, Post.generated_feature_methods
         
     | 
| 
      
 86 
     | 
    
         
            +
              end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
       59 
88 
     | 
    
         
             
              def test_column_names_are_escaped
         
     | 
| 
       60 
89 
     | 
    
         
             
                conn      = ActiveRecord::Base.connection
         
     | 
| 
       61 
90 
     | 
    
         
             
                classname = conn.class.name[/[^:]*$/]
         
     | 
| 
         @@ -257,6 +286,41 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       257 
286 
     | 
    
         
             
                end
         
     | 
| 
       258 
287 
     | 
    
         
             
              end
         
     | 
| 
       259 
288 
     | 
    
         | 
| 
      
 289 
     | 
    
         
            +
              def test_create_after_initialize_without_block
         
     | 
| 
      
 290 
     | 
    
         
            +
                cb = CustomBulb.create(:name => 'Dude')
         
     | 
| 
      
 291 
     | 
    
         
            +
                assert_equal('Dude', cb.name)
         
     | 
| 
      
 292 
     | 
    
         
            +
                assert_equal(true, cb.frickinawesome)
         
     | 
| 
      
 293 
     | 
    
         
            +
              end
         
     | 
| 
      
 294 
     | 
    
         
            +
             
     | 
| 
      
 295 
     | 
    
         
            +
              def test_create_after_initialize_with_block
         
     | 
| 
      
 296 
     | 
    
         
            +
                cb = CustomBulb.create {|c| c.name = 'Dude' }
         
     | 
| 
      
 297 
     | 
    
         
            +
                assert_equal('Dude', cb.name)
         
     | 
| 
      
 298 
     | 
    
         
            +
                assert_equal(true, cb.frickinawesome)
         
     | 
| 
      
 299 
     | 
    
         
            +
              end
         
     | 
| 
      
 300 
     | 
    
         
            +
             
     | 
| 
      
 301 
     | 
    
         
            +
              def test_first_or_create
         
     | 
| 
      
 302 
     | 
    
         
            +
                parrot = Bird.first_or_create(:color => 'green', :name => 'parrot')
         
     | 
| 
      
 303 
     | 
    
         
            +
                assert parrot.persisted?
         
     | 
| 
      
 304 
     | 
    
         
            +
                the_same_parrot = Bird.first_or_create(:color => 'yellow', :name => 'macaw')
         
     | 
| 
      
 305 
     | 
    
         
            +
                assert_equal parrot, the_same_parrot
         
     | 
| 
      
 306 
     | 
    
         
            +
              end
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
      
 308 
     | 
    
         
            +
              def test_first_or_create_bang
         
     | 
| 
      
 309 
     | 
    
         
            +
                assert_raises(ActiveRecord::RecordInvalid) { Bird.first_or_create! }
         
     | 
| 
      
 310 
     | 
    
         
            +
                parrot = Bird.first_or_create!(:color => 'green', :name => 'parrot')
         
     | 
| 
      
 311 
     | 
    
         
            +
                assert parrot.persisted?
         
     | 
| 
      
 312 
     | 
    
         
            +
                the_same_parrot = Bird.first_or_create!(:color => 'yellow', :name => 'macaw')
         
     | 
| 
      
 313 
     | 
    
         
            +
                assert_equal parrot, the_same_parrot
         
     | 
| 
      
 314 
     | 
    
         
            +
              end
         
     | 
| 
      
 315 
     | 
    
         
            +
             
     | 
| 
      
 316 
     | 
    
         
            +
              def test_first_or_initialize
         
     | 
| 
      
 317 
     | 
    
         
            +
                parrot = Bird.first_or_initialize(:color => 'green', :name => 'parrot')
         
     | 
| 
      
 318 
     | 
    
         
            +
                assert_kind_of Bird, parrot
         
     | 
| 
      
 319 
     | 
    
         
            +
                assert !parrot.persisted?
         
     | 
| 
      
 320 
     | 
    
         
            +
                assert parrot.new_record?
         
     | 
| 
      
 321 
     | 
    
         
            +
                assert parrot.valid?
         
     | 
| 
      
 322 
     | 
    
         
            +
              end
         
     | 
| 
      
 323 
     | 
    
         
            +
             
     | 
| 
       260 
324 
     | 
    
         
             
              def test_load
         
     | 
| 
       261 
325 
     | 
    
         
             
                topics = Topic.find(:all, :order => 'id')
         
     | 
| 
       262 
326 
     | 
    
         
             
                assert_equal(4, topics.size)
         
     | 
| 
         @@ -516,17 +580,12 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       516 
580 
     | 
    
         
             
                weird = Weird.create('a$b' => 'value')
         
     | 
| 
       517 
581 
     | 
    
         
             
                weird.reload
         
     | 
| 
       518 
582 
     | 
    
         
             
                assert_equal 'value', weird.send('a$b')
         
     | 
| 
      
 583 
     | 
    
         
            +
                assert_equal 'value', weird.read_attribute('a$b')
         
     | 
| 
       519 
584 
     | 
    
         | 
| 
       520 
585 
     | 
    
         
             
                weird.update_column('a$b', 'value2')
         
     | 
| 
       521 
586 
     | 
    
         
             
                weird.reload
         
     | 
| 
       522 
587 
     | 
    
         
             
                assert_equal 'value2', weird.send('a$b')
         
     | 
| 
       523 
     | 
    
         
            -
             
     | 
| 
       524 
     | 
    
         
            -
             
     | 
| 
       525 
     | 
    
         
            -
              def test_attributes_guard_protected_attributes_is_deprecated
         
     | 
| 
       526 
     | 
    
         
            -
                attributes = { "title" => "An amazing title" }
         
     | 
| 
       527 
     | 
    
         
            -
                post = ProtectedTitlePost.new
         
     | 
| 
       528 
     | 
    
         
            -
                assert_deprecated { post.send(:attributes=, attributes, false) }
         
     | 
| 
       529 
     | 
    
         
            -
                assert_equal "An amazing title", post.title
         
     | 
| 
      
 588 
     | 
    
         
            +
                assert_equal 'value2', weird.read_attribute('a$b')
         
     | 
| 
       530 
589 
     | 
    
         
             
              end
         
     | 
| 
       531 
590 
     | 
    
         | 
| 
       532 
591 
     | 
    
         
             
              def test_multiparameter_attributes_on_date
         
     | 
| 
         @@ -544,7 +603,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       544 
603 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       545 
604 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       546 
605 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       547 
     | 
    
         
            -
                 
     | 
| 
      
 606 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       548 
607 
     | 
    
         
             
              end
         
     | 
| 
       549 
608 
     | 
    
         | 
| 
       550 
609 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_empty_month
         
     | 
| 
         @@ -553,7 +612,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       553 
612 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       554 
613 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       555 
614 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       556 
     | 
    
         
            -
                 
     | 
| 
      
 615 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       557 
616 
     | 
    
         
             
              end
         
     | 
| 
       558 
617 
     | 
    
         | 
| 
       559 
618 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_empty_day
         
     | 
| 
         @@ -562,7 +621,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       562 
621 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       563 
622 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       564 
623 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       565 
     | 
    
         
            -
                 
     | 
| 
      
 624 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       566 
625 
     | 
    
         
             
              end
         
     | 
| 
       567 
626 
     | 
    
         | 
| 
       568 
627 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_empty_day_and_year
         
     | 
| 
         @@ -571,7 +630,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       571 
630 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       572 
631 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       573 
632 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       574 
     | 
    
         
            -
                 
     | 
| 
      
 633 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       575 
634 
     | 
    
         
             
              end
         
     | 
| 
       576 
635 
     | 
    
         | 
| 
       577 
636 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_empty_day_and_month
         
     | 
| 
         @@ -580,7 +639,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       580 
639 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       581 
640 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       582 
641 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       583 
     | 
    
         
            -
                 
     | 
| 
      
 642 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       584 
643 
     | 
    
         
             
              end
         
     | 
| 
       585 
644 
     | 
    
         | 
| 
       586 
645 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_empty_year_and_month
         
     | 
| 
         @@ -589,7 +648,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       589 
648 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       590 
649 
     | 
    
         
             
                # note that extra #to_date call allows test to pass for Oracle, which
         
     | 
| 
       591 
650 
     | 
    
         
             
                # treats dates/times the same
         
     | 
| 
       592 
     | 
    
         
            -
                 
     | 
| 
      
 651 
     | 
    
         
            +
                assert_nil topic.last_read
         
     | 
| 
       593 
652 
     | 
    
         
             
              end
         
     | 
| 
       594 
653 
     | 
    
         | 
| 
       595 
654 
     | 
    
         
             
              def test_multiparameter_attributes_on_date_with_all_empty
         
     | 
| 
         @@ -682,12 +741,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       682 
741 
     | 
    
         
             
                }
         
     | 
| 
       683 
742 
     | 
    
         
             
                topic = Topic.find(1)
         
     | 
| 
       684 
743 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       685 
     | 
    
         
            -
                 
     | 
| 
       686 
     | 
    
         
            -
                assert_equal 1, topic.written_on.month
         
     | 
| 
       687 
     | 
    
         
            -
                assert_equal 1, topic.written_on.day
         
     | 
| 
       688 
     | 
    
         
            -
                assert_equal 0, topic.written_on.hour
         
     | 
| 
       689 
     | 
    
         
            -
                assert_equal 12, topic.written_on.min
         
     | 
| 
       690 
     | 
    
         
            -
                assert_equal 2, topic.written_on.sec
         
     | 
| 
      
 744 
     | 
    
         
            +
                assert_nil topic.written_on
         
     | 
| 
       691 
745 
     | 
    
         
             
              end
         
     | 
| 
       692 
746 
     | 
    
         | 
| 
       693 
747 
     | 
    
         
             
              def test_multiparameter_attributes_on_time_will_ignore_date_if_empty
         
     | 
| 
         @@ -697,12 +751,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       697 
751 
     | 
    
         
             
                }
         
     | 
| 
       698 
752 
     | 
    
         
             
                topic = Topic.find(1)
         
     | 
| 
       699 
753 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       700 
     | 
    
         
            -
                 
     | 
| 
       701 
     | 
    
         
            -
                assert_equal 1, topic.written_on.month
         
     | 
| 
       702 
     | 
    
         
            -
                assert_equal 1, topic.written_on.day
         
     | 
| 
       703 
     | 
    
         
            -
                assert_equal 16, topic.written_on.hour
         
     | 
| 
       704 
     | 
    
         
            -
                assert_equal 24, topic.written_on.min
         
     | 
| 
       705 
     | 
    
         
            -
                assert_equal 0, topic.written_on.sec
         
     | 
| 
      
 754 
     | 
    
         
            +
                assert_nil topic.written_on
         
     | 
| 
       706 
755 
     | 
    
         
             
              end
         
     | 
| 
       707 
756 
     | 
    
         
             
              def test_multiparameter_attributes_on_time_with_seconds_will_ignore_date_if_empty
         
     | 
| 
       708 
757 
     | 
    
         
             
                attributes = {
         
     | 
| 
         @@ -711,12 +760,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       711 
760 
     | 
    
         
             
                }
         
     | 
| 
       712 
761 
     | 
    
         
             
                topic = Topic.find(1)
         
     | 
| 
       713 
762 
     | 
    
         
             
                topic.attributes = attributes
         
     | 
| 
       714 
     | 
    
         
            -
                 
     | 
| 
       715 
     | 
    
         
            -
                assert_equal 1, topic.written_on.month
         
     | 
| 
       716 
     | 
    
         
            -
                assert_equal 1, topic.written_on.day
         
     | 
| 
       717 
     | 
    
         
            -
                assert_equal 16, topic.written_on.hour
         
     | 
| 
       718 
     | 
    
         
            -
                assert_equal 12, topic.written_on.min
         
     | 
| 
       719 
     | 
    
         
            -
                assert_equal 02, topic.written_on.sec
         
     | 
| 
      
 763 
     | 
    
         
            +
                assert_nil topic.written_on
         
     | 
| 
       720 
764 
     | 
    
         
             
              end
         
     | 
| 
       721 
765 
     | 
    
         | 
| 
       722 
766 
     | 
    
         
             
              def test_multiparameter_attributes_on_time_with_utc
         
     | 
| 
         @@ -1170,19 +1214,6 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1170 
1214 
     | 
    
         
             
                assert(auto.id > 0)
         
     | 
| 
       1171 
1215 
     | 
    
         
             
              end
         
     | 
| 
       1172 
1216 
     | 
    
         | 
| 
       1173 
     | 
    
         
            -
              def quote_column_name(name)
         
     | 
| 
       1174 
     | 
    
         
            -
                "<#{name}>"
         
     | 
| 
       1175 
     | 
    
         
            -
              end
         
     | 
| 
       1176 
     | 
    
         
            -
             
     | 
| 
       1177 
     | 
    
         
            -
              def test_quote_keys
         
     | 
| 
       1178 
     | 
    
         
            -
                ar = AutoId.new
         
     | 
| 
       1179 
     | 
    
         
            -
                source = {"foo" => "bar", "baz" => "quux"}
         
     | 
| 
       1180 
     | 
    
         
            -
                actual = ar.send(:quote_columns, self, source)
         
     | 
| 
       1181 
     | 
    
         
            -
                inverted = actual.invert
         
     | 
| 
       1182 
     | 
    
         
            -
                assert_equal("<foo>", inverted["bar"])
         
     | 
| 
       1183 
     | 
    
         
            -
                assert_equal("<baz>", inverted["quux"])
         
     | 
| 
       1184 
     | 
    
         
            -
              end
         
     | 
| 
       1185 
     | 
    
         
            -
             
     | 
| 
       1186 
1217 
     | 
    
         
             
              def test_sql_injection_via_find
         
     | 
| 
       1187 
1218 
     | 
    
         
             
                assert_raise(ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid) do
         
     | 
| 
       1188 
1219 
     | 
    
         
             
                  Topic.find("123456 OR id > 0")
         
     | 
| 
         @@ -1220,6 +1251,42 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1220 
1251 
     | 
    
         
             
                assert_equal(myobj, topic.content)
         
     | 
| 
       1221 
1252 
     | 
    
         
             
              end
         
     | 
| 
       1222 
1253 
     | 
    
         | 
| 
      
 1254 
     | 
    
         
            +
              def test_serialized_attribute_in_base_class
         
     | 
| 
      
 1255 
     | 
    
         
            +
                Topic.serialize("content", Hash)
         
     | 
| 
      
 1256 
     | 
    
         
            +
             
     | 
| 
      
 1257 
     | 
    
         
            +
                hash = { 'content1' => 'value1', 'content2' => 'value2' }
         
     | 
| 
      
 1258 
     | 
    
         
            +
                important_topic = ImportantTopic.create("content" => hash)
         
     | 
| 
      
 1259 
     | 
    
         
            +
                assert_equal(hash, important_topic.content)
         
     | 
| 
      
 1260 
     | 
    
         
            +
             
     | 
| 
      
 1261 
     | 
    
         
            +
                important_topic.reload
         
     | 
| 
      
 1262 
     | 
    
         
            +
                assert_equal(hash, important_topic.content)
         
     | 
| 
      
 1263 
     | 
    
         
            +
              end
         
     | 
| 
      
 1264 
     | 
    
         
            +
             
     | 
| 
      
 1265 
     | 
    
         
            +
              # This test was added to fix GH #4004. Obviously the value returned
         
     | 
| 
      
 1266 
     | 
    
         
            +
              # is not really the value 'before type cast' so we should maybe think
         
     | 
| 
      
 1267 
     | 
    
         
            +
              # about changing that in the future.
         
     | 
| 
      
 1268 
     | 
    
         
            +
              def test_serialized_attribute_before_type_cast_returns_unserialized_value
         
     | 
| 
      
 1269 
     | 
    
         
            +
                klass = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1270 
     | 
    
         
            +
                klass.table_name = "topics"
         
     | 
| 
      
 1271 
     | 
    
         
            +
                klass.serialize :content, Hash
         
     | 
| 
      
 1272 
     | 
    
         
            +
             
     | 
| 
      
 1273 
     | 
    
         
            +
                t = klass.new(:content => { :foo => :bar })
         
     | 
| 
      
 1274 
     | 
    
         
            +
                assert_equal({ :foo => :bar }, t.content_before_type_cast)
         
     | 
| 
      
 1275 
     | 
    
         
            +
                t.save!
         
     | 
| 
      
 1276 
     | 
    
         
            +
                t.reload
         
     | 
| 
      
 1277 
     | 
    
         
            +
                assert_equal({ :foo => :bar }, t.content_before_type_cast)
         
     | 
| 
      
 1278 
     | 
    
         
            +
              end
         
     | 
| 
      
 1279 
     | 
    
         
            +
             
     | 
| 
      
 1280 
     | 
    
         
            +
              def test_serialized_attribute_declared_in_subclass
         
     | 
| 
      
 1281 
     | 
    
         
            +
                hash = { 'important1' => 'value1', 'important2' => 'value2' }
         
     | 
| 
      
 1282 
     | 
    
         
            +
                important_topic = ImportantTopic.create("important" => hash)
         
     | 
| 
      
 1283 
     | 
    
         
            +
                assert_equal(hash, important_topic.important)
         
     | 
| 
      
 1284 
     | 
    
         
            +
             
     | 
| 
      
 1285 
     | 
    
         
            +
                important_topic.reload
         
     | 
| 
      
 1286 
     | 
    
         
            +
                assert_equal(hash, important_topic.important)
         
     | 
| 
      
 1287 
     | 
    
         
            +
                assert_equal(hash, important_topic.read_attribute(:important))
         
     | 
| 
      
 1288 
     | 
    
         
            +
              end
         
     | 
| 
      
 1289 
     | 
    
         
            +
             
     | 
| 
       1223 
1290 
     | 
    
         
             
              def test_serialized_time_attribute
         
     | 
| 
       1224 
1291 
     | 
    
         
             
                myobj = Time.local(2008,1,1,1,0)
         
     | 
| 
       1225 
1292 
     | 
    
         
             
                topic = Topic.create("content" => myobj).reload
         
     | 
| 
         @@ -1386,88 +1453,211 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1386 
1453 
     | 
    
         
             
                assert_equal dev, dev.reload
         
     | 
| 
       1387 
1454 
     | 
    
         
             
              end
         
     | 
| 
       1388 
1455 
     | 
    
         | 
| 
       1389 
     | 
    
         
            -
              def test_define_attr_method_with_value
         
     | 
| 
       1390 
     | 
    
         
            -
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1391 
     | 
    
         
            -
                k.send(:define_attr_method, :table_name, "foo")
         
     | 
| 
       1392 
     | 
    
         
            -
                assert_equal "foo", k.table_name
         
     | 
| 
       1393 
     | 
    
         
            -
              end
         
     | 
| 
       1394 
     | 
    
         
            -
             
     | 
| 
       1395 
     | 
    
         
            -
              def test_define_attr_method_with_block
         
     | 
| 
       1396 
     | 
    
         
            -
                k = Class.new( ActiveRecord::Base ) do
         
     | 
| 
       1397 
     | 
    
         
            -
                  class << self
         
     | 
| 
       1398 
     | 
    
         
            -
                    attr_accessor :foo_key
         
     | 
| 
       1399 
     | 
    
         
            -
                  end
         
     | 
| 
       1400 
     | 
    
         
            -
                end
         
     | 
| 
       1401 
     | 
    
         
            -
                k.foo_key = "id"
         
     | 
| 
       1402 
     | 
    
         
            -
                k.send(:define_attr_method, :foo_key) { "sys_" + original_foo_key }
         
     | 
| 
       1403 
     | 
    
         
            -
                assert_equal "sys_id", k.foo_key
         
     | 
| 
       1404 
     | 
    
         
            -
              end
         
     | 
| 
       1405 
     | 
    
         
            -
             
     | 
| 
       1406 
1456 
     | 
    
         
             
              def test_set_table_name_with_value
         
     | 
| 
       1407 
1457 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1408 
1458 
     | 
    
         
             
                k.table_name = "foo"
         
     | 
| 
       1409 
1459 
     | 
    
         
             
                assert_equal "foo", k.table_name
         
     | 
| 
       1410 
     | 
    
         
            -
             
     | 
| 
      
 1460 
     | 
    
         
            +
             
     | 
| 
      
 1461 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1462 
     | 
    
         
            +
                  k.set_table_name "bar"
         
     | 
| 
      
 1463 
     | 
    
         
            +
                end
         
     | 
| 
       1411 
1464 
     | 
    
         
             
                assert_equal "bar", k.table_name
         
     | 
| 
       1412 
1465 
     | 
    
         
             
              end
         
     | 
| 
       1413 
1466 
     | 
    
         | 
| 
       1414 
1467 
     | 
    
         
             
              def test_switching_between_table_name
         
     | 
| 
       1415 
1468 
     | 
    
         
             
                assert_difference("GoodJoke.count") do
         
     | 
| 
       1416 
     | 
    
         
            -
                  Joke. 
     | 
| 
      
 1469 
     | 
    
         
            +
                  Joke.table_name = "cold_jokes"
         
     | 
| 
       1417 
1470 
     | 
    
         
             
                  Joke.create
         
     | 
| 
       1418 
1471 
     | 
    
         | 
| 
       1419 
     | 
    
         
            -
                  Joke. 
     | 
| 
      
 1472 
     | 
    
         
            +
                  Joke.table_name = "funny_jokes"
         
     | 
| 
       1420 
1473 
     | 
    
         
             
                  Joke.create
         
     | 
| 
       1421 
1474 
     | 
    
         
             
                end
         
     | 
| 
       1422 
1475 
     | 
    
         
             
              end
         
     | 
| 
       1423 
1476 
     | 
    
         | 
| 
      
 1477 
     | 
    
         
            +
              def test_set_table_name_symbol_converted_to_string
         
     | 
| 
      
 1478 
     | 
    
         
            +
                Joke.table_name = :cold_jokes
         
     | 
| 
      
 1479 
     | 
    
         
            +
                assert_equal 'cold_jokes', Joke.table_name
         
     | 
| 
      
 1480 
     | 
    
         
            +
              end
         
     | 
| 
      
 1481 
     | 
    
         
            +
             
     | 
| 
       1424 
1482 
     | 
    
         
             
              def test_quoted_table_name_after_set_table_name
         
     | 
| 
       1425 
1483 
     | 
    
         
             
                klass = Class.new(ActiveRecord::Base)
         
     | 
| 
       1426 
1484 
     | 
    
         | 
| 
       1427 
     | 
    
         
            -
                klass. 
     | 
| 
      
 1485 
     | 
    
         
            +
                klass.table_name = "foo"
         
     | 
| 
       1428 
1486 
     | 
    
         
             
                assert_equal "foo", klass.table_name
         
     | 
| 
       1429 
1487 
     | 
    
         
             
                assert_equal klass.connection.quote_table_name("foo"), klass.quoted_table_name
         
     | 
| 
       1430 
1488 
     | 
    
         | 
| 
       1431 
     | 
    
         
            -
                klass. 
     | 
| 
      
 1489 
     | 
    
         
            +
                klass.table_name = "bar"
         
     | 
| 
       1432 
1490 
     | 
    
         
             
                assert_equal "bar", klass.table_name
         
     | 
| 
       1433 
1491 
     | 
    
         
             
                assert_equal klass.connection.quote_table_name("bar"), klass.quoted_table_name
         
     | 
| 
       1434 
1492 
     | 
    
         
             
              end
         
     | 
| 
       1435 
1493 
     | 
    
         | 
| 
       1436 
1494 
     | 
    
         
             
              def test_set_table_name_with_block
         
     | 
| 
       1437 
1495 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1438 
     | 
    
         
            -
                 
     | 
| 
       1439 
     | 
    
         
            -
             
     | 
| 
      
 1496 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1497 
     | 
    
         
            +
                  k.set_table_name "foo"
         
     | 
| 
      
 1498 
     | 
    
         
            +
                  k.set_table_name do
         
     | 
| 
      
 1499 
     | 
    
         
            +
                    ActiveSupport::Deprecation.silence { original_table_name } + "ks"
         
     | 
| 
      
 1500 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1501 
     | 
    
         
            +
                end
         
     | 
| 
      
 1502 
     | 
    
         
            +
                assert_equal "fooks", k.table_name
         
     | 
| 
      
 1503 
     | 
    
         
            +
              end
         
     | 
| 
      
 1504 
     | 
    
         
            +
             
     | 
| 
      
 1505 
     | 
    
         
            +
              def test_set_table_name_with_inheritance
         
     | 
| 
      
 1506 
     | 
    
         
            +
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
      
 1507 
     | 
    
         
            +
                def k.name; "Foo"; end
         
     | 
| 
      
 1508 
     | 
    
         
            +
                def k.table_name; super + "ks"; end
         
     | 
| 
      
 1509 
     | 
    
         
            +
                assert_equal "foosks", k.table_name
         
     | 
| 
      
 1510 
     | 
    
         
            +
              end
         
     | 
| 
      
 1511 
     | 
    
         
            +
             
     | 
| 
      
 1512 
     | 
    
         
            +
              def test_original_table_name
         
     | 
| 
      
 1513 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1514 
     | 
    
         
            +
                def k.name; "Foo"; end
         
     | 
| 
      
 1515 
     | 
    
         
            +
                k.table_name = "bar"
         
     | 
| 
      
 1516 
     | 
    
         
            +
             
     | 
| 
      
 1517 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1518 
     | 
    
         
            +
                  assert_equal "foos", k.original_table_name
         
     | 
| 
      
 1519 
     | 
    
         
            +
                end
         
     | 
| 
      
 1520 
     | 
    
         
            +
             
     | 
| 
      
 1521 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1522 
     | 
    
         
            +
                k.table_name = "omg"
         
     | 
| 
      
 1523 
     | 
    
         
            +
                k.table_name = "wtf"
         
     | 
| 
      
 1524 
     | 
    
         
            +
             
     | 
| 
      
 1525 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1526 
     | 
    
         
            +
                  assert_equal "omg", k.original_table_name
         
     | 
| 
      
 1527 
     | 
    
         
            +
                end
         
     | 
| 
       1440 
1528 
     | 
    
         
             
              end
         
     | 
| 
       1441 
1529 
     | 
    
         | 
| 
       1442 
1530 
     | 
    
         
             
              def test_set_primary_key_with_value
         
     | 
| 
       1443 
1531 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1444 
1532 
     | 
    
         
             
                k.primary_key = "foo"
         
     | 
| 
       1445 
1533 
     | 
    
         
             
                assert_equal "foo", k.primary_key
         
     | 
| 
       1446 
     | 
    
         
            -
             
     | 
| 
      
 1534 
     | 
    
         
            +
             
     | 
| 
      
 1535 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1536 
     | 
    
         
            +
                  k.set_primary_key "bar"
         
     | 
| 
      
 1537 
     | 
    
         
            +
                end
         
     | 
| 
       1447 
1538 
     | 
    
         
             
                assert_equal "bar", k.primary_key
         
     | 
| 
       1448 
1539 
     | 
    
         
             
              end
         
     | 
| 
       1449 
1540 
     | 
    
         | 
| 
       1450 
1541 
     | 
    
         
             
              def test_set_primary_key_with_block
         
     | 
| 
       1451 
1542 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1452 
1543 
     | 
    
         
             
                k.primary_key = 'id'
         
     | 
| 
       1453 
     | 
    
         
            -
             
     | 
| 
      
 1544 
     | 
    
         
            +
             
     | 
| 
      
 1545 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1546 
     | 
    
         
            +
                  k.set_primary_key do
         
     | 
| 
      
 1547 
     | 
    
         
            +
                    "sys_" + ActiveSupport::Deprecation.silence { original_primary_key }
         
     | 
| 
      
 1548 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1549 
     | 
    
         
            +
                end
         
     | 
| 
       1454 
1550 
     | 
    
         
             
                assert_equal "sys_id", k.primary_key
         
     | 
| 
       1455 
1551 
     | 
    
         
             
              end
         
     | 
| 
       1456 
1552 
     | 
    
         | 
| 
      
 1553 
     | 
    
         
            +
              def test_original_primary_key
         
     | 
| 
      
 1554 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1555 
     | 
    
         
            +
                def k.name; "Foo"; end
         
     | 
| 
      
 1556 
     | 
    
         
            +
                k.table_name = "posts"
         
     | 
| 
      
 1557 
     | 
    
         
            +
                k.primary_key = "bar"
         
     | 
| 
      
 1558 
     | 
    
         
            +
             
     | 
| 
      
 1559 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1560 
     | 
    
         
            +
                  assert_equal "id", k.original_primary_key
         
     | 
| 
      
 1561 
     | 
    
         
            +
                end
         
     | 
| 
      
 1562 
     | 
    
         
            +
             
     | 
| 
      
 1563 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1564 
     | 
    
         
            +
                k.primary_key = "omg"
         
     | 
| 
      
 1565 
     | 
    
         
            +
                k.primary_key = "wtf"
         
     | 
| 
      
 1566 
     | 
    
         
            +
             
     | 
| 
      
 1567 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1568 
     | 
    
         
            +
                  assert_equal "omg", k.original_primary_key
         
     | 
| 
      
 1569 
     | 
    
         
            +
                end
         
     | 
| 
      
 1570 
     | 
    
         
            +
              end
         
     | 
| 
      
 1571 
     | 
    
         
            +
             
     | 
| 
       1457 
1572 
     | 
    
         
             
              def test_set_inheritance_column_with_value
         
     | 
| 
       1458 
1573 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1459 
1574 
     | 
    
         
             
                k.inheritance_column = "foo"
         
     | 
| 
       1460 
1575 
     | 
    
         
             
                assert_equal "foo", k.inheritance_column
         
     | 
| 
       1461 
     | 
    
         
            -
             
     | 
| 
      
 1576 
     | 
    
         
            +
             
     | 
| 
      
 1577 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1578 
     | 
    
         
            +
                  k.set_inheritance_column "bar"
         
     | 
| 
      
 1579 
     | 
    
         
            +
                end
         
     | 
| 
       1462 
1580 
     | 
    
         
             
                assert_equal "bar", k.inheritance_column
         
     | 
| 
       1463 
1581 
     | 
    
         
             
              end
         
     | 
| 
       1464 
1582 
     | 
    
         | 
| 
       1465 
1583 
     | 
    
         
             
              def test_set_inheritance_column_with_block
         
     | 
| 
       1466 
1584 
     | 
    
         
             
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
       1467 
     | 
    
         
            -
                 
     | 
| 
      
 1585 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1586 
     | 
    
         
            +
                  k.set_inheritance_column do
         
     | 
| 
      
 1587 
     | 
    
         
            +
                    ActiveSupport::Deprecation.silence { original_inheritance_column } + "_id"
         
     | 
| 
      
 1588 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1589 
     | 
    
         
            +
                end
         
     | 
| 
       1468 
1590 
     | 
    
         
             
                assert_equal "type_id", k.inheritance_column
         
     | 
| 
       1469 
1591 
     | 
    
         
             
              end
         
     | 
| 
       1470 
1592 
     | 
    
         | 
| 
      
 1593 
     | 
    
         
            +
              def test_original_inheritance_column
         
     | 
| 
      
 1594 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1595 
     | 
    
         
            +
                def k.name; "Foo"; end
         
     | 
| 
      
 1596 
     | 
    
         
            +
                k.inheritance_column = "omg"
         
     | 
| 
      
 1597 
     | 
    
         
            +
             
     | 
| 
      
 1598 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1599 
     | 
    
         
            +
                  assert_equal "type", k.original_inheritance_column
         
     | 
| 
      
 1600 
     | 
    
         
            +
                end
         
     | 
| 
      
 1601 
     | 
    
         
            +
              end
         
     | 
| 
      
 1602 
     | 
    
         
            +
             
     | 
| 
      
 1603 
     | 
    
         
            +
              def test_set_sequence_name_with_value
         
     | 
| 
      
 1604 
     | 
    
         
            +
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
      
 1605 
     | 
    
         
            +
                k.sequence_name = "foo"
         
     | 
| 
      
 1606 
     | 
    
         
            +
                assert_equal "foo", k.sequence_name
         
     | 
| 
      
 1607 
     | 
    
         
            +
             
     | 
| 
      
 1608 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1609 
     | 
    
         
            +
                  k.set_sequence_name "bar"
         
     | 
| 
      
 1610 
     | 
    
         
            +
                end
         
     | 
| 
      
 1611 
     | 
    
         
            +
                assert_equal "bar", k.sequence_name
         
     | 
| 
      
 1612 
     | 
    
         
            +
              end
         
     | 
| 
      
 1613 
     | 
    
         
            +
             
     | 
| 
      
 1614 
     | 
    
         
            +
              def test_set_sequence_name_with_block
         
     | 
| 
      
 1615 
     | 
    
         
            +
                k = Class.new( ActiveRecord::Base )
         
     | 
| 
      
 1616 
     | 
    
         
            +
                k.table_name = "projects"
         
     | 
| 
      
 1617 
     | 
    
         
            +
                orig_name = k.sequence_name
         
     | 
| 
      
 1618 
     | 
    
         
            +
                return skip "sequences not supported by db" unless orig_name
         
     | 
| 
      
 1619 
     | 
    
         
            +
             
     | 
| 
      
 1620 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1621 
     | 
    
         
            +
                  k.set_sequence_name do
         
     | 
| 
      
 1622 
     | 
    
         
            +
                    ActiveSupport::Deprecation.silence { original_sequence_name } + "_lol"
         
     | 
| 
      
 1623 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1624 
     | 
    
         
            +
                end
         
     | 
| 
      
 1625 
     | 
    
         
            +
                assert_equal orig_name + "_lol", k.sequence_name
         
     | 
| 
      
 1626 
     | 
    
         
            +
              end
         
     | 
| 
      
 1627 
     | 
    
         
            +
             
     | 
| 
      
 1628 
     | 
    
         
            +
              def test_original_sequence_name
         
     | 
| 
      
 1629 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1630 
     | 
    
         
            +
                k.table_name = "projects"
         
     | 
| 
      
 1631 
     | 
    
         
            +
                orig_name = k.sequence_name
         
     | 
| 
      
 1632 
     | 
    
         
            +
                return skip "sequences not supported by db" unless orig_name
         
     | 
| 
      
 1633 
     | 
    
         
            +
             
     | 
| 
      
 1634 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1635 
     | 
    
         
            +
                k.table_name = "projects"
         
     | 
| 
      
 1636 
     | 
    
         
            +
                k.sequence_name = "omg"
         
     | 
| 
      
 1637 
     | 
    
         
            +
             
     | 
| 
      
 1638 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1639 
     | 
    
         
            +
                  assert_equal orig_name, k.original_sequence_name
         
     | 
| 
      
 1640 
     | 
    
         
            +
                end
         
     | 
| 
      
 1641 
     | 
    
         
            +
             
     | 
| 
      
 1642 
     | 
    
         
            +
                k = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1643 
     | 
    
         
            +
                k.table_name = "projects"
         
     | 
| 
      
 1644 
     | 
    
         
            +
                k.sequence_name = "omg"
         
     | 
| 
      
 1645 
     | 
    
         
            +
                k.sequence_name = "wtf"
         
     | 
| 
      
 1646 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1647 
     | 
    
         
            +
                  assert_equal "omg", k.original_sequence_name
         
     | 
| 
      
 1648 
     | 
    
         
            +
                end
         
     | 
| 
      
 1649 
     | 
    
         
            +
              end
         
     | 
| 
      
 1650 
     | 
    
         
            +
             
     | 
| 
      
 1651 
     | 
    
         
            +
              def test_sequence_name_with_abstract_class
         
     | 
| 
      
 1652 
     | 
    
         
            +
                ak = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 1653 
     | 
    
         
            +
                ak.abstract_class = true
         
     | 
| 
      
 1654 
     | 
    
         
            +
                k = Class.new(ak)
         
     | 
| 
      
 1655 
     | 
    
         
            +
                k.table_name = "projects"
         
     | 
| 
      
 1656 
     | 
    
         
            +
                orig_name = k.sequence_name
         
     | 
| 
      
 1657 
     | 
    
         
            +
                return skip "sequences not supported by db" unless orig_name
         
     | 
| 
      
 1658 
     | 
    
         
            +
                assert_equal k.reset_sequence_name, orig_name
         
     | 
| 
      
 1659 
     | 
    
         
            +
              end
         
     | 
| 
      
 1660 
     | 
    
         
            +
             
     | 
| 
       1471 
1661 
     | 
    
         
             
              def test_count_with_join
         
     | 
| 
       1472 
1662 
     | 
    
         
             
                res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'"
         
     | 
| 
       1473 
1663 
     | 
    
         | 
| 
         @@ -1717,7 +1907,7 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1717 
1907 
     | 
    
         | 
| 
       1718 
1908 
     | 
    
         
             
              def test_inspect_instance
         
     | 
| 
       1719 
1909 
     | 
    
         
             
                topic = topics(:first)
         
     | 
| 
       1720 
     | 
    
         
            -
                assert_equal %(#<Topic id: 1, title: "The First Topic", author_name: "David", author_email_address: "david@loudthinking.com", written_on: "#{topic.written_on.to_s(:db)}", bonus_time: "#{topic.bonus_time.to_s(:db)}", last_read: "#{topic.last_read.to_s(:db)}", content: "Have a nice day", approved: false, replies_count: 1, parent_id: nil, parent_title: nil, type: nil, group: nil, created_at: "#{topic.created_at.to_s(:db)}", updated_at: "#{topic.updated_at.to_s(:db)}">), topic.inspect
         
     | 
| 
      
 1910 
     | 
    
         
            +
                assert_equal %(#<Topic id: 1, title: "The First Topic", author_name: "David", author_email_address: "david@loudthinking.com", written_on: "#{topic.written_on.to_s(:db)}", bonus_time: "#{topic.bonus_time.to_s(:db)}", last_read: "#{topic.last_read.to_s(:db)}", content: "Have a nice day", important: nil, approved: false, replies_count: 1, parent_id: nil, parent_title: nil, type: nil, group: nil, created_at: "#{topic.created_at.to_s(:db)}", updated_at: "#{topic.updated_at.to_s(:db)}">), topic.inspect
         
     | 
| 
       1721 
1911 
     | 
    
         
             
              end
         
     | 
| 
       1722 
1912 
     | 
    
         | 
| 
       1723 
1913 
     | 
    
         
             
              def test_inspect_new_instance
         
     | 
| 
         @@ -1746,6 +1936,14 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1746 
1936 
     | 
    
         
             
                assert_equal "The First Topic", topics(:first).becomes(Reply).title
         
     | 
| 
       1747 
1937 
     | 
    
         
             
              end
         
     | 
| 
       1748 
1938 
     | 
    
         | 
| 
      
 1939 
     | 
    
         
            +
              def test_becomes_includes_errors
         
     | 
| 
      
 1940 
     | 
    
         
            +
                company = Company.new(:name => nil)
         
     | 
| 
      
 1941 
     | 
    
         
            +
                assert !company.valid?
         
     | 
| 
      
 1942 
     | 
    
         
            +
                original_errors = company.errors
         
     | 
| 
      
 1943 
     | 
    
         
            +
                client = company.becomes(Client)
         
     | 
| 
      
 1944 
     | 
    
         
            +
                assert_equal original_errors, client.errors
         
     | 
| 
      
 1945 
     | 
    
         
            +
              end
         
     | 
| 
      
 1946 
     | 
    
         
            +
             
     | 
| 
       1749 
1947 
     | 
    
         
             
              def test_silence_sets_log_level_to_error_in_block
         
     | 
| 
       1750 
1948 
     | 
    
         
             
                original_logger = ActiveRecord::Base.logger
         
     | 
| 
       1751 
1949 
     | 
    
         
             
                log = StringIO.new
         
     | 
| 
         @@ -1791,7 +1989,9 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1791 
1989 
     | 
    
         
             
                original_logger = ActiveRecord::Base.logger
         
     | 
| 
       1792 
1990 
     | 
    
         
             
                log = StringIO.new
         
     | 
| 
       1793 
1991 
     | 
    
         
             
                ActiveRecord::Base.logger = Logger.new(log)
         
     | 
| 
       1794 
     | 
    
         
            -
                 
     | 
| 
      
 1992 
     | 
    
         
            +
                assert_deprecated do
         
     | 
| 
      
 1993 
     | 
    
         
            +
                  ActiveRecord::Base.benchmark("Logging", :level => :debug, :silence => true) { ActiveRecord::Base.logger.debug "Loud" }
         
     | 
| 
      
 1994 
     | 
    
         
            +
                end
         
     | 
| 
       1795 
1995 
     | 
    
         
             
                ActiveRecord::Base.benchmark("Logging", :level => :debug, :silence => false)  { ActiveRecord::Base.logger.debug "Quiet" }
         
     | 
| 
       1796 
1996 
     | 
    
         
             
                assert_no_match(/Loud/, log.string)
         
     | 
| 
       1797 
1997 
     | 
    
         
             
                assert_match(/Quiet/, log.string)
         
     | 
| 
         @@ -1825,9 +2025,9 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1825 
2025 
     | 
    
         | 
| 
       1826 
2026 
     | 
    
         
             
              def test_clear_cache!
         
     | 
| 
       1827 
2027 
     | 
    
         
             
                # preheat cache
         
     | 
| 
       1828 
     | 
    
         
            -
                c1 = Post.columns
         
     | 
| 
      
 2028 
     | 
    
         
            +
                c1 = Post.connection.schema_cache.columns['posts']
         
     | 
| 
       1829 
2029 
     | 
    
         
             
                ActiveRecord::Base.clear_cache!
         
     | 
| 
       1830 
     | 
    
         
            -
                c2 = Post.columns
         
     | 
| 
      
 2030 
     | 
    
         
            +
                c2 = Post.connection.schema_cache.columns['posts']
         
     | 
| 
       1831 
2031 
     | 
    
         
             
                assert_not_equal c1, c2
         
     | 
| 
       1832 
2032 
     | 
    
         
             
              end
         
     | 
| 
       1833 
2033 
     | 
    
         | 
| 
         @@ -1844,6 +2044,11 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1844 
2044 
     | 
    
         
             
              end
         
     | 
| 
       1845 
2045 
     | 
    
         | 
| 
       1846 
2046 
     | 
    
         
             
              def test_marshal_round_trip
         
     | 
| 
      
 2047 
     | 
    
         
            +
                if ENV['TRAVIS'] && RUBY_VERSION == "1.8.7"
         
     | 
| 
      
 2048 
     | 
    
         
            +
                  return skip("Marshalling tests disabled for Ruby 1.8.7 on Travis CI due to what appears " \
         
     | 
| 
      
 2049 
     | 
    
         
            +
                              "to be a Ruby bug.")
         
     | 
| 
      
 2050 
     | 
    
         
            +
                end
         
     | 
| 
      
 2051 
     | 
    
         
            +
             
     | 
| 
       1847 
2052 
     | 
    
         
             
                expected = posts(:welcome)
         
     | 
| 
       1848 
2053 
     | 
    
         
             
                marshalled = Marshal.dump(expected)
         
     | 
| 
       1849 
2054 
     | 
    
         
             
                actual   = Marshal.load(marshalled)
         
     | 
| 
         @@ -1852,6 +2057,11 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1852 
2057 
     | 
    
         
             
              end
         
     | 
| 
       1853 
2058 
     | 
    
         | 
| 
       1854 
2059 
     | 
    
         
             
              def test_marshal_new_record_round_trip
         
     | 
| 
      
 2060 
     | 
    
         
            +
                if ENV['TRAVIS'] && RUBY_VERSION == "1.8.7"
         
     | 
| 
      
 2061 
     | 
    
         
            +
                  return skip("Marshalling tests disabled for Ruby 1.8.7 on Travis CI due to what appears " \
         
     | 
| 
      
 2062 
     | 
    
         
            +
                              "to be a Ruby bug.")
         
     | 
| 
      
 2063 
     | 
    
         
            +
                end
         
     | 
| 
      
 2064 
     | 
    
         
            +
             
     | 
| 
       1855 
2065 
     | 
    
         
             
                marshalled = Marshal.dump(Post.new)
         
     | 
| 
       1856 
2066 
     | 
    
         
             
                post       = Marshal.load(marshalled)
         
     | 
| 
       1857 
2067 
     | 
    
         | 
| 
         @@ -1859,6 +2069,11 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1859 
2069 
     | 
    
         
             
              end
         
     | 
| 
       1860 
2070 
     | 
    
         | 
| 
       1861 
2071 
     | 
    
         
             
              def test_marshalling_with_associations
         
     | 
| 
      
 2072 
     | 
    
         
            +
                if ENV['TRAVIS'] && RUBY_VERSION == "1.8.7"
         
     | 
| 
      
 2073 
     | 
    
         
            +
                  return skip("Marshalling tests disabled for Ruby 1.8.7 on Travis CI due to what appears " \
         
     | 
| 
      
 2074 
     | 
    
         
            +
                              "to be a Ruby bug.")
         
     | 
| 
      
 2075 
     | 
    
         
            +
                end
         
     | 
| 
      
 2076 
     | 
    
         
            +
             
     | 
| 
       1862 
2077 
     | 
    
         
             
                post = Post.new
         
     | 
| 
       1863 
2078 
     | 
    
         
             
                post.comments.build
         
     | 
| 
       1864 
2079 
     | 
    
         | 
| 
         @@ -1903,6 +2118,16 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       1903 
2118 
     | 
    
         
             
              def test_cache_key_format_for_existing_record_with_nil_updated_at
         
     | 
| 
       1904 
2119 
     | 
    
         
             
                dev = Developer.first
         
     | 
| 
       1905 
2120 
     | 
    
         
             
                dev.update_attribute(:updated_at, nil)
         
     | 
| 
       1906 
     | 
    
         
            -
                assert_match 
     | 
| 
      
 2121 
     | 
    
         
            +
                assert_match(/\/#{dev.id}$/, dev.cache_key)
         
     | 
| 
      
 2122 
     | 
    
         
            +
              end
         
     | 
| 
      
 2123 
     | 
    
         
            +
             
     | 
| 
      
 2124 
     | 
    
         
            +
              def test_uniq_delegates_to_scoped
         
     | 
| 
      
 2125 
     | 
    
         
            +
                scope = stub
         
     | 
| 
      
 2126 
     | 
    
         
            +
                Bird.stubs(:scoped).returns(mock(:uniq => scope))
         
     | 
| 
      
 2127 
     | 
    
         
            +
                assert_equal scope, Bird.uniq
         
     | 
| 
      
 2128 
     | 
    
         
            +
              end
         
     | 
| 
      
 2129 
     | 
    
         
            +
             
     | 
| 
      
 2130 
     | 
    
         
            +
              def test_table_name_with_2_abstract_subclasses
         
     | 
| 
      
 2131 
     | 
    
         
            +
                assert_equal "photos", Photo.table_name
         
     | 
| 
       1907 
2132 
     | 
    
         
             
              end
         
     | 
| 
       1908 
2133 
     | 
    
         
             
            end
         
     |