2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/test/shoulda_macros/forms.rb', line 2
def should_have_form(opts)
model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
model = model[model.rindex('::')+2..model.size] if model.include?('::')
http_method, hidden_http_method = form_http_method opts[:method]
should "have a #{model} form" do
assert_select "form[action=?][method=#{http_method}]", eval(opts[:action]) do
if hidden_http_method
assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
end
opts[:fields].each do |attribute, type|
attribute = attribute.is_a?(Symbol) ? "#{model}[#{attribute.to_s}]" : attribute
assert_select "input[type=#{type.to_s}][name=?]", attribute
end
assert_select "input[type=submit]"
end
end
end
|