formtastic-rails3 0.9.10.1 → 1.0.0.beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +32 -16
- data/Rakefile +11 -11
- data/lib/formtastic.rb +95 -30
- data/lib/formtastic/railtie.rb +1 -1
- data/lib/formtastic/util.rb +3 -2
- data/lib/generators/formtastic/form/form_generator.rb +4 -4
- data/spec/buttons_spec.rb +1 -1
- data/spec/commit_button_spec.rb +1 -1
- data/spec/custom_builder_spec.rb +1 -1
- data/spec/defaults_spec.rb +1 -1
- data/spec/error_proc_spec.rb +1 -1
- data/spec/errors_spec.rb +1 -1
- data/spec/form_helper_spec.rb +1 -1
- data/spec/helpers/layout_helper_spec.rb +21 -0
- data/spec/i18n_spec.rb +1 -1
- data/spec/include_blank_spec.rb +1 -1
- data/spec/input_spec.rb +99 -93
- data/spec/inputs/boolean_input_spec.rb +1 -1
- data/spec/inputs/check_boxes_input_spec.rb +120 -6
- data/spec/inputs/country_input_spec.rb +1 -1
- data/spec/inputs/date_input_spec.rb +1 -1
- data/spec/inputs/datetime_input_spec.rb +1 -1
- data/spec/inputs/file_input_spec.rb +1 -1
- data/spec/inputs/hidden_input_spec.rb +1 -1
- data/spec/inputs/numeric_input_spec.rb +1 -1
- data/spec/inputs/password_input_spec.rb +1 -1
- data/spec/inputs/radio_input_spec.rb +61 -2
- data/spec/inputs/select_input_spec.rb +1 -1
- data/spec/inputs/string_input_spec.rb +36 -19
- data/spec/inputs/text_input_spec.rb +1 -1
- data/spec/inputs/time_input_spec.rb +24 -2
- data/spec/inputs/time_zone_input_spec.rb +1 -1
- data/spec/inputs_spec.rb +37 -2
- data/spec/label_spec.rb +42 -1
- data/spec/semantic_errors_spec.rb +1 -1
- data/spec/semantic_fields_for_spec.rb +1 -1
- data/spec/spec_helper.rb +15 -39
- data/spec/{custom_macros.rb → support/custom_macros.rb} +0 -7
- data/spec/support/output_buffer.rb +4 -0
- data/spec/support/test_environment.rb +45 -0
- metadata +20 -14
- data/spec/layout_helper_spec.rb +0 -31
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
describe 'radio input' do
|
5
5
|
|
@@ -31,7 +31,7 @@ describe 'radio input' do
|
|
31
31
|
|
32
32
|
it 'should not link the label within the legend to any input' do
|
33
33
|
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
34
|
-
output_buffer.should_not have_tag('form li fieldset legend label[@for
|
34
|
+
output_buffer.should_not have_tag('form li fieldset legend label[@for]')
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should generate an ordered list with a list item for each choice' do
|
@@ -84,6 +84,17 @@ describe 'radio input' do
|
|
84
84
|
output_buffer.concat(form) if Formtastic::Util.rails3?
|
85
85
|
output_buffer.should have_tag("form li fieldset ol li label input[@checked='checked']")
|
86
86
|
end
|
87
|
+
|
88
|
+
it "should not contain invalid HTML attributes" do
|
89
|
+
|
90
|
+
form = semantic_form_for(@new_post) do |builder|
|
91
|
+
concat(builder.input(:author, :as => :radio))
|
92
|
+
end
|
93
|
+
|
94
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
95
|
+
output_buffer.should_not have_tag("form li fieldset ol li input[@find_options]")
|
96
|
+
end
|
97
|
+
|
87
98
|
end
|
88
99
|
|
89
100
|
describe 'and no object is given' do
|
@@ -112,6 +123,17 @@ describe 'radio input' do
|
|
112
123
|
end
|
113
124
|
end
|
114
125
|
|
126
|
+
it 'should html escape the label string' do
|
127
|
+
output_buffer.replace ''
|
128
|
+
form = semantic_form_for(:project, :url => 'http://test.host') do |builder|
|
129
|
+
concat(builder.input(:author_id, :as => :radio, :collection => [["<b>Item 1</b>", 1], ["<b>Item 2</b>", 2]]))
|
130
|
+
end
|
131
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
132
|
+
output_buffer.should have_tag('form li fieldset ol li label') do |label|
|
133
|
+
label.body.should match /<b>Item [12]<\/b>$/
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
115
137
|
it 'should generate inputs for each item' do
|
116
138
|
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
117
139
|
::Author.find(:all).each do |author|
|
@@ -165,5 +187,42 @@ describe 'radio input' do
|
|
165
187
|
end
|
166
188
|
|
167
189
|
end
|
190
|
+
|
191
|
+
describe "with i18n of the legend label" do
|
192
|
+
|
193
|
+
before do
|
194
|
+
::I18n.backend.store_translations :en, :formtastic => { :labels => { :post => { :authors => "Translated!" }}}
|
168
195
|
|
196
|
+
Formtastic::SemanticFormBuilder.i18n_lookups_by_default = true
|
197
|
+
@new_post.stub!(:author_ids).and_return(nil)
|
198
|
+
@form = semantic_form_for(@new_post) do |builder|
|
199
|
+
concat(builder.input(:authors, :as => :radio))
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
after do
|
204
|
+
::I18n.backend.reload!
|
205
|
+
Formtastic::SemanticFormBuilder.i18n_lookups_by_default = false
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should do foo" do
|
209
|
+
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
210
|
+
output_buffer.should have_tag("legend.label label", /Translated/)
|
211
|
+
end
|
212
|
+
|
213
|
+
end
|
214
|
+
|
215
|
+
describe "when :label option is set" do
|
216
|
+
before do
|
217
|
+
@new_post.stub!(:author_ids).and_return(nil)
|
218
|
+
@form = semantic_form_for(@new_post) do |builder|
|
219
|
+
concat(builder.input(:authors, :as => :radio, :label => 'The authors'))
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
it "should output the correct label title" do
|
224
|
+
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
225
|
+
output_buffer.should have_tag("legend.label label", /The authors/)
|
226
|
+
end
|
227
|
+
end
|
169
228
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
describe 'string input' do
|
5
5
|
|
@@ -8,26 +8,30 @@ describe 'string input' do
|
|
8
8
|
before do
|
9
9
|
@output_buffer = ''
|
10
10
|
mock_everything
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when object is provided" do
|
14
|
+
before do
|
15
|
+
@form = semantic_form_for(@new_post) do |builder|
|
16
|
+
concat(builder.input(:title, :as => :string))
|
17
|
+
end
|
14
18
|
end
|
19
|
+
|
20
|
+
it_should_have_input_wrapper_with_class(:string)
|
21
|
+
it_should_have_input_wrapper_with_id("post_title_input")
|
22
|
+
it_should_have_label_with_text(/Title/)
|
23
|
+
it_should_have_label_for("post_title")
|
24
|
+
it_should_have_input_with_id("post_title")
|
25
|
+
it_should_have_input_with_type(:text)
|
26
|
+
it_should_have_input_with_name("post[title]")
|
27
|
+
it_should_have_maxlength_matching_column_limit
|
28
|
+
it_should_use_default_text_field_size_for_columns_longer_than_default_text_field_size(:string)
|
29
|
+
it_should_use_column_size_for_columns_shorter_than_default_text_field_size(:string)
|
30
|
+
it_should_use_default_text_field_size_when_method_has_no_database_column(:string)
|
31
|
+
it_should_apply_custom_input_attributes_when_input_html_provided(:string)
|
32
|
+
it_should_apply_custom_for_to_label_when_input_html_id_provided(:string)
|
33
|
+
it_should_apply_error_logic_for_input_type(:string)
|
15
34
|
end
|
16
|
-
|
17
|
-
it_should_have_input_wrapper_with_class(:string)
|
18
|
-
it_should_have_input_wrapper_with_id("post_title_input")
|
19
|
-
it_should_have_label_with_text(/Title/)
|
20
|
-
it_should_have_label_for("post_title")
|
21
|
-
it_should_have_input_with_id("post_title")
|
22
|
-
it_should_have_input_with_type(:text)
|
23
|
-
it_should_have_input_with_name("post[title]")
|
24
|
-
it_should_have_maxlength_matching_column_limit
|
25
|
-
it_should_use_default_text_field_size_for_columns_longer_than_default_text_field_size(:string)
|
26
|
-
it_should_use_column_size_for_columns_shorter_than_default_text_field_size(:string)
|
27
|
-
it_should_use_default_text_field_size_when_method_has_no_database_column(:string)
|
28
|
-
it_should_apply_custom_input_attributes_when_input_html_provided(:string)
|
29
|
-
it_should_apply_custom_for_to_label_when_input_html_id_provided(:string)
|
30
|
-
it_should_apply_error_logic_for_input_type(:string)
|
31
35
|
|
32
36
|
describe "when no object is provided" do
|
33
37
|
before do
|
@@ -43,5 +47,18 @@ describe 'string input' do
|
|
43
47
|
it_should_have_input_with_name("project[title]")
|
44
48
|
end
|
45
49
|
|
50
|
+
describe "when size is nil" do
|
51
|
+
before do
|
52
|
+
@form = semantic_form_for(:project, :url => 'http://test.host/') do |builder|
|
53
|
+
concat(builder.input(:title, :as => :string, :input_html => {:size => nil}))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should have no size attribute" do
|
58
|
+
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
59
|
+
output_buffer.should_not have_tag("input[@size]")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
46
63
|
end
|
47
64
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
describe 'time input' do
|
5
5
|
|
@@ -15,7 +15,29 @@ describe 'time input' do
|
|
15
15
|
::I18n.backend.reload!
|
16
16
|
output_buffer.replace ''
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
|
+
describe "with :ignore_date" do
|
20
|
+
before do
|
21
|
+
@form = semantic_form_for(@new_post) do |builder|
|
22
|
+
concat(builder.input(:publish_at, :as => :time, :ignore_date => true))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should not have an input for day, month and year' do
|
27
|
+
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
28
|
+
output_buffer.should_not have_tag('#post_publish_at_1i')
|
29
|
+
output_buffer.should_not have_tag('#post_publish_at_2i')
|
30
|
+
output_buffer.should_not have_tag('#post_publish_at_3i')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should have an input for hour and minute' do
|
34
|
+
output_buffer.concat(@form) if Formtastic::Util.rails3?
|
35
|
+
output_buffer.should have_tag('#post_publish_at_4i')
|
36
|
+
output_buffer.should have_tag('#post_publish_at_5i')
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
19
41
|
describe "without seconds" do
|
20
42
|
before do
|
21
43
|
@form = semantic_form_for(@new_post) do |builder|
|
data/spec/inputs_spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
describe 'SemanticFormBuilder#inputs' do
|
5
5
|
|
@@ -82,7 +82,23 @@ describe 'SemanticFormBuilder#inputs' do
|
|
82
82
|
output_buffer.should_not have_tag("form fieldset.inputs #author_login")
|
83
83
|
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
|
+
it 'should concat rendered nested inputs to the template under rails3' do
|
87
|
+
@bob.stub!(:column_for_attribute).and_return(mock('column', :type => :string, :limit => 255))
|
88
|
+
::Formtastic::Util.stub!(:rails3?).and_return(true)
|
89
|
+
|
90
|
+
form = semantic_form_for(@new_post) do |builder|
|
91
|
+
builder.inputs :for => [:author, @bob] do |bob_builder|
|
92
|
+
concat(bob_builder.input(:login))
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
97
|
+
output_buffer.should have_tag("form fieldset.inputs #post_author_attributes_login")
|
98
|
+
output_buffer.should_not have_tag("form fieldset.inputs #author_login")
|
99
|
+
|
100
|
+
end
|
101
|
+
|
86
102
|
describe "as a symbol representing the association name" do
|
87
103
|
|
88
104
|
it 'should nest the inputs with an _attributes suffix on the association name' do
|
@@ -98,6 +114,25 @@ describe 'SemanticFormBuilder#inputs' do
|
|
98
114
|
|
99
115
|
end
|
100
116
|
|
117
|
+
describe "as a symbol representing a has_many association name" do
|
118
|
+
before do
|
119
|
+
@new_post.stub!(:authors).and_return([@bob, @fred])
|
120
|
+
@new_post.stub!(:authors_attributes=)
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should nest the inputs with a name input for each item' do
|
124
|
+
form = semantic_form_for(@new_post) do |post|
|
125
|
+
post.inputs :for => :authors do |author|
|
126
|
+
concat(author.input(:login))
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
131
|
+
output_buffer.should have_tag("form input[@name='post[authors_attributes][0][login]']")
|
132
|
+
output_buffer.should have_tag("form input[@name='post[authors_attributes][1][login]']")
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
101
136
|
describe 'as an array containing the a symbole for the association name and the associated object' do
|
102
137
|
|
103
138
|
it 'should nest the inputs with an _attributes suffix on the association name' do
|
data/spec/label_spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
describe 'SemanticFormBuilder#label' do
|
5
5
|
|
@@ -30,6 +30,26 @@ describe 'SemanticFormBuilder#label' do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
describe 'when a collection is given' do
|
34
|
+
it 'should use a supplied label_method for simple collections' do
|
35
|
+
form = semantic_form_for(:project, :url => 'http://test.host') do |builder|
|
36
|
+
concat(builder.input(:author_id, :as => :check_boxes, :collection => [:a, :b, :c], :value_method => :to_s, :label_method => proc {|f| ('Label_%s' % [f])}))
|
37
|
+
end
|
38
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
39
|
+
output_buffer.should have_tag('form li fieldset ol li label', :with => /Label_[abc]/, :count => 3)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should use a supplied value_method for simple collections' do
|
43
|
+
form = semantic_form_for(:project, :url => 'http://test.host') do |builder|
|
44
|
+
concat(builder.input(:author_id, :as => :check_boxes, :collection => [:a, :b, :c], :value_method => proc {|f| ('Value_%s' % [f.to_s])}))
|
45
|
+
end
|
46
|
+
output_buffer.concat(form) if Formtastic::Util.rails3?
|
47
|
+
output_buffer.should have_tag('form li fieldset ol li label input[value="Value_a"]')
|
48
|
+
output_buffer.should have_tag('form li fieldset ol li label input[value="Value_b"]')
|
49
|
+
output_buffer.should have_tag('form li fieldset ol li label input[value="Value_c"]')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
33
53
|
describe 'when label is given' do
|
34
54
|
it 'should allow the text to be given as label option' do
|
35
55
|
semantic_form_for(@new_post) do |builder|
|
@@ -42,6 +62,27 @@ describe 'SemanticFormBuilder#label' do
|
|
42
62
|
builder.label(:login, :label => false).should be_blank
|
43
63
|
end
|
44
64
|
end
|
65
|
+
|
66
|
+
it 'should html escape the label string by default' do
|
67
|
+
semantic_form_for(@new_post) do |builder|
|
68
|
+
builder.label(:login, :required => false, :label => '<b>My label</b>').should == "<label for=\"post_login\"><b>My label</b></label>"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should not html escape the label if configured that way' do
|
73
|
+
::Formtastic::SemanticFormBuilder.escape_html_entities_in_hints_and_labels = false
|
74
|
+
semantic_form_for(@new_post) do |builder|
|
75
|
+
builder.label(:login, :required => false, :label => '<b>My label</b>').should == "<label for=\"post_login\"><b>My label</b></label>"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should not html escape the label string for html_safe strings' do
|
80
|
+
::Formtastic::SemanticFormBuilder.escape_html_entities_in_hints_and_labels = true
|
81
|
+
semantic_form_for(@new_post) do |builder|
|
82
|
+
builder.label(:login, :required => false, :label => '<b>My label</b>'.html_safe).should == "<label for=\"post_login\"><b>My label</b></label>"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
45
86
|
end
|
46
87
|
|
47
88
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,53 +1,23 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'rubygems'
|
3
|
-
|
4
|
-
gem 'activesupport', '>=2.3.8'
|
5
|
-
gem 'actionpack', '>=2.3.8'
|
6
3
|
require 'active_support'
|
7
4
|
require 'action_pack'
|
8
5
|
require 'action_view'
|
9
6
|
require 'action_controller'
|
7
|
+
require 'action_mailer'
|
10
8
|
|
11
|
-
begin
|
12
|
-
gem 'activemodel', '>= 3.0.0.beta'
|
13
|
-
require 'active_model'
|
14
|
-
rescue Exception
|
15
|
-
end
|
16
|
-
|
17
|
-
gem 'rspec', '>= 1.2.6'
|
18
|
-
gem 'rspec-rails', '>= 1.2.6'
|
19
|
-
gem 'hpricot', '>= 0.6.1'
|
20
|
-
gem 'rspec_tag_matchers', '>= 1.0.0'
|
21
|
-
require 'rspec_tag_matchers'
|
22
|
-
|
23
|
-
require 'custom_macros'
|
24
|
-
|
25
|
-
begin
|
26
|
-
Spec::Runner.configure do |config|
|
27
|
-
config.include(RspecTagMatchers)
|
28
|
-
config.include(CustomMacros)
|
29
|
-
end
|
30
|
-
rescue
|
31
|
-
require 'rspec/core'
|
32
|
-
Rspec.configure do |config|
|
33
|
-
config.include RspecTagMatchers
|
34
|
-
config.include CustomMacros
|
35
|
-
config.mock_with :rspec
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/formtastic'))
|
40
9
|
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/formtastic/util'))
|
10
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/formtastic'))
|
41
11
|
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/formtastic/layout_helper'))
|
42
12
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
end
|
13
|
+
# Requires supporting files with custom matchers and macros, etc,
|
14
|
+
# in ./support/ and its subdirectories in alphabetic order.
|
15
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each {|f| require f}
|
47
16
|
|
48
17
|
module FormtasticSpecHelper
|
49
18
|
include ActionPack
|
50
19
|
include ActionView::Context if defined?(ActionView::Context)
|
20
|
+
include ActionController::RecordIdentifier
|
51
21
|
include ActionView::Helpers::FormHelper
|
52
22
|
include ActionView::Helpers::FormTagHelper
|
53
23
|
include ActionView::Helpers::FormOptionsHelper
|
@@ -56,12 +26,11 @@ module FormtasticSpecHelper
|
|
56
26
|
include ActionView::Helpers::TextHelper
|
57
27
|
include ActionView::Helpers::ActiveRecordHelper if defined?(ActionView::Helpers::ActiveRecordHelper)
|
58
28
|
include ActionView::Helpers::ActiveModelHelper if defined?(ActionView::Helpers::ActiveModelHelper)
|
59
|
-
include ActionView::Helpers::RecordIdentificationHelper
|
60
29
|
include ActionView::Helpers::DateHelper
|
61
30
|
include ActionView::Helpers::CaptureHelper
|
62
31
|
include ActionView::Helpers::AssetTagHelper
|
63
32
|
include ActiveSupport
|
64
|
-
include ActionController::PolymorphicRoutes
|
33
|
+
include ActionController::PolymorphicRoutes if defined?(ActionController::PolymorphicRoutes)
|
65
34
|
|
66
35
|
include Formtastic::SemanticFormHelper
|
67
36
|
|
@@ -123,11 +92,17 @@ module FormtasticSpecHelper
|
|
123
92
|
extend ActiveModel::Naming if defined?(ActiveModel::Naming)
|
124
93
|
include ActiveModel::Conversion if defined?(ActiveModel::Conversion)
|
125
94
|
end
|
95
|
+
class ::PostModel
|
96
|
+
extend ActiveModel::Naming if defined?(ActiveModel::Naming)
|
97
|
+
include ActiveModel::Conversion if defined?(ActiveModel::Conversion)
|
98
|
+
end
|
126
99
|
|
127
100
|
def mock_everything
|
128
101
|
|
129
102
|
# Resource-oriented styles like form_for(@post) will expect a path method for the object,
|
130
103
|
# so we're defining some here.
|
104
|
+
def post_models_path; "/postmodels/1"; end
|
105
|
+
|
131
106
|
def post_path(o); "/posts/1"; end
|
132
107
|
def posts_path; "/posts"; end
|
133
108
|
def new_post_path; "/posts/new"; end
|
@@ -147,6 +122,7 @@ module FormtasticSpecHelper
|
|
147
122
|
@fred.stub!(:persisted?).and_return(nil)
|
148
123
|
|
149
124
|
@bob = mock('user')
|
125
|
+
@bob.stub!(:to_ary)
|
150
126
|
@bob.stub!(:class).and_return(::Author)
|
151
127
|
@bob.stub!(:to_label).and_return('Bob Rock')
|
152
128
|
@bob.stub!(:login).and_return('bob')
|
@@ -212,7 +188,7 @@ module FormtasticSpecHelper
|
|
212
188
|
::Post.stub!(:human_attribute_name).and_return { |column_name| column_name.humanize }
|
213
189
|
::Post.stub!(:human_name).and_return('Post')
|
214
190
|
::Post.stub!(:reflect_on_all_validations).and_return([])
|
215
|
-
::Post.stub!(:reflect_on_validations_for).and_return([])
|
191
|
+
::Post.stub!(:reflect_on_validations_for).and_return([])
|
216
192
|
::Post.stub!(:reflections).and_return({})
|
217
193
|
::Post.stub!(:reflect_on_association).and_return do |column_name|
|
218
194
|
case column_name
|