speedo-formstrap 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/README.md +2 -2
  2. data/Rakefile +1 -1
  3. data/VERSION +1 -1
  4. data/formtastic-bootstrap.gemspec +1 -1
  5. data/lib/formtastic-bootstrap.rb +5 -5
  6. data/lib/formtastic-bootstrap/actions.rb +4 -4
  7. data/lib/formtastic-bootstrap/actions/base.rb +1 -1
  8. data/lib/formtastic-bootstrap/actions/button_action.rb +1 -1
  9. data/lib/formtastic-bootstrap/actions/input_action.rb +1 -1
  10. data/lib/formtastic-bootstrap/actions/link_action.rb +1 -1
  11. data/lib/formtastic-bootstrap/engine.rb +1 -1
  12. data/lib/formtastic-bootstrap/form_builder.rb +9 -11
  13. data/lib/formtastic-bootstrap/helpers.rb +6 -8
  14. data/lib/formtastic-bootstrap/helpers/action_helper.rb +2 -2
  15. data/lib/formtastic-bootstrap/helpers/actions_helper.rb +2 -2
  16. data/lib/formtastic-bootstrap/helpers/buttons_helper.rb +10 -14
  17. data/lib/formtastic-bootstrap/helpers/fieldset_wrapper.rb +7 -12
  18. data/lib/formtastic-bootstrap/helpers/input_helper.rb +2 -2
  19. data/lib/formtastic-bootstrap/helpers/inputs_helper.rb +6 -6
  20. data/lib/formtastic-bootstrap/inputs.rb +21 -21
  21. data/lib/formtastic-bootstrap/inputs/base.rb +10 -11
  22. data/lib/formtastic-bootstrap/inputs/base/choices.rb +24 -13
  23. data/lib/formtastic-bootstrap/inputs/base/errors.rb +1 -1
  24. data/lib/formtastic-bootstrap/inputs/base/hints.rb +1 -1
  25. data/lib/formtastic-bootstrap/inputs/base/html.rb +1 -1
  26. data/lib/formtastic-bootstrap/inputs/base/labelling.rb +7 -17
  27. data/lib/formtastic-bootstrap/inputs/base/numeric.rb +1 -1
  28. data/lib/formtastic-bootstrap/inputs/base/stringish.rb +1 -1
  29. data/lib/formtastic-bootstrap/inputs/base/timeish.rb +13 -6
  30. data/lib/formtastic-bootstrap/inputs/base/wrapping.rb +15 -33
  31. data/lib/formtastic-bootstrap/inputs/boolean_input.rb +1 -1
  32. data/lib/formtastic-bootstrap/inputs/check_boxes_input.rb +1 -1
  33. data/lib/formtastic-bootstrap/inputs/date_input.rb +1 -1
  34. data/lib/formtastic-bootstrap/inputs/datetime_input.rb +1 -1
  35. data/lib/formtastic-bootstrap/inputs/email_input.rb +1 -1
  36. data/lib/formtastic-bootstrap/inputs/file_input.rb +1 -1
  37. data/lib/formtastic-bootstrap/inputs/hidden_input.rb +1 -1
  38. data/lib/formtastic-bootstrap/inputs/number_input.rb +3 -3
  39. data/lib/formtastic-bootstrap/inputs/password_input.rb +1 -1
  40. data/lib/formtastic-bootstrap/inputs/phone_input.rb +1 -1
  41. data/lib/formtastic-bootstrap/inputs/radio_input.rb +13 -14
  42. data/lib/formtastic-bootstrap/inputs/range_input.rb +3 -3
  43. data/lib/formtastic-bootstrap/inputs/search_input.rb +1 -1
  44. data/lib/formtastic-bootstrap/inputs/select_input.rb +1 -1
  45. data/lib/formtastic-bootstrap/inputs/string_input.rb +1 -1
  46. data/lib/formtastic-bootstrap/inputs/text_input.rb +1 -1
  47. data/lib/formtastic-bootstrap/inputs/time_input.rb +1 -1
  48. data/lib/formtastic-bootstrap/inputs/time_zone_input.rb +1 -1
  49. data/lib/formtastic-bootstrap/inputs/url_input.rb +1 -1
  50. data/spec/actions/button_action_spec.rb +1 -1
  51. data/spec/actions/generic_action_spec.rb +1 -1
  52. data/spec/actions/input_action_spec.rb +1 -1
  53. data/spec/actions/link_action_spec.rb +1 -1
  54. data/spec/builder/semantic_fields_for_spec.rb +16 -16
  55. data/spec/helpers/action_helper_spec.rb +1 -1
  56. data/spec/helpers/actions_helper_spec.rb +1 -1
  57. data/spec/helpers/buttons_helper_spec.rb +46 -56
  58. data/spec/helpers/input_helper_spec.rb +209 -209
  59. data/spec/helpers/inputs_helper_spec.rb +103 -117
  60. data/spec/inputs/boolean_input_spec.rb +46 -74
  61. data/spec/inputs/check_boxes_input_spec.rb +82 -110
  62. data/spec/inputs/date_input_spec.rb +15 -81
  63. data/spec/inputs/datetime_input_spec.rb +13 -13
  64. data/spec/inputs/email_input_spec.rb +6 -34
  65. data/spec/inputs/file_input_spec.rb +6 -34
  66. data/spec/inputs/hidden_input_spec.rb +13 -41
  67. data/spec/inputs/number_input_spec.rb +97 -127
  68. data/spec/inputs/password_input_spec.rb +6 -34
  69. data/spec/inputs/phone_input_spec.rb +6 -34
  70. data/spec/inputs/radio_input_spec.rb +45 -73
  71. data/spec/inputs/range_input_spec.rb +66 -94
  72. data/spec/inputs/search_input_spec.rb +6 -33
  73. data/spec/inputs/select_input_spec.rb +78 -124
  74. data/spec/inputs/string_input_spec.rb +22 -67
  75. data/spec/inputs/text_input_spec.rb +15 -42
  76. data/spec/inputs/time_input_spec.rb +23 -23
  77. data/spec/inputs/time_zone_input_spec.rb +20 -20
  78. data/spec/inputs/url_input_spec.rb +6 -34
  79. data/spec/support/custom_macros.rb +196 -67
  80. data/spec/support/formtastic_spec_helper.rb +6 -22
  81. data/speedo-formstrap.gemspec +146 -0
  82. metadata +18 -17
@@ -8,7 +8,7 @@ describe 'search input' do
8
8
  before do
9
9
  @output_buffer = ''
10
10
  mock_everything
11
- Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
11
+ Formtastic::Helpers::FormHelper.builder = SpeedoFormstrap::FormBuilder
12
12
  end
13
13
 
14
14
  describe "when object is provided" do
@@ -18,8 +18,8 @@ describe 'search input' do
18
18
  end)
19
19
  end
20
20
 
21
- it_should_have_input_wrapper_with_class('search-wrapper')
22
- it_should_have_input_wrapper_with_class("control-group")
21
+ it_should_have_input_wrapper_with_class(:search)
22
+ it_should_have_input_wrapper_with_class(:clearfix)
23
23
  it_should_have_input_wrapper_with_class(:stringish)
24
24
  it_should_have_input_class_in_the_right_place
25
25
  it_should_have_input_wrapper_with_id("post_search_input")
@@ -43,37 +43,10 @@ describe 'search input' do
43
43
  it_should_have_label_and_input_with_id("context2_post_search")
44
44
 
45
45
  end
46
-
47
- describe "when index is provided" do
48
-
49
- before do
50
- @output_buffer = ''
51
- mock_everything
52
-
53
- concat(semantic_form_for(@new_post) do |builder|
54
- concat(builder.fields_for(:author, :index => 3) do |author|
55
- concat(author.input(:name, :as => :search))
56
- end)
57
- end)
58
- end
59
-
60
- it 'should index the id of the wrapper' do
61
- output_buffer.should have_tag("div#post_author_attributes_3_name_input")
62
- end
63
-
64
- it 'should index the id of the select tag' do
65
- output_buffer.should have_tag("input#post_author_attributes_3_name")
66
- end
67
-
68
- it 'should index the name of the select tag' do
69
- output_buffer.should have_tag("input[@name='post[author_attributes][3][name]']")
70
- end
71
-
72
- end
73
-
46
+
74
47
  describe "when required" do
75
48
  it "should add the required attribute to the input's html options" do
76
- with_config :use_required_attribute, true do
49
+ with_config :use_required_attribute, true do
77
50
  concat(semantic_form_for(@new_post) do |builder|
78
51
  concat(builder.input(:title, :as => :search, :required => true))
79
52
  end)
@@ -81,6 +54,6 @@ describe 'search input' do
81
54
  end
82
55
  end
83
56
  end
84
-
57
+
85
58
  end
86
59
 
@@ -8,7 +8,7 @@ describe 'select input' do
8
8
  before do
9
9
  @output_buffer = ''
10
10
  mock_everything
11
- Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
11
+ Formtastic::Helpers::FormHelper.builder = SpeedoFormstrap::FormBuilder
12
12
  end
13
13
 
14
14
  describe 'explicit values' do
@@ -24,10 +24,10 @@ describe 'select input' do
24
24
 
25
25
  it 'should have a option for each key and/or value' do
26
26
  @array_with_values.each do |v|
27
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{v}']", /^#{v}$/)
27
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{v}']", /^#{v}$/)
28
28
  end
29
29
  @array_with_keys_and_values.each do |v|
30
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{v.second}']", /^#{v.first}$/)
30
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{v.second}']", /^#{v.first}$/)
31
31
  end
32
32
  end
33
33
  end
@@ -41,9 +41,9 @@ describe 'select input' do
41
41
  end
42
42
 
43
43
  it 'should draw select options' do
44
- output_buffer.should have_tag('form div.control-group div.controls select')
45
- output_buffer.should have_tag('form div.control-group div.controls select#post_reviewer_id')
46
- output_buffer.should_not have_tag('form div.control-group div.controls select#post_mongoid_reviewer_id')
44
+ output_buffer.should have_tag('form div.clearfix div.input select')
45
+ output_buffer.should have_tag('form div.clearfix div.input select#post_reviewer_id')
46
+ output_buffer.should_not have_tag('form div.clearfix div.input select#post_mongoid_reviewer_id')
47
47
  end
48
48
  end
49
49
 
@@ -57,7 +57,7 @@ describe 'select input' do
57
57
 
58
58
  it 'should have an option for each value' do
59
59
  @range_with_values.each do |v|
60
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{v}']", /^#{v}$/)
60
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{v}']", /^#{v}$/)
61
61
  end
62
62
  end
63
63
  end
@@ -72,20 +72,10 @@ describe 'select input' do
72
72
 
73
73
  it 'should render select options using provided HTML string' do
74
74
  2.times do |v|
75
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{v}']", /^#{v}$/)
75
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{v}']", /^#{v}$/)
76
76
  end
77
77
  end
78
78
  end
79
-
80
- describe 'using a nil name' do
81
- before do
82
- concat(semantic_form_for(@new_post) do |builder|
83
- concat(builder.input(:title, :as => :select, :collection => [], :input_html => {:name => nil}))
84
- end)
85
- end
86
-
87
- it_should_have_select_with_name("post[title]")
88
- end
89
79
  end
90
80
 
91
81
  describe 'for boolean columns' do
@@ -94,20 +84,19 @@ describe 'select input' do
94
84
  # # Note: Works, but something like Formtastic.root.join(...) would probably be "safer".
95
85
  # ::I18n.load_path = [File.join(File.dirname(__FILE__), *%w[.. .. lib locale en.yml])]
96
86
  # ::I18n.backend.send(:init_translations)
97
- #
87
+ #
98
88
  # concat(semantic_form_for(@new_post) do |builder|
99
89
  # concat(builder.input(:published, :as => :select))
100
90
  # end)
101
91
  # end
102
- #
92
+ #
103
93
  # after do
104
- # ::I18n.load_path = []
105
94
  # ::I18n.backend.store_translations :en, {}
106
95
  # end
107
- #
96
+ #
108
97
  # it 'should render a select with at least options: true/false' do
109
- # output_buffer.should have_tag("form div.control-group div.controls select option[@value='true']", /^Yes$/)
110
- # output_buffer.should have_tag("form div.control-group div.controls select option[@value='false']", /^No$/)
98
+ # output_buffer.should have_tag("form div.clearfix div.input select option[@value='true']", /^Yes$/)
99
+ # output_buffer.should have_tag("form div.clearfix div.input select option[@value='false']", /^No$/)
111
100
  # end
112
101
  # end
113
102
 
@@ -126,8 +115,8 @@ describe 'select input' do
126
115
  end
127
116
 
128
117
  it 'should render a select with at least options: true/false' do
129
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='true']", /#{@boolean_select_labels[:yes]}/)
130
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='false']", /#{@boolean_select_labels[:no]}/)
118
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='true']", /#{@boolean_select_labels[:yes]}/)
119
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='false']", /#{@boolean_select_labels[:no]}/)
131
120
  end
132
121
  end
133
122
  end
@@ -140,8 +129,8 @@ describe 'select input' do
140
129
  end)
141
130
  end
142
131
 
143
- it_should_have_input_wrapper_with_class("select-wrapper")
144
- it_should_have_input_wrapper_with_class("control-group")
132
+ it_should_have_input_wrapper_with_class("select")
133
+ it_should_have_input_wrapper_with_class(:clearfix)
145
134
  it_should_have_input_class_in_the_right_place
146
135
  it_should_have_input_wrapper_with_id("post_author_input")
147
136
  it_should_have_label_with_text(/Author/)
@@ -151,42 +140,38 @@ describe 'select input' do
151
140
  it_should_use_the_collection_when_provided(:select, 'option')
152
141
 
153
142
  it 'should have a select inside the wrapper' do
154
- output_buffer.should have_tag('form div.control-group div.controls select')
155
- output_buffer.should have_tag('form div.control-group div.controls select#post_author_id')
156
- output_buffer.should have_tag('form div.control-group div.controls select#post_reviewer_id')
143
+ output_buffer.should have_tag('form div.clearfix div.input select')
144
+ output_buffer.should have_tag('form div.clearfix div.input select#post_author_id')
145
+ output_buffer.should have_tag('form div.clearfix div.input select#post_reviewer_id')
157
146
  end
158
147
 
159
148
  it 'should have a valid name' do
160
- output_buffer.should have_tag("form div.control-group div.controls select[@name='post[author_id]']")
161
- output_buffer.should_not have_tag("form div.control-group div.controls select[@name='post[author_id][]']")
162
- output_buffer.should_not have_tag("form div.control-group div.controls select[@name='post[reviewer_id][]']")
149
+ output_buffer.should have_tag("form div.clearfix div.input select[@name='post[author_id]']")
150
+ output_buffer.should_not have_tag("form div.clearfix div.input select[@name='post[author_id][]']")
151
+ output_buffer.should_not have_tag("form div.clearfix div.input select[@name='post[reviewer_id][]']")
163
152
  end
164
153
 
165
154
  it 'should not create a multi-select' do
166
- output_buffer.should_not have_tag('form div.control-group div.controls select[@multiple]')
167
- end
168
-
169
- it 'should not add a hidden input' do
170
- output_buffer.should_not have_tag("form div.control-group div.controls input[@type='hidden']")
155
+ output_buffer.should_not have_tag('form div.clearfix div.input select[@multiple]')
171
156
  end
172
157
 
173
158
  it 'should create a select without size' do
174
- output_buffer.should_not have_tag('form div.control-group div.controls select[@size]')
159
+ output_buffer.should_not have_tag('form div.clearfix div.input select[@size]')
175
160
  end
176
161
 
177
162
  it 'should have a blank option' do
178
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']")
163
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']")
179
164
  end
180
165
 
181
166
  it 'should have a select option for each Author' do
182
- output_buffer.should have_tag("form div.control-group div.controls select[@name='post[author_id]'] option", :count => ::Author.all.size + 1)
167
+ output_buffer.should have_tag("form div.clearfix div.input select[@name='post[author_id]'] option", :count => ::Author.all.size + 1)
183
168
  ::Author.all.each do |author|
184
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{author.id}']", /#{author.to_label}/)
169
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{author.id}']", /#{author.to_label}/)
185
170
  end
186
171
  end
187
172
 
188
173
  it 'should have one option with a "selected" attribute (bob)' do
189
- output_buffer.should have_tag("form div.control-group div.controls select[@name='post[author_id]'] option[@selected]", :count => 1)
174
+ output_buffer.should have_tag("form div.clearfix div.input select[@name='post[author_id]'] option[@selected]", :count => 1)
190
175
  end
191
176
 
192
177
  it 'should not singularize the association name' do
@@ -198,7 +183,7 @@ describe 'select input' do
198
183
  concat(builder.input(:author_status, :as => :select))
199
184
  end)
200
185
 
201
- output_buffer.should have_tag('form div.control-group div.controls select#post_author_status_id')
186
+ output_buffer.should have_tag('form div.clearfix div.input select#post_author_status_id')
202
187
  end
203
188
  end
204
189
 
@@ -268,7 +253,7 @@ describe 'select input' do
268
253
  end)
269
254
  end
270
255
 
271
- it_should_have_input_wrapper_with_class("select-wrapper")
256
+ it_should_have_input_wrapper_with_class("select")
272
257
  it_should_have_input_wrapper_with_id("post_author_input")
273
258
  it_should_have_label_with_text(/Author/)
274
259
  it_should_have_label_for('post_author_id')
@@ -277,29 +262,29 @@ describe 'select input' do
277
262
 
278
263
  0.upto(1) do |i|
279
264
  it 'should have all option groups and the right values' do
280
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{@continent_names[i]}']", @authors[i].to_label)
265
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{@continent_names[i]}']", @authors[i].to_label)
281
266
  end
282
267
 
283
268
  it 'should have custom group labels' do
284
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{@continents[i].id}']", @authors[i].to_label)
269
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{@continents[i].id}']", @authors[i].to_label)
285
270
  end
286
271
 
287
272
  it 'should have custom author labels' do
288
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{@continent_names[i]}']", @authors[i].login)
273
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{@continent_names[i]}']", @authors[i].login)
289
274
  end
290
275
 
291
276
  it 'should have custom author and group labels' do
292
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{@continents[i].id}']", @authors[i].login)
277
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{@continents[i].id}']", @authors[i].login)
293
278
  end
294
279
  end
295
280
 
296
281
  it 'should have no duplicate groups' do
297
- output_buffer.should have_tag('form div.control-group div.controls select optgroup', :count => 8)
282
+ output_buffer.should have_tag('form div.clearfix div.input select optgroup', :count => 8)
298
283
  end
299
284
 
300
285
  it 'should sort the groups on the label method' do
301
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='Africa']")
302
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='99']")
286
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='Africa']")
287
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='99']")
303
288
  end
304
289
 
305
290
  it 'should call find with :include for more optimized queries' do
@@ -318,7 +303,7 @@ describe 'select input' do
318
303
  end)
319
304
  end
320
305
 
321
- it_should_have_input_wrapper_with_class("select-wrapper")
306
+ it_should_have_input_wrapper_with_class("select")
322
307
  it_should_have_input_wrapper_with_id("author_posts_input")
323
308
  it_should_have_label_with_text(/Post/)
324
309
  it_should_have_label_for('author_post_ids')
@@ -327,31 +312,27 @@ describe 'select input' do
327
312
  it_should_use_the_collection_when_provided(:select, 'option')
328
313
 
329
314
  it 'should have a select inside the wrapper' do
330
- output_buffer.should have_tag('form div.control-group div.controls select')
331
- output_buffer.should have_tag('form div.control-group div.controls select#author_post_ids')
315
+ output_buffer.should have_tag('form div.clearfix div.input select')
316
+ output_buffer.should have_tag('form div.clearfix div.input select#author_post_ids')
332
317
  end
333
318
 
334
319
  it 'should have a multi-select select' do
335
- output_buffer.should have_tag('form div.control-group div.controls select[@multiple="multiple"]')
320
+ output_buffer.should have_tag('form div.clearfix div.input select[@multiple="multiple"]')
336
321
  end
337
322
 
338
323
  it 'should append [] to the name attribute for multiple select' do
339
- output_buffer.should have_tag('form div.control-group div.controls select[@multiple="multiple"][@name="author[post_ids][]"]')
340
- end
341
-
342
- it 'should have a hidden field' do
343
- output_buffer.should have_tag('form div.control-group div.controls input[@type="hidden"][@name="author[post_ids][]"]')
324
+ output_buffer.should have_tag('form div.clearfix div.input select[@multiple="multiple"][@name="author[post_ids][]"]')
344
325
  end
345
326
 
346
327
  it 'should have a select option for each Post' do
347
- output_buffer.should have_tag('form div.control-group div.controls select option', :count => ::Post.all.size)
328
+ output_buffer.should have_tag('form div.clearfix div.input select option', :count => ::Post.all.size)
348
329
  ::Post.all.each do |post|
349
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{post.id}']", /#{post.to_label}/)
330
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{post.id}']", /#{post.to_label}/)
350
331
  end
351
332
  end
352
333
 
353
334
  it 'should not have a blank option by default' do
354
- output_buffer.should_not have_tag("form div.control-group div.controls select option[@value='']")
335
+ output_buffer.should_not have_tag("form div.clearfix div.input select option[@value='']")
355
336
  end
356
337
 
357
338
  it 'should respect the :include_blank option for single selects' do
@@ -359,7 +340,7 @@ describe 'select input' do
359
340
  concat(builder.input(:posts, :as => :select, :multiple => false, :include_blank => true))
360
341
  end)
361
342
 
362
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']")
343
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']")
363
344
  end
364
345
 
365
346
  it 'should respect the :include_blank option for multiple selects' do
@@ -367,11 +348,11 @@ describe 'select input' do
367
348
  concat(builder.input(:posts, :as => :select, :multiple => true, :include_blank => true))
368
349
  end)
369
350
 
370
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']")
351
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']")
371
352
  end
372
353
 
373
354
  it 'should have one option with a "selected" attribute' do
374
- output_buffer.should have_tag('form div.control-group div.controls select option[@selected]', :count => 1)
355
+ output_buffer.should have_tag('form div.clearfix div.input select option[@selected]', :count => 1)
375
356
  end
376
357
  end
377
358
 
@@ -382,7 +363,7 @@ describe 'select input' do
382
363
  end)
383
364
  end
384
365
 
385
- it_should_have_input_wrapper_with_class("select-wrapper")
366
+ it_should_have_input_wrapper_with_class("select")
386
367
  it_should_have_input_wrapper_with_id("post_authors_input")
387
368
  it_should_have_label_with_text(/Author/)
388
369
  it_should_have_label_for('post_author_ids')
@@ -391,23 +372,23 @@ describe 'select input' do
391
372
  it_should_use_the_collection_when_provided(:select, 'option')
392
373
 
393
374
  it 'should have a select inside the wrapper' do
394
- output_buffer.should have_tag('form div.control-group div.controls select')
395
- output_buffer.should have_tag('form div.control-group div.controls select#post_author_ids')
375
+ output_buffer.should have_tag('form div.clearfix div.input select')
376
+ output_buffer.should have_tag('form div.clearfix div.input select#post_author_ids')
396
377
  end
397
378
 
398
379
  it 'should have a multi-select select' do
399
- output_buffer.should have_tag('form div.control-group div.controls select[@multiple="multiple"]')
380
+ output_buffer.should have_tag('form div.clearfix div.input select[@multiple="multiple"]')
400
381
  end
401
382
 
402
383
  it 'should have a select option for each Author' do
403
- output_buffer.should have_tag('form div.control-group div.controls select option', :count => ::Author.all.size)
384
+ output_buffer.should have_tag('form div.clearfix div.input select option', :count => ::Author.all.size)
404
385
  ::Author.all.each do |author|
405
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{author.id}']", /#{author.to_label}/)
386
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{author.id}']", /#{author.to_label}/)
406
387
  end
407
388
  end
408
389
 
409
390
  it 'should not have a blank option by default' do
410
- output_buffer.should_not have_tag("form div.control-group div.controls select option[@value='']")
391
+ output_buffer.should_not have_tag("form div.clearfix div.input select option[@value='']")
411
392
  end
412
393
 
413
394
  it 'should respect the :include_blank option for single selects' do
@@ -415,7 +396,7 @@ describe 'select input' do
415
396
  concat(builder.input(:authors, :as => :select, :multiple => false, :include_blank => true))
416
397
  end)
417
398
 
418
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']")
399
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']")
419
400
  end
420
401
 
421
402
  it 'should respect the :include_blank option for multiple selects' do
@@ -423,11 +404,11 @@ describe 'select input' do
423
404
  concat(builder.input(:authors, :as => :select, :multiple => true, :include_blank => true))
424
405
  end)
425
406
 
426
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']")
407
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']")
427
408
  end
428
409
 
429
410
  it 'should have one option with a "selected" attribute' do
430
- output_buffer.should have_tag('form div.control-group div.controls select option[@selected]', :count => 1)
411
+ output_buffer.should have_tag('form div.clearfix div.input select option[@selected]', :count => 1)
431
412
  end
432
413
  end
433
414
 
@@ -440,11 +421,11 @@ describe 'select input' do
440
421
  end
441
422
 
442
423
  it 'should have a select with prompt' do
443
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']", /choose author/, :count => 1)
424
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='']", /choose author/, :count => 1)
444
425
  end
445
426
 
446
- it 'should not have a second blank select option' do
447
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='']", :count => 1)
427
+ it 'should not have a blank select option' do
428
+ output_buffer.should_not have_tag("form div.clearfix div.input select option[@value='']", "")
448
429
  end
449
430
  end
450
431
 
@@ -456,18 +437,18 @@ describe 'select input' do
456
437
  end
457
438
 
458
439
  it 'should generate label' do
459
- output_buffer.should have_tag('form div.control-group label.control-label', /Author/)
460
- output_buffer.should have_tag("form div.control-group label.control-label[@for='project_author']")
440
+ output_buffer.should have_tag('form div.clearfix label', /Author/)
441
+ output_buffer.should have_tag("form div.clearfix label[@for='project_author']")
461
442
  end
462
443
 
463
444
  it 'should generate select inputs' do
464
- output_buffer.should have_tag('form div.control-group div.controls select#project_author')
465
- output_buffer.should have_tag('form div.control-group div.controls select option', :count => ::Author.all.size + 1)
445
+ output_buffer.should have_tag('form div.clearfix div.input select#project_author')
446
+ output_buffer.should have_tag('form div.clearfix div.input select option', :count => ::Author.all.size + 1)
466
447
  end
467
448
 
468
449
  it 'should generate an option to each item' do
469
450
  ::Author.all.each do |author|
470
- output_buffer.should have_tag("form div.control-group div.controls select option[@value='#{author.id}']", /#{author.to_label}/)
451
+ output_buffer.should have_tag("form div.clearfix div.input select option[@value='#{author.id}']", /#{author.to_label}/)
471
452
  end
472
453
  end
473
454
  end
@@ -478,27 +459,27 @@ describe 'select input' do
478
459
  concat(semantic_form_for(:project, :url => 'http://test.host') do |builder|
479
460
  concat(builder.input(:author_name, :as => :select, :collection => ::Author.all))
480
461
  end)
481
- output_buffer.should have_tag("form div.control-group div.controls select[@name='project[author_name]']")
462
+ output_buffer.should have_tag("form div.clearfix div.input select[@name='project[author_name]']")
482
463
  end
483
-
464
+
484
465
  describe 'and :multiple is set to true through :input_html' do
485
466
  it "should make the select a multi-select" do
486
467
  concat(semantic_form_for(:project, :url => 'http://test.host') do |builder|
487
468
  concat(builder.input(:author_name, :as => :select, :input_html => {:multiple => true} ))
488
469
  end)
489
- output_buffer.should have_tag("form div.control-group div.controls select[@multiple]")
470
+ output_buffer.should have_tag("form div.clearfix div.input select[@multiple]")
490
471
  end
491
472
  end
492
-
473
+
493
474
  describe 'and :multiple is set to true' do
494
475
  it "should make the select a multi-select" do
495
476
  concat(semantic_form_for(:project, :url => 'http://test.host') do |builder|
496
477
  concat(builder.input(:author_name, :as => :select, :multiple => true, :collection => ["Fred", "Bob"]))
497
478
  end)
498
- output_buffer.should have_tag("form div.control-group div.controls select[@multiple]")
479
+ output_buffer.should have_tag("form div.clearfix div.input select[@multiple]")
499
480
  end
500
481
  end
501
-
482
+
502
483
  end
503
484
 
504
485
  describe 'when a grouped collection collection is given' do
@@ -513,12 +494,12 @@ describe 'select input' do
513
494
 
514
495
  it 'should generate an option to each item' do
515
496
  @grouped_opts.each do |opt_pair|
516
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{opt_pair[0]}']")
497
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{opt_pair[0]}']")
517
498
  opt_pair[1].each do |v|
518
- output_buffer.should have_tag("form div.control-group div.controls select optgroup[@label='#{opt_pair[0]}'] option[@value='#{v}']")
499
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup[@label='#{opt_pair[0]}'] option[@value='#{v}']")
519
500
  end
520
501
  end
521
- output_buffer.should have_tag("form div.control-group div.controls select optgroup option[@selected]","hands")
502
+ output_buffer.should have_tag("form div.clearfix div.input select optgroup option[@selected]","hands")
522
503
  end
523
504
  end
524
505
 
@@ -540,7 +521,7 @@ describe 'select input' do
540
521
  end
541
522
 
542
523
  it "should render a select field" do
543
- output_buffer.should have_tag("form div.control-group div.controls select", :count => 2)
524
+ output_buffer.should have_tag("form div.clearfix div.input select", :count => 2)
544
525
  end
545
526
  end
546
527
 
@@ -556,7 +537,7 @@ describe 'select input' do
556
537
  end
557
538
 
558
539
  it "should render a text field" do
559
- output_buffer.should have_tag("form div.control-group div.controls input[@type='text']", :count => 2)
540
+ output_buffer.should have_tag("form div.clearfix div.input input[@type='text']", :count => 2)
560
541
  end
561
542
  end
562
543
  end
@@ -572,33 +553,6 @@ describe 'select input' do
572
553
  it_should_have_label_for("context2_post_author_ids")
573
554
  end
574
555
 
575
- describe "when index is provided" do
576
-
577
- before do
578
- @output_buffer = ''
579
- mock_everything
580
-
581
- concat(semantic_form_for(@new_post) do |builder|
582
- concat(builder.fields_for(:author, :index => 3) do |author|
583
- concat(author.input(:name, :as => :select))
584
- end)
585
- end)
586
- end
587
-
588
- it 'should index the id of the wrapper' do
589
- output_buffer.should have_tag("div#post_author_attributes_3_name_input")
590
- end
591
-
592
- it 'should index the id of the select tag' do
593
- output_buffer.should have_tag("select#post_author_attributes_3_name")
594
- end
595
-
596
- it 'should index the name of the select' do
597
- output_buffer.should have_tag("select[@name='post[author_attributes][3][name]']")
598
- end
599
-
600
- end
601
-
602
556
  context "when required" do
603
557
  it "should add the required attribute to the select's html options" do
604
558
  with_config :use_required_attribute, true do