mirror of
https://github.com/heartcombo/simple_form.git
synced 2022-11-09 12:19:26 -05:00
86 lines
3.2 KiB
Ruby
86 lines
3.2 KiB
Ruby
|
# encoding: UTF-8
|
||
|
require 'test_helper'
|
||
|
|
||
|
# Tests for all different kinds of inputs.
|
||
|
class DateTimeInputTest < ActionView::TestCase
|
||
|
# DateTime input
|
||
|
test 'input should generate a datetime select by default for datetime attributes' do
|
||
|
with_input_for @user, :created_at, :datetime
|
||
|
1.upto(5) do |i|
|
||
|
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'
|
||
|
assert_select 'select.date#user_born_at_2i'
|
||
|
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'
|
||
|
assert_select 'select.date option', 'dia'
|
||
|
end
|
||
|
|
||
|
test 'input should be able to pass :default to date select' do
|
||
|
with_input_for @user, :born_at, :date, :default => Date.today
|
||
|
assert_select "select.date option[value=#{Date.today.year}][selected=selected]"
|
||
|
end
|
||
|
|
||
|
test 'input should generate a time select for time attributes' do
|
||
|
with_input_for @user, :delivery_time, :time
|
||
|
assert_select 'input[type=hidden]#user_delivery_time_1i'
|
||
|
assert_select 'input[type=hidden]#user_delivery_time_2i'
|
||
|
assert_select 'input[type=hidden]#user_delivery_time_3i'
|
||
|
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'
|
||
|
end
|
||
|
|
||
|
test 'label should point to first option when date input type' do
|
||
|
with_input_for :project, :created_at, :date
|
||
|
assert_select 'label[for=project_created_at_1i]'
|
||
|
end
|
||
|
|
||
|
test 'label should point to first option when datetime input type' do
|
||
|
with_input_for :project, :created_at, :datetime
|
||
|
assert_select 'label[for=project_created_at_1i]'
|
||
|
end
|
||
|
|
||
|
test 'label should point to first option when time input type' do
|
||
|
with_input_for :project, :created_at, :time
|
||
|
assert_select 'label[for=project_created_at_4i]'
|
||
|
end
|
||
|
|
||
|
test 'date time input should not generate invalid required html attribute' do
|
||
|
with_input_for @user, :delivery_time, :time, :required => true
|
||
|
assert_select 'select.required'
|
||
|
assert_no_select 'select[required]'
|
||
|
end
|
||
|
end
|