Skip to content

Instantly share code, notes, and snippets.

@qrush
Forked from croaky/assert_form.rb
Created June 16, 2009 17:36
Show Gist options
  • Save qrush/130785 to your computer and use it in GitHub Desktop.
Save qrush/130785 to your computer and use it in GitHub Desktop.
class Test::Unit::TestCase
# assert_form posts_url, :put do
# assert_text_field :post, :title
# assert_text_area :post, :body
# assert_submit
# end
def assert_form(url, http_method = :post)
http_method, hidden_http_method = form_http_method(http_method)
assert_select "form[action=?][method=#{http_method}]", url do
if hidden_http_method
assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
end
if block_given?
yield
end
end
end
def form_http_method(http_method)
http_method = http_method.to_s
if http_method == "post" || http_method == "get"
return http_method, nil
else
return "post", http_method
end
end
def assert_submit
assert_select "input[type=submit]"
end
def assert_text_field(model, attribute)
assert_select "input[type=text][name=?]",
"#{model.to_s}[#{attribute.to_s}]"
end
def assert_text_area(model, attribute)
assert_select "textarea[name=?]",
"#{model.to_s}[#{attribute.to_s}]"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment