From 0285294e3c2b0d245cca155fc947bfac8328b9c4 Mon Sep 17 00:00:00 2001 From: Jeff Kreeftmeijer Date: Sat, 15 May 2010 22:29:06 +0200 Subject: [PATCH 1/2] tests for Rails::Generators::GeneratedAttribute#field_type --- .../test/generators/generated_attribute_test.rb | 54 ++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) create mode 100644 railties/test/generators/generated_attribute_test.rb diff --git a/railties/test/generators/generated_attribute_test.rb b/railties/test/generators/generated_attribute_test.rb new file mode 100644 index 0000000..6f8be7c --- /dev/null +++ b/railties/test/generators/generated_attribute_test.rb @@ -0,0 +1,54 @@ +require 'generators/generators_test_helper' +require 'rails/generators/generated_attribute' + +class GeneratedAttributeTest < Rails::Generators::TestCase + include GeneratorsTestHelper + + def test_field_type_returns_text_field + %w(integer float decimal string).each do |type| + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', type).field_type, + :text_field + ) + end + end + + def test_field_type_returns_datetime_select + %w(datetime timestamp time).each do |type| + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', type).field_type, + :datetime_select + ) + end + end + + def test_field_type_returns_date_select + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', 'date').field_type, + :date_select + ) + end + + def test_field_type_returns_text_area + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', 'text').field_type, + :text_area + ) + end + + def test_field_type_returns_check_box + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', 'boolean').field_type, + :check_box + ) + end + + def test_field_type_with_unknown_type_returns_text_field + %w(foo bar baz).each do |type| + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', type).field_type, + :text_field + ) + end + end +end -- 1.6.4.1 From 52c63560387fa585fef9d9cbdfd0d53cd0a5feba Mon Sep 17 00:00:00 2001 From: Jeff Kreeftmeijer Date: Fri, 14 May 2010 22:14:49 +0200 Subject: [PATCH 2/2] using :time_select when the attribute type is :time in the scaffold generator. --- .../lib/rails/generators/generated_attribute.rb | 13 +++++---- .../test/generators/generated_attribute_test.rb | 25 ++++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/railties/lib/rails/generators/generated_attribute.rb b/railties/lib/rails/generators/generated_attribute.rb index e962308..f01934f 100644 --- a/railties/lib/rails/generators/generated_attribute.rb +++ b/railties/lib/rails/generators/generated_attribute.rb @@ -9,12 +9,13 @@ module Rails def field_type @field_type ||= case type - when :integer, :float, :decimal then :text_field - when :datetime, :timestamp, :time then :datetime_select - when :date then :date_select - when :string then :text_field - when :text then :text_area - when :boolean then :check_box + when :integer, :float, :decimal then :text_field + when :time then :time_select + when :datetime, :timestamp then :datetime_select + when :date then :date_select + when :string then :text_field + when :text then :text_area + when :boolean then :check_box else :text_field end diff --git a/railties/test/generators/generated_attribute_test.rb b/railties/test/generators/generated_attribute_test.rb index 6f8be7c..3bc5612 100644 --- a/railties/test/generators/generated_attribute_test.rb +++ b/railties/test/generators/generated_attribute_test.rb @@ -3,50 +3,57 @@ require 'rails/generators/generated_attribute' class GeneratedAttributeTest < Rails::Generators::TestCase include GeneratorsTestHelper - + def test_field_type_returns_text_field %w(integer float decimal string).each do |type| assert_equal( - Rails::Generators::GeneratedAttribute.new('test', type).field_type, + Rails::Generators::GeneratedAttribute.new('test', type).field_type, :text_field ) end end - + def test_field_type_returns_datetime_select - %w(datetime timestamp time).each do |type| + %w(datetime timestamp).each do |type| assert_equal( Rails::Generators::GeneratedAttribute.new('test', type).field_type, :datetime_select ) end end - + + def test_field_type_returns_time_select + assert_equal( + Rails::Generators::GeneratedAttribute.new('test', 'time').field_type, + :time_select + ) + end + def test_field_type_returns_date_select assert_equal( Rails::Generators::GeneratedAttribute.new('test', 'date').field_type, :date_select ) end - + def test_field_type_returns_text_area assert_equal( Rails::Generators::GeneratedAttribute.new('test', 'text').field_type, :text_area ) end - + def test_field_type_returns_check_box assert_equal( Rails::Generators::GeneratedAttribute.new('test', 'boolean').field_type, :check_box ) end - + def test_field_type_with_unknown_type_returns_text_field %w(foo bar baz).each do |type| assert_equal( - Rails::Generators::GeneratedAttribute.new('test', type).field_type, + Rails::Generators::GeneratedAttribute.new('test', type).field_type, :text_field ) end -- 1.6.4.1