aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2004-12-01 13:18:51 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2004-12-01 13:18:51 +0000
commit0daa29ece29191b288fe86d3616bea0357325419 (patch)
tree7a86e47e5b7c68467c1ef01e08be0ac24faf29a9 /activerecord/test
parent50f333b203756009acff2457b6d1c9da3b532cad (diff)
downloadrails-0daa29ece29191b288fe86d3616bea0357325419.tar.gz
rails-0daa29ece29191b288fe86d3616bea0357325419.tar.bz2
rails-0daa29ece29191b288fe86d3616bea0357325419.zip
Added proper handling of time fields that are turned into Time objects with the dummy date of 2000/1/1 [HariSeldon]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@40 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rwxr-xr-xactiverecord/test/base_test.rb15
-rwxr-xr-xactiverecord/test/fixtures/db_definitions/mysql.sql1
-rw-r--r--activerecord/test/fixtures/db_definitions/postgresql.sql1
-rw-r--r--activerecord/test/fixtures/db_definitions/sqlite.sql1
-rwxr-xr-xactiverecord/test/fixtures/topics/first1
-rw-r--r--activerecord/test/reflection_test.rb6
6 files changed, 22 insertions, 3 deletions
diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb
index 0d2278eb58..c362fd7139 100755
--- a/activerecord/test/base_test.rb
+++ b/activerecord/test/base_test.rb
@@ -147,6 +147,11 @@ class BasicsTest < Test::Unit::TestCase
Date, Topic.find(1).last_read,
"The last_read attribute should be of the Date class"
)
+
+ assert_kind_of(
+ Time, Topic.find(1).bonus_time,
+ "The bonus_time attribute should be of the Time class"
+ )
end
def test_preserving_time_objects
@@ -311,6 +316,7 @@ class BasicsTest < Test::Unit::TestCase
topic = Topic.new
assert_equal 1, topic.approved
assert_nil topic.written_on
+ assert_nil topic.bonus_time
assert_nil topic.last_read
topic.save
@@ -426,6 +432,15 @@ class BasicsTest < Test::Unit::TestCase
assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
end
+ def test_attributes_on_dummy_time
+ attributes = {
+ "bonus_time" => "5:42:00AM"
+ }
+ topic = Topic.find(1)
+ topic.attributes = attributes
+ assert_equal Time.local(2000, 1, 1, 5, 42, 0), topic.bonus_time
+ end
+
def test_boolean
b_false = Booleantest.create({ "value" => false })
false_id = b_false.id
diff --git a/activerecord/test/fixtures/db_definitions/mysql.sql b/activerecord/test/fixtures/db_definitions/mysql.sql
index 766c0ec71f..0b96c49dd3 100755
--- a/activerecord/test/fixtures/db_definitions/mysql.sql
+++ b/activerecord/test/fixtures/db_definitions/mysql.sql
@@ -23,6 +23,7 @@ CREATE TABLE `topics` (
`author_name` varchar(255) default NULL,
`author_email_address` varchar(255) default NULL,
`written_on` datetime default NULL,
+ `bonus_time` time default NULL,
`last_read` date default NULL,
`content` text,
`approved` tinyint(1) default 1,
diff --git a/activerecord/test/fixtures/db_definitions/postgresql.sql b/activerecord/test/fixtures/db_definitions/postgresql.sql
index e83356627b..87db0b7f3f 100644
--- a/activerecord/test/fixtures/db_definitions/postgresql.sql
+++ b/activerecord/test/fixtures/db_definitions/postgresql.sql
@@ -46,6 +46,7 @@ CREATE TABLE topics (
author_name character varying(255),
author_email_address character varying(255),
written_on timestamp without time zone,
+ bonus_time time,
last_read date,
content text,
replies_count integer default 0,
diff --git a/activerecord/test/fixtures/db_definitions/sqlite.sql b/activerecord/test/fixtures/db_definitions/sqlite.sql
index cb617305dc..91ca172789 100644
--- a/activerecord/test/fixtures/db_definitions/sqlite.sql
+++ b/activerecord/test/fixtures/db_definitions/sqlite.sql
@@ -21,6 +21,7 @@ CREATE TABLE 'topics' (
'author_name' VARCHAR(255) DEFAULT NULL,
'author_email_address' VARCHAR(255) DEFAULT NULL,
'written_on' DATETIME DEFAULT NULL,
+ 'bonus_time' TIME DEFAULT NULL,
'last_read' DATE DEFAULT NULL,
'content' TEXT,
'approved' INTEGER DEFAULT 1,
diff --git a/activerecord/test/fixtures/topics/first b/activerecord/test/fixtures/topics/first
index 9972a578c8..2e1a88563b 100755
--- a/activerecord/test/fixtures/topics/first
+++ b/activerecord/test/fixtures/topics/first
@@ -3,6 +3,7 @@ title => The First Topic
author_name => David
author_email_address => david@loudthinking.com
written_on => 2003-07-16 15:28
+bonus_time => 12:13:14
last_read => 2004-04-15
content => Have a nice day
approved => 0
diff --git a/activerecord/test/reflection_test.rb b/activerecord/test/reflection_test.rb
index 5d7e9d1197..33e147be77 100644
--- a/activerecord/test/reflection_test.rb
+++ b/activerecord/test/reflection_test.rb
@@ -15,17 +15,17 @@ class ReflectionTest < Test::Unit::TestCase
def test_read_attribute_names
assert_equal(
- %w( id title author_name author_email_address written_on last_read content approved replies_count parent_id type ).sort,
+ %w( id title author_name author_email_address bonus_time written_on last_read content approved replies_count parent_id type ).sort,
@first.attribute_names
)
end
def test_columns
- assert_equal 11, Topic.columns.length
+ assert_equal 12, Topic.columns.length
end
def test_content_columns
- assert_equal 7, Topic.content_columns.length
+ assert_equal 8, Topic.content_columns.length
end
def test_column_string_type_and_limit