1
0
Fork 0
mirror of https://github.com/heartcombo/simple_form.git synced 2022-11-09 12:19:26 -05:00

make tests pass on ruby 1.9.2

This commit is contained in:
Wojciech Wnętrzak 2010-06-18 06:12:36 +08:00 committed by José Valim
parent 1551fc1bea
commit 736df6f3b9
10 changed files with 82 additions and 79 deletions

View file

@ -3,7 +3,7 @@ require 'test_helper'
class BuilderTest < ActionView::TestCase
# COLLECTION RADIO
test 'collection radio accepts a collection and generate inputs from value method' do
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, [true, false], :to_s, :to_s
end)
@ -12,7 +12,7 @@ class BuilderTest < ActionView::TestCase
end
test 'collection radio accepts a collection and generate inputs from label method' do
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, [true, false], :to_s, :to_s
end)
@ -21,7 +21,7 @@ class BuilderTest < ActionView::TestCase
end
test 'collection radio accepts checked item' do
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, [[1, true], [0, false]], :last, :first, :checked => true
end)
@ -31,7 +31,7 @@ class BuilderTest < ActionView::TestCase
test 'collection radio accepts multiple disabled items' do
collection = [[1, true], [0, false], [2, 'other']]
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, collection, :last, :first, :disabled => [true, false]
end)
@ -42,7 +42,7 @@ class BuilderTest < ActionView::TestCase
test 'collection radio accepts single disable item' do
collection = [[1, true], [0, false]]
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, collection, :last, :first, :disabled => true
end)
@ -51,7 +51,7 @@ class BuilderTest < ActionView::TestCase
end
test 'collection radio accepts html options as input' do
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_radio :active, [[1, true], [0, false]], :last, :first, {}, :class => 'radio'
end)
@ -62,7 +62,7 @@ class BuilderTest < ActionView::TestCase
# COLLECTION CHECK BOX
test 'collection check box accepts a collection and generate a serie of checkboxes for value method' do
collection = [Tag.new(1, 'Tag 1'), Tag.new(2, 'Tag 2')]
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :id, :name
end)
@ -73,7 +73,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts a collection and generate a serie of checkboxes with labels for label method' do
collection = [Tag.new(1, 'Tag 1'), Tag.new(2, 'Tag 2')]
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :id, :name
end)
@ -83,7 +83,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts selected values as :checked option' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, :checked => [1, 3]
end)
@ -94,7 +94,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts a single checked value' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, :checked => 3
end)
@ -105,7 +105,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts multiple disabled items' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, :disabled => [1, 3]
end)
@ -116,7 +116,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts single disable item' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, :disabled => 1
end)
@ -127,7 +127,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts a proc to disabled items' do
collection = (1..3).map{|i| [i, "Tag #{i}"] }
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, :disabled => proc { |i| i.first == 1 }
end)
@ -138,7 +138,7 @@ class BuilderTest < ActionView::TestCase
test 'collection check box accepts html options' do
collection = [[1, 'Tag 1'], [2, 'Tag 2']]
concat(form_for @user do |f|
concat(form_for(@user) do |f|
concat f.collection_check_boxes :tag_ids, collection, :first, :last, {}, :class => 'check'
end)
@ -148,8 +148,8 @@ class BuilderTest < ActionView::TestCase
test 'collection check box with fields for' do
collection = [Tag.new(1, 'Tag 1'), Tag.new(2, 'Tag 2')]
concat(form_for @user do |f|
concat(f.fields_for :post do |p|
concat(form_for(@user) do |f|
concat(f.fields_for(:post) do |p|
concat p.collection_check_boxes :tag_ids, collection, :id, :name
end)
end)
@ -163,8 +163,8 @@ class BuilderTest < ActionView::TestCase
# SIMPLE FIELDS
test 'simple fields for is available and yields an instance of FormBuilder' do
concat(form_for @user do |f|
concat(f.simple_fields_for :posts do |posts_form|
concat(form_for(@user) do |f|
concat(f.simple_fields_for(:posts) do |posts_form|
assert posts_form.instance_of?(SimpleForm::FormBuilder)
end)
end)

View file

@ -9,28 +9,28 @@ class FormHelperTest < ActionView::TestCase
end
test 'simple form should add default class to form' do
concat(simple_form_for :user do |f| end)
concat(simple_form_for(:user) do |f| end)
assert_select 'form.simple_form'
end
test 'simple form should add object name as css class to form when object is not present' do
concat(simple_form_for :user do |f| end)
concat(simple_form_for(:user) do |f| end)
assert_select 'form.simple_form.user'
end
test 'simple form should add object class name as css class to form' do
concat(simple_form_for @user do |f| end)
concat(simple_form_for(@user) do |f| end)
assert_select 'form.simple_form.user'
end
test 'pass options to simple form' do
concat(simple_form_for :user, :url => '/account', :html => { :id => 'my_form' } do |f| end)
concat(simple_form_for(:user, :url => '/account', :html => { :id => 'my_form' }) do |f| end)
assert_select 'form#my_form'
assert_select 'form[action=/account]'
end
test 'fields for yields an instance of FormBuilder' do
concat(simple_fields_for :user do |f|
concat(simple_fields_for(:user) do |f|
assert f.instance_of?(SimpleForm::FormBuilder)
end)
end

View file

@ -3,7 +3,7 @@ require 'test_helper'
class ErrorTest < ActionView::TestCase
def with_error_for(object, attribute_name, type, options={}, &block)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
f.attribute_name = attribute_name
f.reflection = Association.new(Company, :company, {}) if options.delete(:setup_association)
f.input_type = type

View file

@ -3,7 +3,7 @@ require 'test_helper'
class HintTest < ActionView::TestCase
def with_hint_for(object, attribute_name, type, options={}, &block)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
f.attribute_name = attribute_name
f.reflection = Association.new(Company, :company, {}) if options.delete(:setup_association)
f.input_type = type

View file

@ -1,3 +1,4 @@
# encoding: UTF-8
require 'test_helper'
class LabelTest < ActionView::TestCase
@ -7,7 +8,7 @@ class LabelTest < ActionView::TestCase
end
def with_label_for(object, attribute_name, type, options={})
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
f.attribute_name = attribute_name
f.reflection = Association.new(Company, :company, {}) if options.delete(:setup_association)
f.input_type = type
@ -94,14 +95,14 @@ class LabelTest < ActionView::TestCase
with_label_for @user, :created_at, :datetime
assert_select 'label.datetime'
end
test 'label should obtain required from ActiveModel::Validations when it is included' do
with_label_for @validating_user, :name, :string
assert_select 'label.required'
with_label_for @validating_user, :status, :string
assert_select 'label.optional'
end
test 'label should allow overriding required when ActiveModel::Validations is included' do
with_label_for @validating_user, :name, :string, :required => false
assert_select 'label.optional'

View file

@ -2,14 +2,14 @@ require 'test_helper'
class WrapperTest < ActionView::TestCase
def with_error_for(object, attribute_name, options={}, &block)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
f.options = options
f.input attribute_name
end)
end
def with_form_for(object, *args, &block)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.input(*args, &block)
end)
end

View file

@ -1,39 +1,40 @@
# encoding: UTF-8
require 'test_helper'
class FormBuilderTest < ActionView::TestCase
def with_form_for(object, *args, &block)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.input(*args, &block)
end)
end
def with_button_for(object, *args)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.button(*args)
end)
end
def with_error_for(object, *args)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.error(*args)
end)
end
def with_hint_for(object, *args)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.hint(*args)
end)
end
def with_label_for(object, *args)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.label(*args)
end)
end
def with_association_for(object, *args)
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.association(*args)
end)
end
@ -229,26 +230,26 @@ class FormBuilderTest < ActionView::TestCase
assert_select 'span.error#cool', "can't be blank"
end
# REQUIRED AND PRESENCE VALIDATION
# REQUIRED AND PRESENCE VALIDATION
test 'builder input should obtain required from ActiveModel::Validations when it is included' do
with_form_for @validating_user, :name
assert_select 'input.required#validating_user_name'
with_form_for @validating_user, :status
assert_select 'input.optional#validating_user_status'
end
test 'builder input should allow overriding required when ActiveModel::Validations is included' do
with_form_for @validating_user, :name, :required => false
assert_select 'input.optional#validating_user_name'
with_form_for @validating_user, :status, :required => true
assert_select 'input.required#validating_user_status'
end
test 'builder input should be required by default when ActiveModel::Validations is not included' do
with_form_for @user, :name
assert_select 'input.required#user_name'
end
test 'builder input should allow disabling required when ActiveModel::Validations is not included' do
with_form_for @user, :name, :required => false
assert_no_select 'input.required'
@ -282,14 +283,14 @@ class FormBuilderTest < ActionView::TestCase
end
test 'builder allows wrapper tag to be given on demand' do
concat(simple_form_for @user do |f|
concat(simple_form_for(@user) do |f|
concat f.input :name, :wrapper_tag => :b
end)
assert_select 'form b.required.string'
end
test 'builder allows wrapper class to be given on demand' do
concat(simple_form_for @user do |f|
concat(simple_form_for(@user) do |f|
concat f.input :name, :wrapper_class => :wrapper
end)
assert_select 'form div.wrapper.required.string'

View file

@ -1,3 +1,4 @@
# encoding: UTF-8
require 'test_helper'
class InputTest < ActionView::TestCase
@ -5,13 +6,13 @@ class InputTest < ActionView::TestCase
setup do
SimpleForm::Inputs::CollectionInput.reset_i18n_cache :boolean_collection
end
def with_input_for(object, attribute_name, type, options={})
concat(simple_form_for object do |f|
concat(simple_form_for(object) do |f|
concat f.input(attribute_name, options.merge(:as => type))
end)
end
# ALL
test 'input should generate css class based on default input type' do
with_input_for @user, :name, :string
@ -36,12 +37,12 @@ class InputTest < ActionView::TestCase
with_input_for @user, :age, :integer
assert_select 'input[type=number].integer#user_age'
end
test 'input should generate a float text field for float attributes ' do
with_input_for @user, :age, :float
assert_select 'input[type=number].float#user_age'
end
test 'input should generate a decimal text field for decimal attributes ' do
with_input_for @user, :age, :decimal
assert_select 'input[type=number].decimal#user_age'
@ -72,7 +73,7 @@ class InputTest < ActionView::TestCase
with_input_for @user, :active, :boolean
assert_select 'input[type=checkbox].boolean#user_active'
end
test 'input should generate a password field for password attributes' do
with_input_for @user, :password, :password
assert_select 'input[type=password].password#user_password'
@ -107,7 +108,7 @@ class InputTest < ActionView::TestCase
assert_select 'select option[value=Brazil]', 'Brazil'
assert_no_select 'select option[value=][disabled=disabled]'
end
test 'input should generate a country select with simple form default' do
swap SimpleForm, :country_priority => [ 'Brazil' ] do
with_input_for @user, :country, :country
@ -141,17 +142,17 @@ class InputTest < ActionView::TestCase
assert_select "form select.datetime#user_created_at_#{i}i"
end
end
test 'input should be able to pass options to datetime select' do
with_input_for @user, :created_at, :datetime,
:disabled => true, :prompt => { :year => 'ano', :month => 'mês', :day => 'dia' }
assert_select 'select.datetime[disabled=disabled]'
assert_select 'select.datetime option', 'ano'
assert_select 'select.datetime option', 'mês'
assert_select 'select.datetime option', 'dia'
end
test 'input should generate a date select for date attributes' do
with_input_for @user, :born_at, :date
assert_select 'select.date#user_born_at_1i'
@ -159,11 +160,11 @@ class InputTest < ActionView::TestCase
assert_select 'select.date#user_born_at_3i'
assert_no_select 'select.date#user_born_at_4i'
end
test 'input should be able to pass options to date select' do
with_input_for @user, :born_at, :date, :as => :date,
:disabled => true, :prompt => { :year => 'ano', :month => 'mês', :day => 'dia' }
assert_select 'select.date[disabled=disabled]'
assert_select 'select.date option', 'ano'
assert_select 'select.date option', 'mês'
@ -183,11 +184,11 @@ class InputTest < ActionView::TestCase
assert_select 'select.time#user_delivery_time_4i'
assert_select 'select.time#user_delivery_time_5i'
end
test 'input should be able to pass options to time select' do
with_input_for @user, :delivery_time, :time, :required => true,
:disabled => true, :prompt => { :hour => 'hora', :minute => 'minuto' }
assert_select 'select.time[disabled=disabled]'
assert_select 'select.time option', 'hora'
assert_select 'select.time option', 'minuto'
@ -214,13 +215,13 @@ class InputTest < ActionView::TestCase
assert_select 'input[type=radio][value=true].radio#user_active_true'
assert_select 'input[type=radio][value=false].radio#user_active_false'
end
test 'input as radio should generate internal labels by default' do
with_input_for @user, :active, :radio
assert_select 'label[for=user_active_true]', 'Yes'
assert_select 'label[for=user_active_false]', 'No'
end
test 'input as radio should use i18n to translate internal labels' do
store_translations(:en, :simple_form => { :yes => 'Sim', :no => 'Não' }) do
with_input_for @user, :active, :radio
@ -228,14 +229,14 @@ class InputTest < ActionView::TestCase
assert_select 'label[for=user_active_false]', 'Não'
end
end
test 'input should generate a boolean select with options by default for select types' do
with_input_for @user, :active, :select
assert_select 'select.select#user_active'
assert_select 'select option[value=true]', 'Yes'
assert_select 'select option[value=false]', 'No'
end
test 'input as select should use i18n to translate select boolean options' do
store_translations(:en, :simple_form => { :yes => 'Sim', :no => 'Não' }) do
with_input_for @user, :active, :select
@ -243,53 +244,53 @@ class InputTest < ActionView::TestCase
assert_select 'select option[value=false]', 'Não'
end
end
test 'input should allow overriding collection for select types' do
with_input_for @user, :name, :select, :collection => ['Jose', 'Carlos']
assert_select 'select.select#user_name'
assert_select 'select option', 'Jose'
assert_select 'select option', 'Carlos'
end
test 'input should mark the selected value by default' do
@user.name = "Carlos"
with_input_for @user, :name, :select, :collection => ['Jose', 'Carlos']
assert_select 'select option[selected=selected]', 'Carlos'
end
test 'input should mark the selected value also when using integers' do
@user.age = 18
with_input_for @user, :age, :select, :collection => 18..60
assert_select 'select option[selected=selected]', '18'
end
test 'input should automatically set include blank' do
with_input_for @user, :age, :select, :collection => 18..30
assert_select 'select option[value=]', ''
end
test 'input should not set include blank if otherwise is told' do
with_input_for @user, :age, :select, :collection => 18..30, :include_blank => false
assert_no_select 'select option[value=]', ''
end
test 'input should not set include blank if prompt is given' do
with_input_for @user, :age, :select, :collection => 18..30, :prompt => "Please select foo"
assert_no_select 'select option[value=]', ''
end
test 'input should not set include blank if multiple is given' do
with_input_for @user, :age, :select, :collection => 18..30, :input_html => { :multiple => true }
assert_no_select 'select option[value=]', ''
end
test 'input should detect label and value on collections' do
users = [ setup_new_user(:id => 1, :name => "Jose"), setup_new_user(:id => 2, :name => "Carlos") ]
with_input_for @user, :description, :select, :collection => users
assert_select 'select option[value=1]', 'Jose'
assert_select 'select option[value=2]', 'Carlos'
end
test 'input should allow overriding collection for radio types' do
with_input_for @user, :name, :radio, :collection => ['Jose', 'Carlos']
assert_select 'input[type=radio][value=Jose]'
@ -297,13 +298,13 @@ class InputTest < ActionView::TestCase
assert_select 'label.collection_radio', 'Jose'
assert_select 'label.collection_radio', 'Carlos'
end
test 'input should mark the current radio value by default' do
@user.name = "Carlos"
with_input_for @user, :name, :radio, :collection => ['Jose', 'Carlos']
assert_select 'input[type=radio][value=Carlos][checked=checked]'
end
test 'input should allow using a collection with text/value arrays' do
with_input_for @user, :name, :radio, :collection => [['Jose', 'jose'], ['Carlos', 'carlos']]
assert_select 'input[type=radio][value=jose]'
@ -311,7 +312,7 @@ class InputTest < ActionView::TestCase
assert_select 'label.collection_radio', 'Jose'
assert_select 'label.collection_radio', 'Carlos'
end
test 'input should allow overriding label and value method for collections' do
with_input_for @user, :name, :radio,
:collection => ['Jose' , 'Carlos'],
@ -322,19 +323,19 @@ class InputTest < ActionView::TestCase
assert_select 'label.collection_radio', 'JOSE'
assert_select 'label.collection_radio', 'CARLOS'
end
# With no object
test 'input should be generated properly when object is not present' do
with_input_for :project, :name, :string
assert_select 'input.string.required#project_name'
end
test 'input as radio should be generated properly when object is not present ' do
with_input_for :project, :name, :radio
assert_select 'input.radio#project_name_true'
assert_select 'input.radio#project_name_false'
end
test 'input as select with collection should be generated properly when object is not present' do
with_input_for :project, :name, :select, :collection => ['Jose', 'Carlos']
assert_select 'select.select#project_name'

View file

@ -36,7 +36,7 @@ class User < OpenStruct
extend ActiveModel::Naming
# Get rid of deprecation warnings
undef_method :id
undef_method :id if respond_to?(:id)
def new_record!
@new_record = true

View file

@ -1,8 +1,8 @@
require 'rubygems'
require 'test/unit'
gem "actionpack", "3.0.0.beta3"
gem "activemodel", "3.0.0.beta3"
gem "actionpack", "3.0.0.beta4"
gem "activemodel", "3.0.0.beta4"
require 'active_model'
require 'action_controller'
@ -59,7 +59,7 @@ class ActionView::TestCase
:description => 'Hello!',
:created_at => Time.now
}.merge(options))
@validating_user = ValidatingUser.new({
:id => 1,
:name => 'New in Simple Form!',