mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Make sure link_to generates the form with the specified :href if any [#2254 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
parent
a0f69722be
commit
0af4b0755f
2 changed files with 9 additions and 1 deletions
|
@ -568,7 +568,7 @@ module ActionView
|
|||
when confirm && popup
|
||||
"if (#{confirm_javascript_function(confirm)}) { #{popup_javascript_function(popup)} };return false;"
|
||||
when confirm && method
|
||||
"if (#{confirm_javascript_function(confirm)}) { #{method_javascript_function(method)} };return false;"
|
||||
"if (#{confirm_javascript_function(confirm)}) { #{method_javascript_function(method, url, href)} };return false;"
|
||||
when confirm
|
||||
"return #{confirm_javascript_function(confirm)};"
|
||||
when method
|
||||
|
|
|
@ -220,6 +220,14 @@ class UrlHelperTest < ActionView::TestCase
|
|||
)
|
||||
end
|
||||
|
||||
def test_link_tag_using_delete_javascript_and_href_and_confirm
|
||||
assert_dom_equal(
|
||||
"<a href='\#' onclick=\"if (confirm('Are you serious?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = 'http://www.example.com';var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);f.submit(); };return false;\">Destroy</a>",
|
||||
link_to("Destroy", "http://www.example.com", :method => :delete, :href => '#', :confirm => "Are you serious?"),
|
||||
"When specifying url, form should be generated with it, but not this.href"
|
||||
)
|
||||
end
|
||||
|
||||
def test_link_tag_using_post_javascript_and_popup
|
||||
assert_raise(ActionView::ActionViewError) { link_to("Hello", "http://www.example.com", :popup => true, :method => :post, :confirm => "Are you serious?") }
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue