formtastic 2.3.0.rc2 → 2.3.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +27 -1
- data/Appraisals +5 -0
- data/CHANGELOG +1 -0
- data/README.textile +19 -26
- data/formtastic.gemspec +4 -3
- data/gemfiles/rails_3.0.gemfile +1 -1
- data/gemfiles/rails_3.1.gemfile +1 -1
- data/gemfiles/rails_3.2.gemfile +1 -1
- data/gemfiles/rails_4.0.4.gemfile +7 -0
- data/gemfiles/rails_4.gemfile +1 -1
- data/lib/formtastic/form_builder.rb +9 -1
- data/lib/formtastic/helpers/form_helper.rb +11 -6
- data/lib/formtastic/helpers/inputs_helper.rb +6 -1
- data/lib/formtastic/inputs/base/collections.rb +1 -1
- data/lib/formtastic/inputs/base/validations.rb +1 -1
- data/lib/formtastic/inputs/boolean_input.rb +4 -14
- data/lib/formtastic/inputs/check_boxes_input.rb +7 -1
- data/lib/formtastic/inputs/radio_input.rb +2 -0
- data/lib/formtastic/util.rb +13 -1
- data/lib/formtastic/version.rb +1 -1
- data/lib/generators/templates/_form.html.slim +2 -2
- data/lib/generators/templates/formtastic.rb +15 -1
- data/spec/actions/generic_action_spec.rb +3 -3
- data/spec/builder/custom_builder_spec.rb +7 -7
- data/spec/builder/semantic_fields_for_spec.rb +8 -8
- data/spec/generators/formtastic/form/form_generator_spec.rb +6 -6
- data/spec/helpers/action_helper_spec.rb +11 -11
- data/spec/helpers/form_helper_spec.rb +22 -11
- data/spec/helpers/input_helper_spec.rb +44 -44
- data/spec/helpers/inputs_helper_spec.rb +64 -31
- data/spec/helpers/semantic_errors_helper_spec.rb +12 -12
- data/spec/i18n_spec.rb +5 -5
- data/spec/inputs/boolean_input_spec.rb +6 -5
- data/spec/inputs/check_boxes_input_spec.rb +27 -9
- data/spec/inputs/country_input_spec.rb +5 -5
- data/spec/inputs/custom_input_spec.rb +1 -1
- data/spec/inputs/date_picker_input_spec.rb +4 -4
- data/spec/inputs/datetime_picker_input_spec.rb +4 -4
- data/spec/inputs/hidden_input_spec.rb +3 -3
- data/spec/inputs/include_blank_spec.rb +2 -2
- data/spec/inputs/number_input_spec.rb +36 -36
- data/spec/inputs/radio_input_spec.rb +23 -5
- data/spec/inputs/range_input_spec.rb +19 -19
- data/spec/inputs/select_input_spec.rb +40 -20
- data/spec/inputs/string_input_spec.rb +2 -2
- data/spec/inputs/time_picker_input_spec.rb +4 -4
- data/spec/localizer_spec.rb +1 -1
- data/spec/spec_helper.rb +203 -188
- data/spec/support/custom_macros.rb +8 -8
- metadata +15 -13
@@ -45,7 +45,7 @@ describe 'AnyCustomInput' do
|
|
45
45
|
|
46
46
|
describe 'with an implementation' do
|
47
47
|
it "should raise a NotImplementedError exception" do
|
48
|
-
expect { ::ImplementedInput.new(*input_args).to_html }.to_not raise_error
|
48
|
+
expect { ::ImplementedInput.new(*input_args).to_html }.to_not raise_error
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -122,7 +122,7 @@ describe 'date_picker input' do
|
|
122
122
|
|
123
123
|
before do
|
124
124
|
@date = Date.new(2000, 11, 11)
|
125
|
-
@new_post.stub
|
125
|
+
@new_post.stub(:publish_at).and_return(@date)
|
126
126
|
end
|
127
127
|
|
128
128
|
it "renders the date as YYYY-MM-DD" do
|
@@ -149,7 +149,7 @@ describe 'date_picker input' do
|
|
149
149
|
|
150
150
|
before do
|
151
151
|
@time = Time.utc(2000,11,11,11,11,11)
|
152
|
-
@new_post.stub
|
152
|
+
@new_post.stub(:publish_at).and_return(@time)
|
153
153
|
end
|
154
154
|
|
155
155
|
it "renders the time as a YYYY-MM-DD" do
|
@@ -175,7 +175,7 @@ describe 'date_picker input' do
|
|
175
175
|
context "when method returns an empty String" do
|
176
176
|
|
177
177
|
before do
|
178
|
-
@new_post.stub
|
178
|
+
@new_post.stub(:publish_at).and_return("")
|
179
179
|
end
|
180
180
|
|
181
181
|
it "will be empty" do
|
@@ -201,7 +201,7 @@ describe 'date_picker input' do
|
|
201
201
|
context "when method returns a String" do
|
202
202
|
|
203
203
|
before do
|
204
|
-
@new_post.stub
|
204
|
+
@new_post.stub(:publish_at).and_return("yeah")
|
205
205
|
end
|
206
206
|
|
207
207
|
it "will be the string" do
|
@@ -157,7 +157,7 @@ describe 'datetime_picker input' do
|
|
157
157
|
|
158
158
|
before do
|
159
159
|
@date = Date.new(2000, 11, 11)
|
160
|
-
@new_post.stub
|
160
|
+
@new_post.stub(:publish_at).and_return(@date)
|
161
161
|
end
|
162
162
|
|
163
163
|
it "renders the date as YYYY-MM-DDT00:00:00" do
|
@@ -184,7 +184,7 @@ describe 'datetime_picker input' do
|
|
184
184
|
|
185
185
|
before do
|
186
186
|
@time = Time.utc(2000,11,11,11,11,11)
|
187
|
-
@new_post.stub
|
187
|
+
@new_post.stub(:publish_at).and_return(@time)
|
188
188
|
end
|
189
189
|
|
190
190
|
it "renders the time as a YYYY-MM-DD HH:MM" do
|
@@ -210,7 +210,7 @@ describe 'datetime_picker input' do
|
|
210
210
|
context "when method returns an empty String" do
|
211
211
|
|
212
212
|
before do
|
213
|
-
@new_post.stub
|
213
|
+
@new_post.stub(:publish_at).and_return("")
|
214
214
|
end
|
215
215
|
|
216
216
|
it "will be empty" do
|
@@ -236,7 +236,7 @@ describe 'datetime_picker input' do
|
|
236
236
|
context "when method returns a String" do
|
237
237
|
|
238
238
|
before do
|
239
|
-
@new_post.stub
|
239
|
+
@new_post.stub(:publish_at).and_return("yeah")
|
240
240
|
end
|
241
241
|
|
242
242
|
it "will be the string" do
|
@@ -53,9 +53,9 @@ describe 'hidden input' do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should not render inline errors" do
|
56
|
-
@errors =
|
57
|
-
@errors.stub
|
58
|
-
@new_post.stub
|
56
|
+
@errors = double('errors')
|
57
|
+
@errors.stub(:[]).with(errors_matcher(:secret)).and_return(["foo", "bah"])
|
58
|
+
@new_post.stub(:errors).and_return(@errors)
|
59
59
|
|
60
60
|
concat(semantic_form_for(@new_post) do |builder|
|
61
61
|
concat(builder.input(:secret, :as => :hidden))
|
@@ -9,8 +9,8 @@ describe "*select: options[:include_blank]" do
|
|
9
9
|
@output_buffer = ''
|
10
10
|
mock_everything
|
11
11
|
|
12
|
-
@new_post.stub
|
13
|
-
@new_post.stub
|
12
|
+
@new_post.stub(:author_id).and_return(nil)
|
13
|
+
@new_post.stub(:publish_at).and_return(nil)
|
14
14
|
end
|
15
15
|
|
16
16
|
SELECT_INPUT_TYPES = {
|
@@ -9,7 +9,7 @@ describe 'number input' do
|
|
9
9
|
@output_buffer = ''
|
10
10
|
mock_everything
|
11
11
|
|
12
|
-
@new_post.class.stub
|
12
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
13
13
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than=>2})
|
14
14
|
])
|
15
15
|
end
|
@@ -109,7 +109,7 @@ describe 'number input' do
|
|
109
109
|
|
110
110
|
describe "when validations require a minimum value (:greater_than)" do
|
111
111
|
before do
|
112
|
-
@new_post.class.stub
|
112
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
113
113
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than=>2})
|
114
114
|
])
|
115
115
|
end
|
@@ -144,7 +144,7 @@ describe 'number input' do
|
|
144
144
|
|
145
145
|
describe "and the column is an integer" do
|
146
146
|
before do
|
147
|
-
@new_post.stub
|
147
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :integer))
|
148
148
|
end
|
149
149
|
|
150
150
|
it "should add a min attribute to the input one greater than the validation" do
|
@@ -157,7 +157,7 @@ describe 'number input' do
|
|
157
157
|
|
158
158
|
describe "and the column is a float" do
|
159
159
|
before do
|
160
|
-
@new_post.stub
|
160
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :float))
|
161
161
|
end
|
162
162
|
|
163
163
|
it "should raise an error" do
|
@@ -171,7 +171,7 @@ describe 'number input' do
|
|
171
171
|
|
172
172
|
describe "and the column is a big decimal" do
|
173
173
|
before do
|
174
|
-
@new_post.stub
|
174
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
175
175
|
end
|
176
176
|
|
177
177
|
it "should raise an error" do
|
@@ -187,7 +187,7 @@ describe 'number input' do
|
|
187
187
|
|
188
188
|
describe "when validations require a minimum value (:greater_than) that takes a proc" do
|
189
189
|
before do
|
190
|
-
@new_post.class.stub
|
190
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
191
191
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than=> Proc.new {|post| 2}})
|
192
192
|
])
|
193
193
|
end
|
@@ -222,7 +222,7 @@ describe 'number input' do
|
|
222
222
|
|
223
223
|
describe "and the column is an integer" do
|
224
224
|
before do
|
225
|
-
@new_post.stub
|
225
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :integer))
|
226
226
|
end
|
227
227
|
|
228
228
|
it "should add a min attribute to the input one greater than the validation" do
|
@@ -235,7 +235,7 @@ describe 'number input' do
|
|
235
235
|
|
236
236
|
describe "and the column is a float" do
|
237
237
|
before do
|
238
|
-
@new_post.stub
|
238
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :float))
|
239
239
|
end
|
240
240
|
|
241
241
|
it "should raise an error" do
|
@@ -249,7 +249,7 @@ describe 'number input' do
|
|
249
249
|
|
250
250
|
describe "and the column is a big decimal" do
|
251
251
|
before do
|
252
|
-
@new_post.stub
|
252
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
253
253
|
end
|
254
254
|
|
255
255
|
it "should raise an error" do
|
@@ -265,7 +265,7 @@ describe 'number input' do
|
|
265
265
|
|
266
266
|
describe "when validations require a minimum value (:greater_than_or_equal_to)" do
|
267
267
|
before do
|
268
|
-
@new_post.class.stub
|
268
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
269
269
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than_or_equal_to=>2})
|
270
270
|
])
|
271
271
|
end
|
@@ -302,7 +302,7 @@ describe 'number input' do
|
|
302
302
|
[:integer, :decimal, :float].each do |column_type|
|
303
303
|
describe "and the column is a #{column_type}" do
|
304
304
|
before do
|
305
|
-
@new_post.stub
|
305
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => column_type))
|
306
306
|
end
|
307
307
|
|
308
308
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -316,7 +316,7 @@ describe 'number input' do
|
|
316
316
|
|
317
317
|
describe "and there is no column" do
|
318
318
|
before do
|
319
|
-
@new_post.stub
|
319
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(nil)
|
320
320
|
end
|
321
321
|
|
322
322
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -330,7 +330,7 @@ describe 'number input' do
|
|
330
330
|
|
331
331
|
describe "when validations require a minimum value (:greater_than_or_equal_to) that takes a Proc" do
|
332
332
|
before do
|
333
|
-
@new_post.class.stub
|
333
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
334
334
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than_or_equal_to=> Proc.new { |post| 2}})
|
335
335
|
])
|
336
336
|
end
|
@@ -367,7 +367,7 @@ describe 'number input' do
|
|
367
367
|
[:integer, :decimal, :float].each do |column_type|
|
368
368
|
describe "and the column is a #{column_type}" do
|
369
369
|
before do
|
370
|
-
@new_post.stub
|
370
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => column_type))
|
371
371
|
end
|
372
372
|
|
373
373
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -381,7 +381,7 @@ describe 'number input' do
|
|
381
381
|
|
382
382
|
describe "and there is no column" do
|
383
383
|
before do
|
384
|
-
@new_post.stub
|
384
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(nil)
|
385
385
|
end
|
386
386
|
|
387
387
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -396,7 +396,7 @@ describe 'number input' do
|
|
396
396
|
describe "when validations require a maximum value (:less_than)" do
|
397
397
|
|
398
398
|
before do
|
399
|
-
@new_post.class.stub
|
399
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
400
400
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :less_than=>20})
|
401
401
|
])
|
402
402
|
end
|
@@ -431,7 +431,7 @@ describe 'number input' do
|
|
431
431
|
|
432
432
|
describe "and the column is an integer" do
|
433
433
|
before do
|
434
|
-
@new_post.stub
|
434
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :integer))
|
435
435
|
end
|
436
436
|
|
437
437
|
it "should add a max attribute to the input one greater than the validation" do
|
@@ -444,7 +444,7 @@ describe 'number input' do
|
|
444
444
|
|
445
445
|
describe "and the column is a float" do
|
446
446
|
before do
|
447
|
-
@new_post.stub
|
447
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :float))
|
448
448
|
end
|
449
449
|
|
450
450
|
it "should raise an error" do
|
@@ -458,7 +458,7 @@ describe 'number input' do
|
|
458
458
|
|
459
459
|
describe "and the column is a big decimal" do
|
460
460
|
before do
|
461
|
-
@new_post.stub
|
461
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
462
462
|
end
|
463
463
|
|
464
464
|
it "should raise an error" do
|
@@ -471,7 +471,7 @@ describe 'number input' do
|
|
471
471
|
end
|
472
472
|
describe "and the validator takes a proc" do
|
473
473
|
before do
|
474
|
-
@new_post.stub
|
474
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
475
475
|
end
|
476
476
|
end
|
477
477
|
end
|
@@ -479,7 +479,7 @@ describe 'number input' do
|
|
479
479
|
describe "when validations require a maximum value (:less_than) that takes a Proc" do
|
480
480
|
|
481
481
|
before do
|
482
|
-
@new_post.class.stub
|
482
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
483
483
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :less_than=> Proc.new {|post| 20 }})
|
484
484
|
])
|
485
485
|
end
|
@@ -514,7 +514,7 @@ describe 'number input' do
|
|
514
514
|
|
515
515
|
describe "and the column is an integer" do
|
516
516
|
before do
|
517
|
-
@new_post.stub
|
517
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :integer))
|
518
518
|
end
|
519
519
|
|
520
520
|
it "should add a max attribute to the input one greater than the validation" do
|
@@ -527,7 +527,7 @@ describe 'number input' do
|
|
527
527
|
|
528
528
|
describe "and the column is a float" do
|
529
529
|
before do
|
530
|
-
@new_post.stub
|
530
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :float))
|
531
531
|
end
|
532
532
|
|
533
533
|
it "should raise an error" do
|
@@ -541,7 +541,7 @@ describe 'number input' do
|
|
541
541
|
|
542
542
|
describe "and the column is a big decimal" do
|
543
543
|
before do
|
544
|
-
@new_post.stub
|
544
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
545
545
|
end
|
546
546
|
|
547
547
|
it "should raise an error" do
|
@@ -554,7 +554,7 @@ describe 'number input' do
|
|
554
554
|
end
|
555
555
|
describe "and the validator takes a proc" do
|
556
556
|
before do
|
557
|
-
@new_post.stub
|
557
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => :decimal))
|
558
558
|
end
|
559
559
|
end
|
560
560
|
end
|
@@ -562,7 +562,7 @@ describe 'number input' do
|
|
562
562
|
|
563
563
|
describe "when validations require a maximum value (:less_than_or_equal_to)" do
|
564
564
|
before do
|
565
|
-
@new_post.class.stub
|
565
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
566
566
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :less_than_or_equal_to=>20})
|
567
567
|
])
|
568
568
|
end
|
@@ -598,7 +598,7 @@ describe 'number input' do
|
|
598
598
|
[:integer, :decimal, :float].each do |column_type|
|
599
599
|
describe "and the column is a #{column_type}" do
|
600
600
|
before do
|
601
|
-
@new_post.stub
|
601
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => column_type))
|
602
602
|
end
|
603
603
|
|
604
604
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -612,7 +612,7 @@ describe 'number input' do
|
|
612
612
|
|
613
613
|
describe "and there is no column" do
|
614
614
|
before do
|
615
|
-
@new_post.stub
|
615
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(nil)
|
616
616
|
end
|
617
617
|
|
618
618
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -626,7 +626,7 @@ describe 'number input' do
|
|
626
626
|
|
627
627
|
describe "when validations require a maximum value (:less_than_or_equal_to) that takes a proc" do
|
628
628
|
before do
|
629
|
-
@new_post.class.stub
|
629
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
630
630
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :less_than_or_equal_to=> Proc.new { |post| 20 }})
|
631
631
|
])
|
632
632
|
end
|
@@ -662,7 +662,7 @@ describe 'number input' do
|
|
662
662
|
[:integer, :decimal, :float].each do |column_type|
|
663
663
|
describe "and the column is a #{column_type}" do
|
664
664
|
before do
|
665
|
-
@new_post.stub
|
665
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(double('column', :type => column_type))
|
666
666
|
end
|
667
667
|
|
668
668
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -676,7 +676,7 @@ describe 'number input' do
|
|
676
676
|
|
677
677
|
describe "and there is no column" do
|
678
678
|
before do
|
679
|
-
@new_post.stub
|
679
|
+
@new_post.stub(:column_for_attribute).with(:title).and_return(nil)
|
680
680
|
end
|
681
681
|
|
682
682
|
it "should add a max attribute to the input equal to the validation" do
|
@@ -690,7 +690,7 @@ describe 'number input' do
|
|
690
690
|
|
691
691
|
describe "when validations require conflicting minimum values (:greater_than, :greater_than_or_equal_to)" do
|
692
692
|
before do
|
693
|
-
@new_post.class.stub
|
693
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
694
694
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :greater_than => 20, :greater_than_or_equal_to=>2})
|
695
695
|
])
|
696
696
|
end
|
@@ -705,7 +705,7 @@ describe 'number input' do
|
|
705
705
|
|
706
706
|
describe "when validations require conflicting maximum values (:less_than, :less_than_or_equal_to)" do
|
707
707
|
before do
|
708
|
-
@new_post.class.stub
|
708
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
709
709
|
active_model_numericality_validator([:title], {:only_integer=>false, :allow_nil=>false, :less_than => 20, :less_than_or_equal_to=>2})
|
710
710
|
])
|
711
711
|
end
|
@@ -721,7 +721,7 @@ describe 'number input' do
|
|
721
721
|
describe "when validations require only an integer (:only_integer)" do
|
722
722
|
|
723
723
|
before do
|
724
|
-
@new_post.class.stub
|
724
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
725
725
|
active_model_numericality_validator([:title], {:allow_nil=>false, :only_integer=>true})
|
726
726
|
])
|
727
727
|
end
|
@@ -752,7 +752,7 @@ describe 'number input' do
|
|
752
752
|
describe "when validations require a :step (non standard)" do
|
753
753
|
|
754
754
|
before do
|
755
|
-
@new_post.class.stub
|
755
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
756
756
|
active_model_numericality_validator([:title], {:allow_nil=>false, :only_integer=>true, :step=>2})
|
757
757
|
])
|
758
758
|
end
|
@@ -783,7 +783,7 @@ describe 'number input' do
|
|
783
783
|
describe "when validations do not specify :step (non standard) or :only_integer" do
|
784
784
|
|
785
785
|
before do
|
786
|
-
@new_post.class.stub
|
786
|
+
@new_post.class.stub(:validators_on).with(:title).and_return([
|
787
787
|
active_model_numericality_validator([:title], {:allow_nil=>false})
|
788
788
|
])
|
789
789
|
end
|
@@ -158,7 +158,7 @@ describe 'radio input' do
|
|
158
158
|
::I18n.backend.store_translations :en, :formtastic => { :labels => { :post => { :authors => "Translated!" }}}
|
159
159
|
|
160
160
|
with_config :i18n_lookups_by_default, true do
|
161
|
-
@new_post.stub
|
161
|
+
@new_post.stub(:author_ids).and_return(nil)
|
162
162
|
concat(semantic_form_for(@new_post) do |builder|
|
163
163
|
concat(builder.input(:authors, :as => :radio))
|
164
164
|
end)
|
@@ -177,7 +177,7 @@ describe 'radio input' do
|
|
177
177
|
|
178
178
|
describe "when :label option is set" do
|
179
179
|
before do
|
180
|
-
@new_post.stub
|
180
|
+
@new_post.stub(:author_ids).and_return(nil)
|
181
181
|
concat(semantic_form_for(@new_post) do |builder|
|
182
182
|
concat(builder.input(:authors, :as => :radio, :label => 'The authors'))
|
183
183
|
end)
|
@@ -191,7 +191,7 @@ describe 'radio input' do
|
|
191
191
|
describe "when :label option is false" do
|
192
192
|
before do
|
193
193
|
@output_buffer = ''
|
194
|
-
@new_post.stub
|
194
|
+
@new_post.stub(:author_ids).and_return(nil)
|
195
195
|
concat(semantic_form_for(@new_post) do |builder|
|
196
196
|
concat(builder.input(:authors, :as => :radio, :label => false))
|
197
197
|
end)
|
@@ -209,7 +209,7 @@ describe 'radio input' do
|
|
209
209
|
|
210
210
|
describe "when :required option is true" do
|
211
211
|
before do
|
212
|
-
@new_post.stub
|
212
|
+
@new_post.stub(:author_ids).and_return(nil)
|
213
213
|
concat(semantic_form_for(@new_post) do |builder|
|
214
214
|
concat(builder.input(:authors, :as => :radio, :required => true))
|
215
215
|
end)
|
@@ -223,7 +223,7 @@ describe 'radio input' do
|
|
223
223
|
describe "when :namespace is given on form" do
|
224
224
|
before do
|
225
225
|
@output_buffer = ''
|
226
|
-
@new_post.stub
|
226
|
+
@new_post.stub(:author_ids).and_return(nil)
|
227
227
|
concat(semantic_form_for(@new_post, :namespace => "custom_prefix") do |builder|
|
228
228
|
concat(builder.input(:authors, :as => :radio, :label => ''))
|
229
229
|
end)
|
@@ -279,4 +279,22 @@ describe 'radio input' do
|
|
279
279
|
end
|
280
280
|
end
|
281
281
|
|
282
|
+
describe "when collection contains symbols" do
|
283
|
+
before do
|
284
|
+
@output_buffer = ''
|
285
|
+
mock_everything
|
286
|
+
|
287
|
+
concat(semantic_form_for(:project) do |builder|
|
288
|
+
concat(builder.input(:author_id, :as => :radio, :collection => Set.new([["A", :a], ["B", :b], ["C", :c]])))
|
289
|
+
end)
|
290
|
+
end
|
291
|
+
|
292
|
+
it 'should output the correct labels' do
|
293
|
+
output_buffer.should have_tag("li.choice label", /A/)
|
294
|
+
output_buffer.should have_tag("li.choice label", /B/)
|
295
|
+
output_buffer.should have_tag("li.choice label", /C/)
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
|
282
300
|
end
|