bootstrap_form 2.1.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +242 -119
- data/lib/bootstrap_form/form_builder.rb +128 -44
- data/lib/bootstrap_form/helper.rb +3 -1
- data/lib/bootstrap_form/helpers/bootstrap.rb +24 -7
- data/lib/bootstrap_form/version.rb +1 -1
- data/test/bootstrap_checkbox_test.rb +71 -0
- data/test/bootstrap_fields_test.rb +152 -0
- data/test/bootstrap_form_group_test.rb +218 -0
- data/test/bootstrap_form_test.rb +47 -518
- data/test/bootstrap_other_components_test.rb +54 -0
- data/test/bootstrap_radio_button_test.rb +47 -0
- data/test/bootstrap_selects_test.rb +132 -0
- data/test/dummy/log/test.log +3385 -39948
- data/test/test_helper.rb +7 -0
- metadata +14 -4
- data/test/dummy/log/development.log +0 -0
@@ -0,0 +1,218 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class BootstrapFormGroupTest < ActionView::TestCase
|
4
|
+
include BootstrapForm::Helper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
setup_test_fixture
|
8
|
+
end
|
9
|
+
|
10
|
+
test "changing the label text" do
|
11
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email Address</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
12
|
+
assert_equal expected, @builder.text_field(:email, label: 'Email Address')
|
13
|
+
end
|
14
|
+
|
15
|
+
test "hiding a label" do
|
16
|
+
expected = %{<div class="form-group"><label class="sr-only control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
17
|
+
assert_equal expected, @builder.text_field(:email, hide_label: true)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "adding prepend text" do
|
21
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><span class="input-group-addon">@</span><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div></div>}
|
22
|
+
assert_equal expected, @builder.text_field(:email, prepend: '@')
|
23
|
+
end
|
24
|
+
|
25
|
+
test "adding append text" do
|
26
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="input-group-addon">.00</span></div></div>}
|
27
|
+
assert_equal expected, @builder.text_field(:email, append: '.00')
|
28
|
+
end
|
29
|
+
|
30
|
+
test "append and prepend button" do
|
31
|
+
prefix = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group">}
|
32
|
+
field = %{<input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" />}
|
33
|
+
button = %{<span class="input-group-btn"><a class="btn btn-default" href="#">Click</a></span>}
|
34
|
+
suffix = %{</div></div>}
|
35
|
+
after_button = prefix + field + button + suffix
|
36
|
+
before_button = prefix + button + field + suffix
|
37
|
+
both_button = prefix + button + field + button + suffix
|
38
|
+
button_src = link_to("Click", "#", class: "btn btn-default")
|
39
|
+
assert_equal after_button, @builder.text_field(:email, append: button_src)
|
40
|
+
assert_equal before_button, @builder.text_field(:email, prepend: button_src)
|
41
|
+
assert_equal both_button, @builder.text_field(:email, append: button_src, prepend: button_src)
|
42
|
+
end
|
43
|
+
|
44
|
+
test "adding both prepend and append text" do
|
45
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><span class="input-group-addon">$</span><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="input-group-addon">.00</span></div></div>}
|
46
|
+
assert_equal expected, @builder.text_field(:email, prepend: '$', append: '.00')
|
47
|
+
end
|
48
|
+
|
49
|
+
test "help messages for default forms" do
|
50
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="help-block">This is required</span></div>}
|
51
|
+
assert_equal expected, @builder.text_field(:email, help: 'This is required')
|
52
|
+
end
|
53
|
+
|
54
|
+
test "help messages for horizontal forms" do
|
55
|
+
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="help-block">This is required</span></div></div>}
|
56
|
+
assert_equal expected, @horizontal_builder.text_field(:email, help: "This is required")
|
57
|
+
end
|
58
|
+
|
59
|
+
test "help messages to look up I18n automatically" do
|
60
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_password">Password</label><input class="form-control" id="user_password" name="user[password]" type="text" value="secret" /><span class="help-block">A good password should be at least six characters long</span></div>}
|
61
|
+
assert_equal expected, @builder.text_field(:password)
|
62
|
+
end
|
63
|
+
|
64
|
+
test "help messages to ignore translation when user disables help" do
|
65
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_password">Password</label><input class="form-control" id="user_password" name="user[password]" type="text" value="secret" /></div>}
|
66
|
+
assert_equal expected, @builder.text_field(:password, help: false)
|
67
|
+
end
|
68
|
+
|
69
|
+
test "form_group creates a valid structure and allows arbitrary html to be added via a block" do
|
70
|
+
output = @horizontal_builder.form_group :nil, label: { text: 'Foo' } do
|
71
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
72
|
+
end
|
73
|
+
|
74
|
+
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_nil">Foo</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
75
|
+
assert_equal expected, output
|
76
|
+
end
|
77
|
+
|
78
|
+
test "form_group adds a spacer when no label exists for a horizontal form" do
|
79
|
+
output = @horizontal_builder.form_group do
|
80
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
81
|
+
end
|
82
|
+
|
83
|
+
expected = %{<div class="form-group"><div class="col-sm-10 col-sm-offset-2"><p class="form-control-static">Bar</p></div></div>}
|
84
|
+
assert_equal expected, output
|
85
|
+
end
|
86
|
+
|
87
|
+
test "form_group renders the label correctly" do
|
88
|
+
output = @horizontal_builder.form_group :email, label: { text: 'Custom Control' } do
|
89
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
90
|
+
end
|
91
|
+
|
92
|
+
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_email">Custom Control</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
93
|
+
assert_equal expected, output
|
94
|
+
end
|
95
|
+
|
96
|
+
test "form_group accepts class thorugh options hash" do
|
97
|
+
output = @horizontal_builder.form_group :email, class: "foo" do
|
98
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
99
|
+
end
|
100
|
+
|
101
|
+
expected = %{<div class="form-group foo"><div class="col-sm-10 col-sm-offset-2"><p class="form-control-static">Bar</p></div></div>}
|
102
|
+
assert_equal expected, output
|
103
|
+
end
|
104
|
+
|
105
|
+
test "form_group accepts class thorugh options hash without needing a name" do
|
106
|
+
output = @horizontal_builder.form_group class: "foo" do
|
107
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
108
|
+
end
|
109
|
+
|
110
|
+
expected = %{<div class="form-group foo"><div class="col-sm-10 col-sm-offset-2"><p class="form-control-static">Bar</p></div></div>}
|
111
|
+
assert_equal expected, output
|
112
|
+
end
|
113
|
+
|
114
|
+
test "form_group overrides the label's 'class' and 'for' attributes if others are passed" do
|
115
|
+
output = @horizontal_builder.form_group nil, label: { text: 'Custom Control', class: 'foo', for: 'bar' } do
|
116
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
117
|
+
end
|
118
|
+
|
119
|
+
expected = %{<div class="form-group"><label class="foo control-label col-sm-2" for="bar">Custom Control</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
120
|
+
assert_equal expected, output
|
121
|
+
end
|
122
|
+
|
123
|
+
test 'form_group renders the "error" class and message corrrectly when object is invalid' do
|
124
|
+
@user.email = nil
|
125
|
+
@user.valid?
|
126
|
+
|
127
|
+
output = @builder.form_group :email do
|
128
|
+
%{<p class="form-control-static">Bar</p>}.html_safe
|
129
|
+
end
|
130
|
+
|
131
|
+
expected = %{<div class="form-group has-error"><p class="form-control-static">Bar</p><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div>}
|
132
|
+
assert_equal expected, output
|
133
|
+
end
|
134
|
+
|
135
|
+
test "adds class to wrapped form_group by a field" do
|
136
|
+
expected = %{<div class="form-group none-margin"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="search" /></div>}
|
137
|
+
assert_equal expected, @builder.search_field(:misc, wrapper_class: 'none-margin')
|
138
|
+
end
|
139
|
+
|
140
|
+
test "adds class to wrapped form_group by a field with errors" do
|
141
|
+
@user.email = nil
|
142
|
+
@user.valid?
|
143
|
+
|
144
|
+
expected = %{<div class="form-group none-margin has-error"><div class="field_with_errors"><label class="control-label" for="user_email">Email</label></div><div class="field_with_errors"><input class="form-control" id="user_email" name="user[email]" type="email" /></div><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div>}
|
145
|
+
assert_equal expected, @builder.email_field(:email, wrapper_class: 'none-margin')
|
146
|
+
end
|
147
|
+
|
148
|
+
test "adds class to wrapped form_group by a field with errors when bootstrap_form_for is used" do
|
149
|
+
@user.email = nil
|
150
|
+
@user.valid?
|
151
|
+
|
152
|
+
output = bootstrap_form_for(@user) do |f|
|
153
|
+
f.text_field(:email, help: 'This is required', wrapper_class: 'none-margin')
|
154
|
+
end
|
155
|
+
|
156
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group none-margin has-error"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" /><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div></form>}
|
157
|
+
assert_equal expected, output
|
158
|
+
end
|
159
|
+
|
160
|
+
test "adds offset for form_group without label" do
|
161
|
+
output = @horizontal_builder.form_group do
|
162
|
+
@horizontal_builder.submit
|
163
|
+
end
|
164
|
+
|
165
|
+
expected = %{<div class="form-group"><div class="col-sm-10 col-sm-offset-2"><input class="btn btn-default" name="commit" type="submit" value="Create User" /></div></div>}
|
166
|
+
assert_equal expected, output
|
167
|
+
end
|
168
|
+
|
169
|
+
test "adds offset for form_group without label but specific label_col" do
|
170
|
+
output = @horizontal_builder.form_group label_col: 'col-sm-5', control_col: 'col-sm-8' do
|
171
|
+
@horizontal_builder.submit
|
172
|
+
end
|
173
|
+
|
174
|
+
expected = %{<div class="form-group"><div class="col-sm-8 col-sm-offset-5"><input class="btn btn-default" name="commit" type="submit" value="Create User" /></div></div>}
|
175
|
+
assert_equal expected, output
|
176
|
+
end
|
177
|
+
|
178
|
+
test "adding an icon to a field" do
|
179
|
+
expected = %{<div class="form-group has-feedback"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="email" /><span class="glyphicon glyphicon-ok form-control-feedback"></span></div>}
|
180
|
+
assert_equal expected, @builder.email_field(:misc, icon: 'ok')
|
181
|
+
end
|
182
|
+
|
183
|
+
test "single form_group call in horizontal form should not be smash design" do
|
184
|
+
output = ''
|
185
|
+
output = @horizontal_builder.form_group do
|
186
|
+
"Hallo"
|
187
|
+
end
|
188
|
+
|
189
|
+
output = output + @horizontal_builder.text_field(:email)
|
190
|
+
|
191
|
+
expected = %{<div class="form-group"><div class="col-sm-10 col-sm-offset-2">Hallo</div></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div></div>}
|
192
|
+
assert_equal expected, output
|
193
|
+
end
|
194
|
+
|
195
|
+
test "adds data-attributes (or any other options) to wrapper" do
|
196
|
+
expected = %{<div class="form-group" data-foo="bar"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="search" /></div>}
|
197
|
+
assert_equal expected, @builder.search_field(:misc, wrapper: { data: { foo: 'bar' } })
|
198
|
+
end
|
199
|
+
|
200
|
+
test "passing options to a form control get passed through" do
|
201
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><input autofocus="autofocus" class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
202
|
+
assert_equal expected, @builder.text_field(:email, autofocus: true)
|
203
|
+
end
|
204
|
+
|
205
|
+
test "doesn't throw undefined method error when the content block returns nil" do
|
206
|
+
output = @builder.form_group :nil, label: { text: 'Foo' } do
|
207
|
+
nil
|
208
|
+
end
|
209
|
+
|
210
|
+
expected = %{<div class="form-group"><label class="control-label" for="user_nil">Foo</label></div>}
|
211
|
+
assert_equal expected, output
|
212
|
+
end
|
213
|
+
|
214
|
+
test "custom form group layout option" do
|
215
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></form>}
|
216
|
+
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal) { |f| f.email_field :email, layout: :inline }
|
217
|
+
end
|
218
|
+
end
|
data/test/bootstrap_form_test.rb
CHANGED
@@ -4,52 +4,60 @@ class BootstrapFormTest < ActionView::TestCase
|
|
4
4
|
include BootstrapForm::Helper
|
5
5
|
|
6
6
|
def setup
|
7
|
-
|
8
|
-
@builder = BootstrapForm::FormBuilder.new(:user, @user, self, {})
|
9
|
-
@horizontal_builder = BootstrapForm::FormBuilder.new(:user, @user, self, { layout: :horizontal, label_col: "col-sm-2", control_col: "col-sm-10" })
|
7
|
+
setup_test_fixture
|
10
8
|
end
|
11
9
|
|
12
10
|
test "default-style forms" do
|
13
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div></form>}
|
11
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div></form>}
|
14
12
|
assert_equal expected, bootstrap_form_for(@user) { |f| nil }
|
15
13
|
end
|
16
14
|
|
17
15
|
test "inline-style forms" do
|
18
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-inline" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div></form>}
|
16
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="form-inline" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div></form>}
|
19
17
|
assert_equal expected, bootstrap_form_for(@user, layout: :inline) { |f| nil }
|
20
18
|
end
|
21
19
|
|
22
20
|
test "horizontal-style forms" do
|
23
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
21
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
24
22
|
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal) { |f| f.email_field :email }
|
25
23
|
end
|
26
24
|
|
27
25
|
test "existing styles aren't clobbered when specifying a form style" do
|
28
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="my-style form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
26
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="my-style form-horizontal" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
29
27
|
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal, html: { class: "my-style" }) { |f| f.email_field :email }
|
30
28
|
end
|
31
29
|
|
30
|
+
test "given role attribute should not be covered by default role attribute" do
|
31
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="not-a-form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div></form>}
|
32
|
+
assert_equal expected, bootstrap_form_for(@user, html: { role: 'not-a-form'}) {|f| nil}
|
33
|
+
end
|
34
|
+
|
32
35
|
test "bootstrap_form_tag acts like a form tag" do
|
33
|
-
expected = %{<form accept-charset="UTF-8" action="/users" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="email">Your Email</label><input class="form-control" id="email" name="email" type="text" /></div></form>}
|
36
|
+
expected = %{<form accept-charset="UTF-8" action="/users" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="email">Your Email</label><input class="form-control" id="email" name="email" type="text" /></div></form>}
|
34
37
|
assert_equal expected, bootstrap_form_tag(url: '/users') { |f| f.text_field :email, label: "Your Email" }
|
35
38
|
end
|
36
39
|
|
37
40
|
test "bootstrap_form_tag does not clobber custom options" do
|
38
|
-
expected = %{<form accept-charset="UTF-8" action="/users" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="ID">Email</label><input class="form-control" id="ID" name="NAME" type="text" /></div></form>}
|
41
|
+
expected = %{<form accept-charset="UTF-8" action="/users" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="ID">Email</label><input class="form-control" id="ID" name="NAME" type="text" /></div></form>}
|
39
42
|
assert_equal expected, bootstrap_form_tag(url: '/users') { |f| f.text_field :email, name: 'NAME', id: "ID" }
|
40
43
|
end
|
41
44
|
|
45
|
+
test "bootstrap_form_tag allows an empty name for checkboxes" do
|
46
|
+
expected = %{<form accept-charset="UTF-8" action="/users" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="checkbox"><label for="_misc"><input name="[misc]" type="hidden" value="0" /><input id="_misc" name="[misc]" type="checkbox" value="1" /> Misc</label></div></form>}
|
47
|
+
assert_equal expected, bootstrap_form_tag(url: '/users') { |f| f.check_box :misc }
|
48
|
+
end
|
49
|
+
|
42
50
|
test "alert message is wrapped correctly" do
|
43
51
|
@user.email = nil
|
44
52
|
@user.valid?
|
45
|
-
expected = %{<div class="alert alert-danger"><p>Please fix the following errors:</p></div>}
|
53
|
+
expected = %{<div class="alert alert-danger"><p>Please fix the following errors:</p><ul class="rails-bootstrap-forms-error-summary"><li>Email can't be blank</li><li>Email is too short (minimum is 5 characters)</li><li>Terms must be accepted</li></ul></div>}
|
46
54
|
assert_equal expected, @builder.alert_message('Please fix the following errors:')
|
47
55
|
end
|
48
56
|
|
49
57
|
test "changing the class name for the alert message" do
|
50
58
|
@user.email = nil
|
51
59
|
@user.valid?
|
52
|
-
expected = %{<div class="my-css-class"><p>Please fix the following errors:</p></div>}
|
60
|
+
expected = %{<div class="my-css-class"><p>Please fix the following errors:</p><ul class="rails-bootstrap-forms-error-summary"><li>Email can't be blank</li><li>Email is too short (minimum is 5 characters)</li><li>Terms must be accepted</li></ul></div>}
|
53
61
|
assert_equal expected, @builder.alert_message('Please fix the following errors:', class: 'my-css-class')
|
54
62
|
end
|
55
63
|
|
@@ -61,7 +69,7 @@ class BootstrapFormTest < ActionView::TestCase
|
|
61
69
|
f.alert_message('Please fix the following errors:')
|
62
70
|
end
|
63
71
|
|
64
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="alert alert-danger"><p>Please fix the following errors:</p><ul class="rails-bootstrap-forms-error-summary"><li>Email can't be blank</li><li>Email is too short (minimum is 5 characters)</li><li>Terms must be accepted</li></ul></div></form>}
|
72
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="alert alert-danger"><p>Please fix the following errors:</p><ul class="rails-bootstrap-forms-error-summary"><li>Email can't be blank</li><li>Email is too short (minimum is 5 characters)</li><li>Terms must be accepted</li></ul></div></form>}
|
65
73
|
assert_equal expected, output
|
66
74
|
end
|
67
75
|
|
@@ -73,7 +81,19 @@ class BootstrapFormTest < ActionView::TestCase
|
|
73
81
|
f.alert_message('Please fix the following errors:', error_summary: false)
|
74
82
|
end
|
75
83
|
|
76
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="alert alert-danger"><p>Please fix the following errors:</p></div></form>}
|
84
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="alert alert-danger"><p>Please fix the following errors:</p></div></form>}
|
85
|
+
assert_equal expected, output
|
86
|
+
end
|
87
|
+
|
88
|
+
test "alert_message allows the error_summary to be turned on with inline_errors also turned on" do
|
89
|
+
@user.email = nil
|
90
|
+
@user.valid?
|
91
|
+
|
92
|
+
output = bootstrap_form_for(@user, inline_errors: true) do |f|
|
93
|
+
f.alert_message('Please fix the following errors:', error_summary: true)
|
94
|
+
end
|
95
|
+
|
96
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="alert alert-danger"><p>Please fix the following errors:</p><ul class="rails-bootstrap-forms-error-summary"><li>Email can't be blank</li><li>Email is too short (minimum is 5 characters)</li><li>Terms must be accepted</li></ul></div></form>}
|
77
97
|
assert_equal expected, output
|
78
98
|
end
|
79
99
|
|
@@ -93,407 +113,16 @@ class BootstrapFormTest < ActionView::TestCase
|
|
93
113
|
assert_equal expected, @builder.errors_on(:email)
|
94
114
|
end
|
95
115
|
|
96
|
-
test "color fields are wrapped correctly" do
|
97
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="color" value="#000000" /></div>}
|
98
|
-
assert_equal expected, @builder.color_field(:misc)
|
99
|
-
end
|
100
|
-
|
101
|
-
test "date fields are wrapped correctly" do
|
102
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="date" /></div>}
|
103
|
-
assert_equal expected, @builder.date_field(:misc)
|
104
|
-
end
|
105
|
-
|
106
|
-
test "date time fields are wrapped correctly" do
|
107
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="datetime" /></div>}
|
108
|
-
assert_equal expected, @builder.datetime_field(:misc)
|
109
|
-
end
|
110
|
-
|
111
|
-
test "date time local fields are wrapped correctly" do
|
112
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="datetime-local" /></div>}
|
113
|
-
assert_equal expected, @builder.datetime_local_field(:misc)
|
114
|
-
end
|
115
|
-
|
116
|
-
test "email fields are wrapped correctly" do
|
117
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="email" /></div>}
|
118
|
-
assert_equal expected, @builder.email_field(:misc)
|
119
|
-
end
|
120
|
-
|
121
|
-
test "file fields are wrapped correctly" do
|
122
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input id="user_misc" name="user[misc]" type="file" /></div>}
|
123
|
-
assert_equal expected, @builder.file_field(:misc)
|
124
|
-
end
|
125
|
-
|
126
|
-
test "hidden fields are supported" do
|
127
|
-
expected = %{<input id="user_misc" name="user[misc]" type="hidden" />}
|
128
|
-
assert_equal expected, @builder.hidden_field(:misc)
|
129
|
-
end
|
130
|
-
|
131
|
-
test "month local fields are wrapped correctly" do
|
132
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="month" /></div>}
|
133
|
-
assert_equal expected, @builder.month_field(:misc)
|
134
|
-
end
|
135
|
-
|
136
|
-
test "number fields are wrapped correctly" do
|
137
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="number" /></div>}
|
138
|
-
assert_equal expected, @builder.number_field(:misc)
|
139
|
-
end
|
140
|
-
|
141
|
-
test "password fields are wrapped correctly" do
|
142
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_password">Password</label><input class="form-control" id="user_password" name="user[password]" type="password" /></div>}
|
143
|
-
assert_equal expected, @builder.password_field(:password)
|
144
|
-
end
|
145
|
-
|
146
|
-
test "phone/telephone fields are wrapped correctly" do
|
147
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="tel" /></div>}
|
148
|
-
assert_equal expected, @builder.phone_field(:misc)
|
149
|
-
assert_equal expected, @builder.telephone_field(:misc)
|
150
|
-
end
|
151
|
-
|
152
|
-
test "range fields are wrapped correctly" do
|
153
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="range" /></div>}
|
154
|
-
assert_equal expected, @builder.range_field(:misc)
|
155
|
-
end
|
156
|
-
|
157
|
-
test "search fields are wrapped correctly" do
|
158
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="search" /></div>}
|
159
|
-
assert_equal expected, @builder.search_field(:misc)
|
160
|
-
end
|
161
|
-
|
162
|
-
test "text areas are wrapped correctly" do
|
163
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_comments">Comments</label><textarea class="form-control" id="user_comments" name="user[comments]">\nmy comment</textarea></div>}
|
164
|
-
assert_equal expected, @builder.text_area(:comments)
|
165
|
-
end
|
166
|
-
|
167
|
-
test "text fields are wrapped correctly" do
|
168
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
169
|
-
assert_equal expected, @builder.text_field(:email)
|
170
|
-
end
|
171
|
-
|
172
|
-
test "time fields are wrapped correctly" do
|
173
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="time" /></div>}
|
174
|
-
assert_equal expected, @builder.time_field(:misc)
|
175
|
-
end
|
176
|
-
|
177
|
-
test "url fields are wrapped correctly" do
|
178
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="url" /></div>}
|
179
|
-
assert_equal expected, @builder.url_field(:misc)
|
180
|
-
end
|
181
|
-
|
182
|
-
test "week fields are wrapped correctly" do
|
183
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><input class="form-control" id="user_misc" name="user[misc]" type="week" /></div>}
|
184
|
-
assert_equal expected, @builder.week_field(:misc)
|
185
|
-
end
|
186
|
-
|
187
|
-
test "selects are wrapped correctly" do
|
188
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"><option value="1">activated</option>\n<option value="2">blocked</option></select></div>}
|
189
|
-
assert_equal expected, @builder.select(:status, [['activated', 1], ['blocked', 2]])
|
190
|
-
end
|
191
|
-
|
192
|
-
test "bootstrap_specific options are handled correctly" do
|
193
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">My Status Label</label><select class="form-control" id="user_status" name="user[status]"><option value="1">activated</option>\n<option value="2">blocked</option></select><span class="help-block">Help!</span></div>}
|
194
|
-
assert_equal expected, @builder.select(:status, [['activated', 1], ['blocked', 2]], label: "My Status Label", help: "Help!" )
|
195
|
-
end
|
196
|
-
|
197
|
-
test "selects with options are wrapped correctly" do
|
198
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"><option value="">Please Select</option>\n<option value="1">activated</option>\n<option value="2">blocked</option></select></div>}
|
199
|
-
assert_equal expected, @builder.select(:status, [['activated', 1], ['blocked', 2]], prompt: "Please Select")
|
200
|
-
end
|
201
|
-
|
202
|
-
test "selects with both options and html_options are wrapped correctly" do
|
203
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control my-select" id="user_status" name="user[status]"><option value="">Please Select</option>\n<option value="1">activated</option>\n<option value="2">blocked</option></select></div>}
|
204
|
-
assert_equal expected, @builder.select(:status, [['activated', 1], ['blocked', 2]], { prompt: "Please Select" }, class: "my-select")
|
205
|
-
end
|
206
|
-
|
207
|
-
test "selects render labels properly" do
|
208
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">User Status</label><select class="form-control" id="user_status" name="user[status]"><option value="1">activated</option>\n<option value="2">blocked</option></select></div>}
|
209
|
-
assert_equal expected, @builder.select(:status, [['activated', 1], ['blocked', 2]], label: "User Status")
|
210
|
-
end
|
211
|
-
|
212
|
-
test "collection_selects are wrapped correctly" do
|
213
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"></select></div>}
|
214
|
-
assert_equal expected, @builder.collection_select(:status, [], :id, :name)
|
215
|
-
end
|
216
|
-
|
217
|
-
test "collection_selects with options are wrapped correctly" do
|
218
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"><option value="">Please Select</option>\n</select></div>}
|
219
|
-
assert_equal expected, @builder.collection_select(:status, [], :id, :name, prompt: "Please Select")
|
220
|
-
end
|
221
|
-
|
222
|
-
test "collection_selects with options and html_options are wrapped correctly" do
|
223
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control my-select" id="user_status" name="user[status]"><option value="">Please Select</option>\n</select></div>}
|
224
|
-
assert_equal expected, @builder.collection_select(:status, [], :id, :name, { prompt: "Please Select" }, class: "my-select")
|
225
|
-
end
|
226
|
-
|
227
|
-
test "grouped_collection_selects are wrapped correctly" do
|
228
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"></select></div>}
|
229
|
-
assert_equal expected, @builder.grouped_collection_select(:status, [], :last, :first, :to_s, :to_s)
|
230
|
-
end
|
231
|
-
|
232
|
-
test "grouped_collection_selects with options are wrapped correctly" do
|
233
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control" id="user_status" name="user[status]"><option value="">Please Select</option>\n</select></div>}
|
234
|
-
assert_equal expected, @builder.grouped_collection_select(:status, [], :last, :first, :to_s, :to_s, prompt: "Please Select")
|
235
|
-
end
|
236
|
-
|
237
|
-
test "grouped_collection_selects with options and html_options are wrapped correctly" do
|
238
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_status">Status</label><select class="form-control my-select" id="user_status" name="user[status]"><option value="">Please Select</option>\n</select></div>}
|
239
|
-
assert_equal expected, @builder.grouped_collection_select(:status, [], :last, :first, :to_s, :to_s, { prompt: "Please Select" }, class: "my-select")
|
240
|
-
end
|
241
|
-
|
242
|
-
test "date selects are wrapped correctly" do
|
243
|
-
Timecop.freeze(Time.utc(2012, 2, 3)) do
|
244
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-date-select"><select class="form-control" id="user_misc_1i" name="user[misc(1i)]">\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option selected="selected" value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control" id="user_misc_2i" name="user[misc(2i)]">\n<option value="1">January</option>\n<option selected="selected" value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control" id="user_misc_3i" name="user[misc(3i)]">\n<option value="1">1</option>\n<option value="2">2</option>\n<option selected="selected" value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n</div></div>}
|
245
|
-
assert_equal expected, @builder.date_select(:misc)
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
test "date selects with options are wrapped correctly" do
|
250
|
-
Timecop.freeze(Time.utc(2012, 2, 3)) do
|
251
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-date-select"><select class="form-control" id="user_misc_1i" name="user[misc(1i)]">\n<option value=""></option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control" id="user_misc_2i" name="user[misc(2i)]">\n<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control" id="user_misc_3i" name="user[misc(3i)]">\n<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n</div></div>}
|
252
|
-
assert_equal expected, @builder.date_select(:misc, include_blank: true)
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
|
-
test "date selects with options and html_options are wrapped correctly" do
|
257
|
-
Timecop.freeze(Time.utc(2012, 2, 3)) do
|
258
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-date-select"><select class="form-control my-date-select" id="user_misc_1i" name="user[misc(1i)]">\n<option value=""></option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control my-date-select" id="user_misc_2i" name="user[misc(2i)]">\n<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control my-date-select" id="user_misc_3i" name="user[misc(3i)]">\n<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n</div></div>}
|
259
|
-
assert_equal expected, @builder.date_select(:misc, { include_blank: true }, class: "my-date-select")
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
test "time selects are wrapped correctly" do
|
264
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
265
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-time-select"><input id="user_misc_1i" name="user[misc(1i)]" type="hidden" value="2012" />\n<input id="user_misc_2i" name="user[misc(2i)]" type="hidden" value="2" />\n<input id="user_misc_3i" name="user[misc(3i)]" type="hidden" value="3" />\n<select class="form-control" id="user_misc_4i" name="user[misc(4i)]">\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option selected="selected" value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control" id="user_misc_5i" name="user[misc(5i)]">\n<option selected="selected" value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
266
|
-
assert_equal expected, @builder.time_select(:misc)
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
test "time selects with options are wrapped correctly" do
|
271
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
272
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-time-select"><input id="user_misc_1i" name="user[misc(1i)]" type="hidden" value="1" />\n<input id="user_misc_2i" name="user[misc(2i)]" type="hidden" value="1" />\n<input id="user_misc_3i" name="user[misc(3i)]" type="hidden" value="1" />\n<select class="form-control" id="user_misc_4i" name="user[misc(4i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control" id="user_misc_5i" name="user[misc(5i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
273
|
-
assert_equal expected, @builder.time_select(:misc, include_blank: true)
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
|
-
test "time selects with options and html_options are wrapped correctly" do
|
278
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
279
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-time-select"><input id="user_misc_1i" name="user[misc(1i)]" type="hidden" value="1" />\n<input id="user_misc_2i" name="user[misc(2i)]" type="hidden" value="1" />\n<input id="user_misc_3i" name="user[misc(3i)]" type="hidden" value="1" />\n<select class="form-control my-time-select" id="user_misc_4i" name="user[misc(4i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control my-time-select" id="user_misc_5i" name="user[misc(5i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
280
|
-
assert_equal expected, @builder.time_select(:misc, { include_blank: true }, class: "my-time-select")
|
281
|
-
end
|
282
|
-
end
|
283
|
-
|
284
|
-
test "datetime selects are wrapped correctly" do
|
285
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
286
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-datetime-select"><select class="form-control" id="user_misc_1i" name="user[misc(1i)]">\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option selected="selected" value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control" id="user_misc_2i" name="user[misc(2i)]">\n<option value="1">January</option>\n<option selected="selected" value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control" id="user_misc_3i" name="user[misc(3i)]">\n<option value="1">1</option>\n<option value="2">2</option>\n<option selected="selected" value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n — <select class="form-control" id="user_misc_4i" name="user[misc(4i)]">\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option selected="selected" value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control" id="user_misc_5i" name="user[misc(5i)]">\n<option selected="selected" value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
287
|
-
assert_equal expected, @builder.datetime_select(:misc)
|
288
|
-
end
|
289
|
-
end
|
290
|
-
|
291
|
-
test "datetime selects with options are wrapped correctly" do
|
292
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
293
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-datetime-select"><select class="form-control" id="user_misc_1i" name="user[misc(1i)]">\n<option value=""></option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control" id="user_misc_2i" name="user[misc(2i)]">\n<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control" id="user_misc_3i" name="user[misc(3i)]">\n<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n — <select class="form-control" id="user_misc_4i" name="user[misc(4i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control" id="user_misc_5i" name="user[misc(5i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
294
|
-
assert_equal expected, @builder.datetime_select(:misc, include_blank: true)
|
295
|
-
end
|
296
|
-
end
|
297
|
-
|
298
|
-
test "datetime selects with options and html_options are wrapped correctly" do
|
299
|
-
Timecop.freeze(Time.utc(2012, 2, 3, 12, 0, 0)) do
|
300
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="rails-bootstrap-forms-datetime-select"><select class="form-control my-datetime-select" id="user_misc_1i" name="user[misc(1i)]">\n<option value=""></option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n<option value="2010">2010</option>\n<option value="2011">2011</option>\n<option value="2012">2012</option>\n<option value="2013">2013</option>\n<option value="2014">2014</option>\n<option value="2015">2015</option>\n<option value="2016">2016</option>\n<option value="2017">2017</option>\n</select>\n<select class="form-control my-datetime-select" id="user_misc_2i" name="user[misc(2i)]">\n<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select class="form-control my-datetime-select" id="user_misc_3i" name="user[misc(3i)]">\n<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n — <select class="form-control my-datetime-select" id="user_misc_4i" name="user[misc(4i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select class="form-control my-datetime-select" id="user_misc_5i" name="user[misc(5i)]">\n<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</div></div>}
|
301
|
-
assert_equal expected, @builder.datetime_select(:misc, { include_blank: true }, class: "my-datetime-select")
|
302
|
-
end
|
303
|
-
end
|
304
|
-
|
305
|
-
test "check_box is wrapped correctly" do
|
306
|
-
expected = %{<div class="checkbox"><label for="user_terms"><input name="user[terms]" type="hidden" value="0" /><input id="user_terms" name="user[terms]" type="checkbox" value="1" /> I agree to the terms</label></div>}
|
307
|
-
assert_equal expected, @builder.check_box(:terms, label: 'I agree to the terms')
|
308
|
-
end
|
309
|
-
|
310
|
-
test "check_box label allows html" do
|
311
|
-
expected = %{<div class="checkbox"><label for="user_terms"><input name="user[terms]" type="hidden" value="0" /><input id="user_terms" name="user[terms]" type="checkbox" value="1" /> I agree to the <a href="#">terms</a></label></div>}
|
312
|
-
assert_equal expected, @builder.check_box(:terms, label: %{I agree to the <a href="#">terms</a>}.html_safe)
|
313
|
-
end
|
314
|
-
|
315
|
-
test "check_box accepts a block to define the label" do
|
316
|
-
expected = %{<div class="checkbox"><label for="user_terms"><input name="user[terms]" type="hidden" value="0" /><input id="user_terms" name="user[terms]" type="checkbox" value="1" /> I agree to the terms</label></div>}
|
317
|
-
assert_equal expected, @builder.check_box(:terms) { "I agree to the terms" }
|
318
|
-
end
|
319
|
-
|
320
|
-
test "check_box responds to checked_value and unchecked_value arguments" do
|
321
|
-
expected = %{<div class="checkbox"><label for="user_terms"><input name="user[terms]" type="hidden" value="no" /><input id="user_terms" name="user[terms]" type="checkbox" value="yes" /> I agree to the terms</label></div>}
|
322
|
-
assert_equal expected, @builder.check_box(:terms, {label: 'I agree to the terms'}, 'yes', 'no')
|
323
|
-
end
|
324
|
-
|
325
|
-
test "inline checkboxes" do
|
326
|
-
expected = %{<label class="checkbox-inline" for="user_terms"><input name="user[terms]" type="hidden" value="0" /><input id="user_terms" name="user[terms]" type="checkbox" value="1" /> I agree to the terms</label>}
|
327
|
-
assert_equal expected, @builder.check_box(:terms, label: 'I agree to the terms', inline: true)
|
328
|
-
end
|
329
|
-
|
330
|
-
test "radio_button is wrapped correctly" do
|
331
|
-
expected = %{<label class="radio"><input id="user_misc_1" name="user[misc]" type="radio" value="1" /> This is a radio button</label>}
|
332
|
-
assert_equal expected, @builder.radio_button(:misc, '1', label: 'This is a radio button')
|
333
|
-
end
|
334
|
-
|
335
|
-
test "radio_button inline label is set correctly" do
|
336
|
-
expected = %{<label class="radio-inline"><input id="user_misc_1" name="user[misc]" type="radio" value="1" /> This is a radio button</label>}
|
337
|
-
assert_equal expected, @builder.radio_button(:misc, '1', label: 'This is a radio button', inline: true)
|
338
|
-
end
|
339
|
-
|
340
|
-
test "changing the label text" do
|
341
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email Address</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
342
|
-
assert_equal expected, @builder.text_field(:email, label: 'Email Address')
|
343
|
-
end
|
344
|
-
|
345
|
-
test "hiding a label" do
|
346
|
-
expected = %{<div class="form-group"><label class="sr-only control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
347
|
-
assert_equal expected, @builder.text_field(:email, hide_label: true)
|
348
|
-
end
|
349
|
-
|
350
|
-
test "adding prepend text" do
|
351
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><span class="input-group-addon">@</span><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div></div>}
|
352
|
-
assert_equal expected, @builder.text_field(:email, prepend: '@')
|
353
|
-
end
|
354
|
-
|
355
|
-
test "adding append text" do
|
356
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="input-group-addon">.00</span></div></div>}
|
357
|
-
assert_equal expected, @builder.text_field(:email, append: '.00')
|
358
|
-
end
|
359
|
-
|
360
|
-
test "adding both prepend and append text" do
|
361
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><div class="input-group"><span class="input-group-addon">$</span><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="input-group-addon">.00</span></div></div>}
|
362
|
-
assert_equal expected, @builder.text_field(:email, prepend: '$', append: '.00')
|
363
|
-
end
|
364
|
-
|
365
|
-
test "help messages for default forms" do
|
366
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="help-block">This is required</span></div>}
|
367
|
-
assert_equal expected, @builder.text_field(:email, help: 'This is required')
|
368
|
-
end
|
369
|
-
|
370
|
-
test "help messages for horizontal forms" do
|
371
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /><span class="help-block">This is required</span></div></div>}
|
372
|
-
assert_equal expected, @horizontal_builder.text_field(:email, help: "This is required")
|
373
|
-
end
|
374
|
-
|
375
116
|
test "custom label width for horizontal forms" do
|
376
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-1" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
117
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-1" for="user_email">Email</label><div class="col-sm-10"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
377
118
|
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal) { |f| f.email_field :email, label_col: 'col-sm-1' }
|
378
119
|
end
|
379
120
|
|
380
121
|
test "custom input width for horizontal forms" do
|
381
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-5"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
122
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-5"><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></div></form>}
|
382
123
|
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal) { |f| f.email_field :email, control_col: 'col-sm-5' }
|
383
124
|
end
|
384
125
|
|
385
|
-
test "custom form group layout option" do
|
386
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="email" value="steve@example.com" /></div></form>}
|
387
|
-
assert_equal expected, bootstrap_form_for(@user, layout: :horizontal) { |f| f.email_field :email, layout: :inline }
|
388
|
-
end
|
389
|
-
|
390
|
-
test "passing options to a form control get passed through" do
|
391
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_email">Email</label><input autofocus="autofocus" class="form-control" id="user_email" name="user[email]" type="text" value="steve@example.com" /></div>}
|
392
|
-
assert_equal expected, @builder.text_field(:email, autofocus: true)
|
393
|
-
end
|
394
|
-
|
395
|
-
test "form_group creates a valid structure and allows arbitrary html to be added via a block" do
|
396
|
-
output = @horizontal_builder.form_group :nil, label: { text: 'Foo' } do
|
397
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
398
|
-
end
|
399
|
-
|
400
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_nil">Foo</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
401
|
-
assert_equal expected, output
|
402
|
-
end
|
403
|
-
|
404
|
-
test "form_group adds a spacer when no label exists for a horizontal form" do
|
405
|
-
output = @horizontal_builder.form_group do
|
406
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
407
|
-
end
|
408
|
-
|
409
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2"></label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
410
|
-
assert_equal expected, output
|
411
|
-
end
|
412
|
-
|
413
|
-
test "form_group renders the label correctly" do
|
414
|
-
output = @horizontal_builder.form_group :email, label: { text: 'Custom Control' } do
|
415
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
416
|
-
end
|
417
|
-
|
418
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_email">Custom Control</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
419
|
-
assert_equal expected, output
|
420
|
-
end
|
421
|
-
|
422
|
-
test "form_group accepts class thorugh options hash" do
|
423
|
-
output = @horizontal_builder.form_group :email, class: "foo" do
|
424
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
425
|
-
end
|
426
|
-
|
427
|
-
expected = %{<div class="form-group foo"><label class="control-label col-sm-2"></label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
428
|
-
assert_equal expected, output
|
429
|
-
end
|
430
|
-
|
431
|
-
test "form_group accepts class thorugh options hash without needing a name" do
|
432
|
-
output = @horizontal_builder.form_group class: "foo" do
|
433
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
434
|
-
end
|
435
|
-
|
436
|
-
expected = %{<div class="form-group foo"><label class="control-label col-sm-2"></label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
437
|
-
assert_equal expected, output
|
438
|
-
end
|
439
|
-
|
440
|
-
test "static control" do
|
441
|
-
output = @horizontal_builder.static_control :email
|
442
|
-
|
443
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_email">Email</label><div class="col-sm-10"><p class="form-control-static">steve@example.com</p></div></div>}
|
444
|
-
assert_equal expected, output
|
445
|
-
end
|
446
|
-
|
447
|
-
test "static control doesn't require an actual attribute" do
|
448
|
-
output = @horizontal_builder.static_control nil, label: "My Label" do
|
449
|
-
"this is a test"
|
450
|
-
end
|
451
|
-
|
452
|
-
expected = %{<div class="form-group"><label class="control-label col-sm-2" for="user_">My Label</label><div class="col-sm-10"><p class="form-control-static">this is a test</p></div></div>}
|
453
|
-
assert_equal expected, output
|
454
|
-
end
|
455
|
-
|
456
|
-
test "form_group overrides the label's 'class' and 'for' attributes if others are passed" do
|
457
|
-
output = @horizontal_builder.form_group nil, label: { text: 'Custom Control', class: 'foo', for: 'bar' } do
|
458
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
459
|
-
end
|
460
|
-
|
461
|
-
expected = %{<div class="form-group"><label class="foo control-label col-sm-2" for="bar">Custom Control</label><div class="col-sm-10"><p class="form-control-static">Bar</p></div></div>}
|
462
|
-
assert_equal expected, output
|
463
|
-
end
|
464
|
-
|
465
|
-
test 'form_group renders the "error" class and message corrrectly when object is invalid' do
|
466
|
-
@user.email = nil
|
467
|
-
@user.valid?
|
468
|
-
|
469
|
-
output = @builder.form_group :email do
|
470
|
-
%{<p class="form-control-static">Bar</p>}.html_safe
|
471
|
-
end
|
472
|
-
|
473
|
-
expected = %{<div class="form-group has-error"><p class="form-control-static">Bar</p><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div>}
|
474
|
-
assert_equal expected, output
|
475
|
-
end
|
476
|
-
|
477
|
-
test "submit button defaults to rails action name" do
|
478
|
-
expected = %{<input class="btn btn-default" name="commit" type="submit" value="Create User" />}
|
479
|
-
assert_equal expected, @builder.submit
|
480
|
-
end
|
481
|
-
|
482
|
-
test "submit button uses default button classes" do
|
483
|
-
expected = %{<input class="btn btn-default" name="commit" type="submit" value="Submit Form" />}
|
484
|
-
assert_equal expected, @builder.submit("Submit Form")
|
485
|
-
end
|
486
|
-
|
487
|
-
test "override submit button classes" do
|
488
|
-
expected = %{<input class="btn btn-primary" name="commit" type="submit" value="Submit Form" />}
|
489
|
-
assert_equal expected, @builder.submit("Submit Form", class: "btn btn-primary")
|
490
|
-
end
|
491
|
-
|
492
|
-
test "primary button uses proper css classes" do
|
493
|
-
expected = %{<input class="btn btn-primary" name="commit" type="submit" value="Submit Form" />}
|
494
|
-
assert_equal expected, @builder.primary("Submit Form")
|
495
|
-
end
|
496
|
-
|
497
126
|
test "the field contains the error and is not wrapped in div.field_with_errors when bootstrap_form_for is used" do
|
498
127
|
@user.email = nil
|
499
128
|
@user.valid?
|
@@ -502,19 +131,7 @@ class BootstrapFormTest < ActionView::TestCase
|
|
502
131
|
f.text_field(:email, help: 'This is required')
|
503
132
|
end
|
504
133
|
|
505
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group has-error"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" /><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div></form>}
|
506
|
-
assert_equal expected, output
|
507
|
-
end
|
508
|
-
|
509
|
-
test "help is preserved when inline_errors: false is passed to bootstrap_form_for" do
|
510
|
-
@user.email = nil
|
511
|
-
@user.valid?
|
512
|
-
|
513
|
-
output = bootstrap_form_for(@user, inline_errors: false) do |f|
|
514
|
-
f.text_field(:email, help: 'This is required')
|
515
|
-
end
|
516
|
-
|
517
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group has-error"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" /><span class="help-block">This is required</span></div></form>}
|
134
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group has-error"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" /><span class="help-block">can't be blank, is too short (minimum is 5 characters)</span></div></form>}
|
518
135
|
assert_equal expected, output
|
519
136
|
end
|
520
137
|
|
@@ -530,55 +147,15 @@ class BootstrapFormTest < ActionView::TestCase
|
|
530
147
|
assert_equal expected, output
|
531
148
|
end
|
532
149
|
|
533
|
-
test "
|
534
|
-
@user.
|
535
|
-
|
536
|
-
output = bootstrap_form_for(@user) do |f|
|
537
|
-
f.fields_for :address do |af|
|
538
|
-
af.text_field(:street)
|
539
|
-
end
|
540
|
-
end
|
541
|
-
|
542
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="user_address_attributes_street">Street</label><input class="form-control" id="user_address_attributes_street" name="user[address_attributes][street]" type="text" value="123 Main Street" /></div></form>}
|
543
|
-
assert_equal expected, output
|
544
|
-
end
|
545
|
-
|
546
|
-
test "bootstrap_form_for helper works for serialized hash attributes" do
|
547
|
-
@user.preferences = { favorite_color: "cerulean" }
|
548
|
-
|
549
|
-
output = bootstrap_form_for(@user) do |f|
|
550
|
-
f.fields_for :preferences do |builder|
|
551
|
-
builder.text_field :favorite_color, value: @user.preferences[:favorite_color]
|
552
|
-
end
|
553
|
-
end
|
554
|
-
|
555
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label" for="user_preferences_favorite_color">Favorite color</label><input class="form-control" id="user_preferences_favorite_color" name="user[preferences][favorite_color]" type="text" value="cerulean" /></div></form>}
|
556
|
-
assert_equal expected, output
|
557
|
-
end
|
558
|
-
|
559
|
-
test "fields_for correctly passes horizontal style from parent builder" do
|
560
|
-
@user.address = Address.new(street: '123 Main Street')
|
561
|
-
|
562
|
-
output = bootstrap_form_for(@user, layout: :horizontal, label_col: 'col-sm-2', control_col: 'col-sm-10') do |f|
|
563
|
-
f.fields_for :address do |af|
|
564
|
-
af.text_field(:street)
|
565
|
-
end
|
566
|
-
end
|
567
|
-
|
568
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="form-horizontal" id="new_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group"><label class="control-label col-sm-2" for="user_address_attributes_street">Street</label><div class="col-sm-10"><input class="form-control" id="user_address_attributes_street" name="user[address_attributes][street]" type="text" value="123 Main Street" /></div></div></form>}
|
569
|
-
assert_equal expected, output
|
570
|
-
end
|
571
|
-
|
572
|
-
test "fields_for correctly passes inline style from parent builder" do
|
573
|
-
@user.address = Address.new(street: '123 Main Street')
|
150
|
+
test "help is preserved when inline_errors: false is passed to bootstrap_form_for" do
|
151
|
+
@user.email = nil
|
152
|
+
@user.valid?
|
574
153
|
|
575
|
-
output = bootstrap_form_for(@user,
|
576
|
-
f.
|
577
|
-
af.text_field(:street)
|
578
|
-
end
|
154
|
+
output = bootstrap_form_for(@user, inline_errors: false) do |f|
|
155
|
+
f.text_field(:email, help: 'This is required')
|
579
156
|
end
|
580
157
|
|
581
|
-
expected = %{<form accept-charset="UTF-8" action="/users" class="
|
158
|
+
expected = %{<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post" role="form"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div><div class="form-group has-error"><label class="control-label" for="user_email">Email</label><input class="form-control" id="user_email" name="user[email]" type="text" /><span class="help-block">This is required</span></div></form>}
|
582
159
|
assert_equal expected, output
|
583
160
|
end
|
584
161
|
|
@@ -588,60 +165,12 @@ class BootstrapFormTest < ActionView::TestCase
|
|
588
165
|
assert_equal expected, builder.text_field(:email)
|
589
166
|
end
|
590
167
|
|
591
|
-
test '
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
assert_equal expected, @builder.collection_radio_buttons(:misc, collection, :id, :street, label: 'This is a radio button collection', help: 'With a help!')
|
596
|
-
end
|
597
|
-
|
598
|
-
test 'collection_radio_buttons renders multiple radios correctly' do
|
599
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
600
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><label class="radio"><input id="user_misc_1" name="user[misc]" type="radio" value="1" /> Foo</label><label class="radio"><input id="user_misc_2" name="user[misc]" type="radio" value="2" /> Bar</label></div>}
|
601
|
-
|
602
|
-
assert_equal expected, @builder.collection_radio_buttons(:misc, collection, :id, :street)
|
603
|
-
end
|
604
|
-
|
605
|
-
test 'collection_radio_buttons renders inline radios correctly' do
|
606
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
607
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><label class="radio-inline"><input id="user_misc_1" name="user[misc]" type="radio" value="1" /> Foo</label><label class="radio-inline"><input id="user_misc_2" name="user[misc]" type="radio" value="2" /> Bar</label></div>}
|
608
|
-
|
609
|
-
assert_equal expected, @builder.collection_radio_buttons(:misc, collection, :id, :street, inline: true)
|
610
|
-
end
|
611
|
-
|
612
|
-
test 'collection_radio_buttons renders with checked option correctly' do
|
613
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
614
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><label class="radio"><input checked="checked" id="user_misc_1" name="user[misc]" type="radio" value="1" /> Foo</label><label class="radio"><input id="user_misc_2" name="user[misc]" type="radio" value="2" /> Bar</label></div>}
|
615
|
-
|
616
|
-
assert_equal expected, @builder.collection_radio_buttons(:misc, collection, :id, :street, checked: 1)
|
617
|
-
end
|
618
|
-
|
619
|
-
test 'collection_check_boxes renders the form_group correctly' do
|
620
|
-
collection = [Address.new(id: 1, street: 'Foobar')]
|
621
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">This is a checkbox collection</label><div class="checkbox"><label for="user_misc_1"><input id="user_misc_1" name="user[misc][]" type="checkbox" value="1" /> Foobar</label></div><span class="help-block">With a help!</span></div>}
|
622
|
-
|
623
|
-
assert_equal expected, @builder.collection_check_boxes(:misc, collection, :id, :street, label: 'This is a checkbox collection', help: 'With a help!')
|
624
|
-
end
|
625
|
-
|
626
|
-
test 'collection_check_boxes renders multiple checkboxes correctly' do
|
627
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
628
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="checkbox"><label for="user_misc_1"><input id="user_misc_1" name="user[misc][]" type="checkbox" value="1" /> Foo</label></div><div class="checkbox"><label for="user_misc_2"><input id="user_misc_2" name="user[misc][]" type="checkbox" value="2" /> Bar</label></div></div>}
|
629
|
-
|
630
|
-
assert_equal expected, @builder.collection_check_boxes(:misc, collection, :id, :street)
|
631
|
-
end
|
632
|
-
|
633
|
-
test 'collection_check_boxes renders inline checkboxes correctly' do
|
634
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
635
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><label class="checkbox-inline" for="user_misc_1"><input id="user_misc_1" name="user[misc][]" type="checkbox" value="1" /> Foo</label><label class="checkbox-inline" for="user_misc_2"><input id="user_misc_2" name="user[misc][]" type="checkbox" value="2" /> Bar</label></div>}
|
636
|
-
|
637
|
-
assert_equal expected, @builder.collection_check_boxes(:misc, collection, :id, :street, inline: true)
|
638
|
-
end
|
168
|
+
test 'errors_on hide attribute name in message' do
|
169
|
+
@user.email = nil
|
170
|
+
@user.valid?
|
639
171
|
|
640
|
-
|
641
|
-
collection = [Address.new(id: 1, street: 'Foo'), Address.new(id: 2, street: 'Bar')]
|
642
|
-
expected = %{<div class="form-group"><label class="control-label" for="user_misc">Misc</label><div class="checkbox"><label for="user_misc_1"><input checked="checked" id="user_misc_1" name="user[misc][]" type="checkbox" value="1" /> Foo</label></div><div class="checkbox"><label for="user_misc_2"><input id="user_misc_2" name="user[misc][]" type="checkbox" value="2" /> Bar</label></div></div>}
|
172
|
+
expected = %{<div class="alert alert-danger">can't be blank, is too short (minimum is 5 characters)</div>}
|
643
173
|
|
644
|
-
assert_equal expected, @builder.
|
174
|
+
assert_equal expected, @builder.errors_on(:email, hide_attribute_name: true)
|
645
175
|
end
|
646
|
-
|
647
176
|
end
|