case_form 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +1 -0
- data/MIT-LICENSE.rdoc +20 -0
- data/Manifest +86 -0
- data/README.rdoc +0 -0
- data/Rakefile +30 -0
- data/TODO.rdoc +7 -0
- data/case_form.gemspec +31 -0
- data/lib/case_form.rb +88 -0
- data/lib/case_form/associations.rb +50 -0
- data/lib/case_form/buttons.rb +175 -0
- data/lib/case_form/core_ext/form_helper.rb +54 -0
- data/lib/case_form/core_ext/layout_helper.rb +16 -0
- data/lib/case_form/core_ext/sentence_error.rb +38 -0
- data/lib/case_form/element.rb +40 -0
- data/lib/case_form/element/base.rb +95 -0
- data/lib/case_form/element/button.rb +64 -0
- data/lib/case_form/element/error.rb +54 -0
- data/lib/case_form/element/errors/complex_error.rb +107 -0
- data/lib/case_form/element/errors/simple_error.rb +76 -0
- data/lib/case_form/element/fieldset.rb +35 -0
- data/lib/case_form/element/hint.rb +54 -0
- data/lib/case_form/element/input.rb +106 -0
- data/lib/case_form/element/inputs/collection/checkbox_input.rb +36 -0
- data/lib/case_form/element/inputs/collection/radio_input.rb +27 -0
- data/lib/case_form/element/inputs/collection/select_input.rb +22 -0
- data/lib/case_form/element/inputs/collection_input.rb +89 -0
- data/lib/case_form/element/inputs/datetime/date_input.rb +45 -0
- data/lib/case_form/element/inputs/datetime/date_time_input.rb +50 -0
- data/lib/case_form/element/inputs/datetime/time_input.rb +34 -0
- data/lib/case_form/element/inputs/datetime/time_zone_input.rb +24 -0
- data/lib/case_form/element/inputs/file_input.rb +13 -0
- data/lib/case_form/element/inputs/hidden_input.rb +17 -0
- data/lib/case_form/element/inputs/number_input.rb +42 -0
- data/lib/case_form/element/inputs/search_input.rb +32 -0
- data/lib/case_form/element/inputs/string_input.rb +18 -0
- data/lib/case_form/element/inputs/text_input.rb +19 -0
- data/lib/case_form/element/label.rb +52 -0
- data/lib/case_form/element/nested_model.rb +105 -0
- data/lib/case_form/element/nested_models/handle.rb +18 -0
- data/lib/case_form/element/nested_models/handles/destructor_handle.rb +47 -0
- data/lib/case_form/element/nested_models/handles/generator_handle.rb +55 -0
- data/lib/case_form/element_ext/associationable.rb +54 -0
- data/lib/case_form/element_ext/columnable.rb +21 -0
- data/lib/case_form/element_ext/naming.rb +17 -0
- data/lib/case_form/element_ext/validationable.rb +13 -0
- data/lib/case_form/errors.rb +189 -0
- data/lib/case_form/form_builder.rb +11 -0
- data/lib/case_form/inputs.rb +1095 -0
- data/lib/case_form/labels.rb +102 -0
- data/lib/case_form/version.rb +6 -0
- data/lib/generators/case_form/install_generator.rb +33 -0
- data/lib/generators/case_form/templates/case_form.rb +63 -0
- data/lib/generators/case_form/templates/javascripts/jquery.case_form.js +10 -0
- data/lib/generators/case_form/templates/javascripts/prototype.case_form.js +0 -0
- data/lib/generators/case_form/templates/locales/en.yml +28 -0
- data/lib/generators/case_form/templates/locales/pl.yml +28 -0
- data/lib/generators/case_form/templates/stylesheets/stylesheet.css +93 -0
- data/lib/generators/case_form/templates/stylesheets/stylesheet_changes.css +1 -0
- data/lib/generators/case_form/uninstall_generator.rb +30 -0
- data/rails/init.rb +1 -0
- data/test/element/button_test.rb +85 -0
- data/test/element/errors/complex_error_test.rb +140 -0
- data/test/element/errors/simple_error_test.rb +92 -0
- data/test/element/fieldset_test.rb +28 -0
- data/test/element/hint_test.rb +81 -0
- data/test/element/input_test.rb +197 -0
- data/test/element/inputs/collection/checkbox_input_test.rb +176 -0
- data/test/element/inputs/collection/radio_input_test.rb +156 -0
- data/test/element/inputs/collection/select_input_test.rb +152 -0
- data/test/element/inputs/datetime/date_input_test.rb +160 -0
- data/test/element/inputs/datetime/datetime_input_test.rb +227 -0
- data/test/element/inputs/datetime/time_input_test.rb +72 -0
- data/test/element/inputs/datetime/time_zone_input_test.rb +42 -0
- data/test/element/inputs/file_input_test.rb +13 -0
- data/test/element/inputs/hidden_input_test.rb +13 -0
- data/test/element/inputs/number_input_test.rb +50 -0
- data/test/element/inputs/search_input_test.rb +13 -0
- data/test/element/inputs/string_input_test.rb +33 -0
- data/test/element/inputs/text_input_test.rb +13 -0
- data/test/element/label_test.rb +62 -0
- data/test/element/nested_model_test.rb +163 -0
- data/test/element/nested_models/handles/destructor_handle_test.rb +35 -0
- data/test/element/nested_models/handles/generator_handle_test.rb +27 -0
- data/test/form_builder_test.rb +25 -0
- data/test/form_helper_test.rb +15 -0
- data/test/lib/models.rb +268 -0
- data/test/test_helper.rb +74 -0
- metadata +235 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
class DateInputTest < ActionView::TestCase
|
|
5
|
+
def date_case_form_for(object, attribute, options={})
|
|
6
|
+
concat(case_form_for(object) { |f| f.date(attribute, options) })
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
test "should generate date input" do
|
|
10
|
+
date_case_form_for(@user, :created_at)
|
|
11
|
+
assert_select "select", 3
|
|
12
|
+
assert_select "select#user_created_at_1i", 1
|
|
13
|
+
assert_select "select#user_created_at_2i", 1
|
|
14
|
+
assert_select "select#user_created_at_3i", 1
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
test "should generate date input without year" do
|
|
18
|
+
date_case_form_for(@user, :created_at, :year => false)
|
|
19
|
+
assert_select "select", 2
|
|
20
|
+
assert_select "input[type=hidden]#user_created_at_1i", 1
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
test "should generate date input without year in elements" do
|
|
24
|
+
date_case_form_for(@user, :created_at, :elements => [:month, :day])
|
|
25
|
+
assert_select "select", 2
|
|
26
|
+
assert_select "input[type=hidden]#user_created_at_1i", 1
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
test "should generate date input without month" do
|
|
30
|
+
date_case_form_for(@user, :created_at, :month => false)
|
|
31
|
+
assert_select "select", 1 # no sense for only year and day
|
|
32
|
+
assert_select "input[type=hidden]#user_created_at_2i", 1
|
|
33
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
test "should generate date input without month in elements" do
|
|
37
|
+
date_case_form_for(@user, :created_at, :elements => [:year, :day])
|
|
38
|
+
assert_select "select", 1 # no sense for only year and day
|
|
39
|
+
assert_select "input[type=hidden]#user_created_at_2i", 1
|
|
40
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
test "should generate date input without day" do
|
|
44
|
+
date_case_form_for(@user, :created_at, :day => false)
|
|
45
|
+
assert_select "select", 2
|
|
46
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
test "should generate date input without day in elements" do
|
|
50
|
+
date_case_form_for(@user, :created_at, :elements => [:year, :month])
|
|
51
|
+
assert_select "select", 2
|
|
52
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
test "should generate date input with specific date" do
|
|
56
|
+
date_case_form_for(@user, :created_at, :date => Date.tomorrow)
|
|
57
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option[selected=selected]", :text => Date.tomorrow.day }
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
test "should generate date input with start and end year" do
|
|
61
|
+
date_case_form_for(@user, :created_at, :year => {:start => 2008, :end => 2012 })
|
|
62
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
test "should generate date input with :start_year and :end_year" do
|
|
66
|
+
date_case_form_for(@user, :created_at, :start_year => 2008, :end_year => 2012)
|
|
67
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
test "should generate date input with mixed :start_year and end year" do
|
|
71
|
+
date_case_form_for(@user, :created_at, :start_year => 2008, :year => { :end => 2012 })
|
|
72
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
test "should generate date input with :start_year rather than start year" do
|
|
76
|
+
date_case_form_for(@user, :created_at, :start_year => 2008, :year => {:start => 2009}, :end_year => 2012)
|
|
77
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
test "should generate date input with :end_year rather than end year" do
|
|
81
|
+
date_case_form_for(@user, :created_at, :end_year => 2012, :year => {:end => 2013}, :start_year => 2008)
|
|
82
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
test "should generate date input with long months" do
|
|
86
|
+
date_case_form_for(@user, :created_at, :month => {:short => false})
|
|
87
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
test "should generate date input with short months" do
|
|
91
|
+
date_case_form_for(@user, :created_at, :month => {:short => true})
|
|
92
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Feb" }
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
test "should generate date input without :short_month" do
|
|
96
|
+
date_case_form_for(@user, :created_at, :short_month => false)
|
|
97
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
test "should generate date input with :short_month" do
|
|
101
|
+
date_case_form_for(@user, :created_at, :short_month => true)
|
|
102
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Feb" }
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
test "should generate date input with month names" do
|
|
106
|
+
date_case_form_for(@user, :created_at, :month => {:names => ["Styczownik", "Lutownik", "", "", "", "", "", "", "", "", "", ""]})
|
|
107
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Lutownik" }
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
test "should generate date input with default month names when nil" do
|
|
111
|
+
date_case_form_for(@user, :created_at, :month => {:names => nil})
|
|
112
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
test "should generate date input without prompt" do
|
|
116
|
+
date_case_form_for(@user, :created_at, :prompt => false)
|
|
117
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", :count => 0, :text => "Year" }
|
|
118
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", :count => 0, :text => "Month" }
|
|
119
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", :count => 0, :text => "Day" }
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
test "should generate date input with default prompt" do
|
|
123
|
+
date_case_form_for(@user, :created_at, :prompt => true)
|
|
124
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "Year" }
|
|
125
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Month" }
|
|
126
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "Day" }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
test "should generate date input with specific prompt" do
|
|
130
|
+
date_case_form_for(@user, :created_at, :prompt => { :year => "Choose year", :month => "Choose month", :day => "Choose day"})
|
|
131
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "Choose year" }
|
|
132
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Choose month" }
|
|
133
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "Choose day" }
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
test "should generate date input with specific prompt as string" do
|
|
137
|
+
text = "Choose date"
|
|
138
|
+
date_case_form_for(@user, :created_at, :prompt => text)
|
|
139
|
+
assert_select("select", 3) { assert_select "option", text }
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
test "should generate date input without blank" do
|
|
143
|
+
date_case_form_for(@user, :created_at, :blank => false)
|
|
144
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
145
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
146
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
test "should generate date input with blank" do
|
|
150
|
+
date_case_form_for(@user, :created_at, :blank => true)
|
|
151
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "" }
|
|
152
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "" }
|
|
153
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "" }
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
test "should generate date input as disabled" do
|
|
157
|
+
date_case_form_for(@user, :created_at, :disabled => true)
|
|
158
|
+
assert_select "select[disabled=disabled]", 3
|
|
159
|
+
end
|
|
160
|
+
end
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
class DateTimeInputTest < ActionView::TestCase
|
|
5
|
+
def datetime_case_form_for(object, attribute, options={})
|
|
6
|
+
concat(case_form_for(object) { |f| f.datetime(attribute, options) })
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
test "should generate datetime input" do
|
|
10
|
+
datetime_case_form_for(@user, :created_at)
|
|
11
|
+
assert_select "select", 5
|
|
12
|
+
assert_select "select#user_created_at_1i", 1
|
|
13
|
+
assert_select "select#user_created_at_2i", 1
|
|
14
|
+
assert_select "select#user_created_at_3i", 1
|
|
15
|
+
assert_select "select#user_created_at_4i", 1
|
|
16
|
+
assert_select "select#user_created_at_5i", 1
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
test "should generate datetime input without year" do
|
|
20
|
+
datetime_case_form_for(@user, :created_at, :year => false)
|
|
21
|
+
assert_select "select", 4
|
|
22
|
+
assert_select "input[type=hidden]#user_created_at_1i", 1
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
test "should generate datetime input without year in elements" do
|
|
26
|
+
datetime_case_form_for(@user, :created_at, :elements => [:month, :day, :hour, :minute, :second])
|
|
27
|
+
assert_select "select", 5
|
|
28
|
+
assert_select "input[type=hidden]#user_created_at_1i", 1
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
test "should generate datetime input without month" do
|
|
32
|
+
datetime_case_form_for(@user, :created_at, :month => false)
|
|
33
|
+
assert_select "select", 3 # no sense for only year and day
|
|
34
|
+
assert_select "input[type=hidden]#user_created_at_2i", 1
|
|
35
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "should generate datetime input without month in elements" do
|
|
39
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :day, :hour, :minute, :second])
|
|
40
|
+
assert_select "select", 4 # no sense for only year and day
|
|
41
|
+
assert_select "input[type=hidden]#user_created_at_2i", 1
|
|
42
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
test "should generate datetime input without day" do
|
|
46
|
+
datetime_case_form_for(@user, :created_at, :day => false)
|
|
47
|
+
assert_select "select", 4
|
|
48
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
test "should generate datetime input without day in elements" do
|
|
52
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :month, :hour, :minute, :second])
|
|
53
|
+
assert_select "select", 5
|
|
54
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
test "should generate datetime input without hour" do
|
|
58
|
+
datetime_case_form_for(@user, :created_at, :hour => false)
|
|
59
|
+
assert_select "select", 3 # no sense for time without hour (delete all time fields)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
test "should generate datetime input without hour in elements" do
|
|
63
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :month, :day, :minute, :second])
|
|
64
|
+
assert_select "select", 3 # no sense for time without hour (delete all time fields)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
test "should generate datetime input without minute" do
|
|
68
|
+
datetime_case_form_for(@user, :created_at, :minute => false)
|
|
69
|
+
assert_select "select", 4
|
|
70
|
+
assert_select "input[type=hidden]#user_created_at_5i", 1
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
test "should generate datetime input without minute in elements" do
|
|
74
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :month, :day, :hour, :second])
|
|
75
|
+
assert_select "select", 4 # no sense for second without minute (delete minute and second time fields)
|
|
76
|
+
assert_select "input[type=hidden]#user_created_at_5i", 1
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
test "should generate datetime input with second" do
|
|
80
|
+
datetime_case_form_for(@user, :created_at, :second => true)
|
|
81
|
+
assert_select "select", 6
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
test "should generate datetime input without second" do
|
|
85
|
+
datetime_case_form_for(@user, :created_at, :second => false)
|
|
86
|
+
assert_select "select", 5
|
|
87
|
+
assert_select "input[type=hidden]#user_created_at_6i", 0
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
test "should generate datetime input with second in elements" do
|
|
91
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :month, :day, :hour, :minute, :second])
|
|
92
|
+
assert_select "select", 6
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
test "should generate datetime input without second in elements" do
|
|
96
|
+
datetime_case_form_for(@user, :created_at, :elements => [:year, :month, :day, :hour, :minute])
|
|
97
|
+
assert_select "select", 5
|
|
98
|
+
assert_select "input[type=hidden]#user_created_at_6i", 0
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
test "should generate datetime input with specific datetime" do
|
|
102
|
+
datetime = Time.now + 86400
|
|
103
|
+
datetime_case_form_for(@user, :created_at, :datetime => datetime)
|
|
104
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option[selected=selected]", :text => datetime.day }
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
test "should generate datetime input with start and end year" do
|
|
108
|
+
datetime_case_form_for(@user, :created_at, :year => {:start => 2008, :end => 2012 })
|
|
109
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
test "should generate datetime input with :start_year and :end_year" do
|
|
113
|
+
datetime_case_form_for(@user, :created_at, :start_year => 2008, :end_year => 2012)
|
|
114
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
test "should generate datetime input with mixed :start_year and end year" do
|
|
118
|
+
datetime_case_form_for(@user, :created_at, :start_year => 2008, :year => { :end => 2012 })
|
|
119
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
test "should generate datetime input with :start_year rather than start year" do
|
|
123
|
+
datetime_case_form_for(@user, :created_at, :start_year => 2008, :year => {:start => 2009}, :end_year => 2012)
|
|
124
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
test "should generate datetime input with :end_year rather than end year" do
|
|
128
|
+
datetime_case_form_for(@user, :created_at, :end_year => 2012, :year => {:end => 2013}, :start_year => 2008)
|
|
129
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", 5 }
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
test "should generate datetime input with long months" do
|
|
133
|
+
datetime_case_form_for(@user, :created_at, :month => {:short => false})
|
|
134
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
test "should generate datetime input with short months" do
|
|
138
|
+
datetime_case_form_for(@user, :created_at, :month => {:short => true})
|
|
139
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Feb" }
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
test "should generate datetime input without :short_month" do
|
|
143
|
+
datetime_case_form_for(@user, :created_at, :short_month => false)
|
|
144
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
test "should generate datetime input with :short_month" do
|
|
148
|
+
datetime_case_form_for(@user, :created_at, :short_month => true)
|
|
149
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Feb" }
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
test "should generate datetime input with month names" do
|
|
153
|
+
datetime_case_form_for(@user, :created_at, :month => {:names => ["Styczownik", "Lutownik", "", "", "", "", "", "", "", "", "", ""]})
|
|
154
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Lutownik" }
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
test "should generate datetime input with default month names when nil" do
|
|
158
|
+
datetime_case_form_for(@user, :created_at, :month => {:names => nil})
|
|
159
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "February" }
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
test "should generate datetime input with minute step" do
|
|
163
|
+
datetime_case_form_for(@user, :created_at, :minute => {:step => 15})
|
|
164
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", 4 }
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
test "should generate datetime input with :minute_step" do
|
|
168
|
+
datetime_case_form_for(@user, :created_at, :minute_step => 15 )
|
|
169
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", 4 }
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
test "should generate datetime input without prompt" do
|
|
173
|
+
datetime_case_form_for(@user, :created_at, :prompt => false)
|
|
174
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", :count => 0, :text => "Year" }
|
|
175
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", :count => 0, :text => "Month" }
|
|
176
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", :count => 0, :text => "Day" }
|
|
177
|
+
assert_select("select#user_created_at_4i", 1) { assert_select "option", :count => 0, :text => "Hour" }
|
|
178
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", :count => 0, :text => "Minute" }
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
test "should generate datetime input with default prompt" do
|
|
182
|
+
datetime_case_form_for(@user, :created_at, :prompt => true)
|
|
183
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "Year" }
|
|
184
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Month" }
|
|
185
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "Day" }
|
|
186
|
+
assert_select("select#user_created_at_4i", 1) { assert_select "option", "Hour" }
|
|
187
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", "Minute" }
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
test "should generate datetime input with specific prompt" do
|
|
191
|
+
datetime_case_form_for(@user, :created_at, :prompt => { :year => "Choose year", :month => "Choose month", :day => "Choose day", :hour => "Choose hour", :minute => "Choose minute"})
|
|
192
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "Choose year" }
|
|
193
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "Choose month" }
|
|
194
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "Choose day" }
|
|
195
|
+
assert_select("select#user_created_at_4i", 1) { assert_select "option", "Choose hour" }
|
|
196
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", "Choose minute" }
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
test "should generate datetime input with specific prompt as string" do
|
|
200
|
+
text = "Choose date and time"
|
|
201
|
+
datetime_case_form_for(@user, :created_at, :prompt => text)
|
|
202
|
+
assert_select("select", 5) { assert_select "option", text }
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
test "should generate datetime input without blank" do
|
|
206
|
+
datetime_case_form_for(@user, :created_at, :blank => false)
|
|
207
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
208
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
209
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
210
|
+
assert_select("select#user_created_at_4i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
211
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", :count => 0, :text => "" }
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
test "should generate datetime input with blank" do
|
|
215
|
+
datetime_case_form_for(@user, :created_at, :blank => true)
|
|
216
|
+
assert_select("select#user_created_at_1i", 1) { assert_select "option", "" }
|
|
217
|
+
assert_select("select#user_created_at_2i", 1) { assert_select "option", "" }
|
|
218
|
+
assert_select("select#user_created_at_3i", 1) { assert_select "option", "" }
|
|
219
|
+
assert_select("select#user_created_at_4i", 1) { assert_select "option", "" }
|
|
220
|
+
assert_select("select#user_created_at_5i", 1) { assert_select "option", "" }
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
test "should generate datetime input as disabled" do
|
|
224
|
+
datetime_case_form_for(@user, :created_at, :disabled => true)
|
|
225
|
+
assert_select "select[disabled=disabled]", 5
|
|
226
|
+
end
|
|
227
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
class TimeInputTest < ActionView::TestCase
|
|
5
|
+
def time_case_form_for(object, attribute, options={})
|
|
6
|
+
concat(case_form_for(object) { |f| f.time(attribute, options) })
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
test "should generate time input" do
|
|
10
|
+
time_case_form_for(@user, :created_at)
|
|
11
|
+
assert_select "select", 2 # for hour and minute
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
test "should generate time without date" do
|
|
15
|
+
time_case_form_for(@user, :created_at)
|
|
16
|
+
assert_select "input[type=hidden]#user_created_at_1i", 0
|
|
17
|
+
assert_select "input[type=hidden]#user_created_at_2i", 0
|
|
18
|
+
assert_select "input[type=hidden]#user_created_at_3i", 0
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "should generate time with date" do
|
|
22
|
+
time_case_form_for(@user, :created_at, :date => true)
|
|
23
|
+
assert_select "input[type=hidden]#user_created_at_1i", 1
|
|
24
|
+
assert_select "input[type=hidden]#user_created_at_2i", 1
|
|
25
|
+
assert_select "input[type=hidden]#user_created_at_3i", 1
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
test "should generate time with different order" do
|
|
29
|
+
time_case_form_for(@user, :created_at, :elements => [:second, :minute, :hour])
|
|
30
|
+
assert_select "select", 3 # for hour, minute and second
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
test "should generate time with own minute step" do
|
|
34
|
+
time_case_form_for(@user, :created_at, :minute_step => 10)
|
|
35
|
+
assert_select("select#user_created_at_5i") { assert_select "option", 6 }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "should generate time with standard prompt" do
|
|
39
|
+
time_case_form_for(@user, :created_at, :prompt => true)
|
|
40
|
+
assert_select("select#user_created_at_4i") { assert_select "option", "Hour" }
|
|
41
|
+
assert_select("select#user_created_at_5i") { assert_select "option", "Minute" }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
test "should generate time with own prompt" do
|
|
45
|
+
hour, minute = "Choose hour", "Choose minute"
|
|
46
|
+
time_case_form_for(@user, :created_at, :prompt => { :hour => hour, :minute => minute })
|
|
47
|
+
assert_select("select#user_created_at_4i") { assert_select "option", hour }
|
|
48
|
+
assert_select("select#user_created_at_5i") { assert_select "option", minute }
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
test "should generate time with own text prompt" do
|
|
52
|
+
text = "Choose time"
|
|
53
|
+
time_case_form_for(@user, :created_at, :prompt => text)
|
|
54
|
+
assert_select("select#user_created_at_4i") { assert_select "option", text }
|
|
55
|
+
assert_select("select#user_created_at_5i") { assert_select "option", text }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
test "should generate time without blank" do
|
|
59
|
+
time_case_form_for(@user, :created_at, :blank => false)
|
|
60
|
+
assert_select("select") { assert_select "option", :count => 0 , :text => "" }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
test "should generate time with blank" do
|
|
64
|
+
time_case_form_for(@user, :created_at, :blank => true)
|
|
65
|
+
assert_select("select") { assert_select "option", "" }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
test "should generate disabled time" do
|
|
69
|
+
time_case_form_for(@user, :created_at, :disabled => true)
|
|
70
|
+
assert_select "select[disabled=disabled]", 2
|
|
71
|
+
end
|
|
72
|
+
end
|