diff options
author | Egor Lynko <flexoid@gmail.com> | 2012-04-29 19:39:16 +0300 |
---|---|---|
committer | Egor Lynko <flexoid@gmail.com> | 2012-05-05 23:35:25 +0300 |
commit | 7f160b06a24547a41a59994a736d6b11beb0c30e (patch) | |
tree | 91658a38ec77d7c6b92d347cb1ead39725f201ee /activerecord/test/cases/column_test.rb | |
parent | dcd04e76179611a9db28c9e391aa7d6c2a5b046a (diff) | |
download | rails-7f160b06a24547a41a59994a736d6b11beb0c30e.tar.gz rails-7f160b06a24547a41a59994a736d6b11beb0c30e.tar.bz2 rails-7f160b06a24547a41a59994a736d6b11beb0c30e.zip |
Prevent creating valid time-like objects from blank string from db
Issue #6045
Diffstat (limited to 'activerecord/test/cases/column_test.rb')
-rw-r--r-- | activerecord/test/cases/column_test.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/activerecord/test/cases/column_test.rb b/activerecord/test/cases/column_test.rb index 4fcf8a33a4..4111a5f808 100644 --- a/activerecord/test/cases/column_test.rb +++ b/activerecord/test/cases/column_test.rb @@ -48,6 +48,34 @@ module ActiveRecord column.type_cast(false) end end + + def test_type_cast_time + column = Column.new("field", nil, "time") + assert_equal nil, column.type_cast('') + assert_equal nil, column.type_cast(' ') + + time_string = Time.now.utc.strftime("%T") + assert_equal time_string, column.type_cast(time_string).strftime("%T") + end + + def test_type_cast_datetime_and_timestamp + [Column.new("field", nil, "datetime"), Column.new("field", nil, "timestamp")].each do |column| + assert_equal nil, column.type_cast('') + assert_equal nil, column.type_cast(' ') + + datetime_string = Time.now.utc.strftime("%FT%T") + assert_equal datetime_string, column.type_cast(datetime_string).strftime("%FT%T") + end + end + + def test_type_cast_date + column = Column.new("field", nil, "date") + assert_equal nil, column.type_cast('') + assert_equal nil, column.type_cast(' ') + + date_string = Time.now.utc.strftime("%F") + assert_equal date_string, column.type_cast(date_string).strftime("%F") + end end end end |