diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-06 22:16:49 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-06 22:24:16 +0100 |
commit | 0c2d933f3636a3c66ab189806725eca36f11655c (patch) | |
tree | 93a96d0286b071ff9294d4677911f2592f6232c3 /activerecord/test/cases | |
parent | cfe0fcae0680418f0398c41ca262407bb1aa2a28 (diff) | |
download | rails-0c2d933f3636a3c66ab189806725eca36f11655c.tar.gz rails-0c2d933f3636a3c66ab189806725eca36f11655c.tar.bz2 rails-0c2d933f3636a3c66ab189806725eca36f11655c.zip |
Ensure before_validation and after_validation accepts :on as option.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/callbacks_test.rb | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/activerecord/test/cases/callbacks_test.rb b/activerecord/test/cases/callbacks_test.rb index 5a084a611e..ff2322ac15 100644 --- a/activerecord/test/cases/callbacks_test.rb +++ b/activerecord/test/cases/callbacks_test.rb @@ -113,6 +113,26 @@ class ImmutableMethodDeveloper < ActiveRecord::Base end end +class OnCallbacksDeveloper < ActiveRecord::Base + set_table_name 'developers' + + before_validation { history << :before_validation } + before_validation(:on => :create){ history << :before_validation_on_create } + before_validation(:on => :update){ history << :before_validation_on_update } + + validate do + history << :validate + end + + after_validation { history << :after_validation } + after_validation(:on => :create){ history << :after_validation_on_create } + after_validation(:on => :update){ history << :after_validation_on_update } + + def history + @history ||= [] + end +end + class CallbackCancellationDeveloper < ActiveRecord::Base set_table_name 'developers' @@ -250,7 +270,18 @@ class CallbacksTest < ActiveRecord::TestCase ], david.history end - def test_save + def test_validate_on_create + david = OnCallbacksDeveloper.create('name' => 'David', 'salary' => 1000000) + assert_equal [ + :before_validation, + :before_validation_on_create, + :validate, + :after_validation, + :after_validation_on_create + ], david.history + end + + def test_update david = CallbackDeveloper.find(1) david.save assert_equal [ @@ -297,6 +328,18 @@ class CallbacksTest < ActiveRecord::TestCase ], david.history end + def test_validate_on_update + david = OnCallbacksDeveloper.find(1) + david.save + assert_equal [ + :before_validation, + :before_validation_on_update, + :validate, + :after_validation, + :after_validation_on_update + ], david.history + end + def test_destroy david = CallbackDeveloper.find(1) david.destroy |