Skip to content

Commit

Permalink
Deprecate link_to_function and button_to_function helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelfranca committed Apr 30, 2012
1 parent 6b8a3a0 commit 9dc57fe
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
4 changes: 4 additions & 0 deletions actionpack/lib/action_view/helpers/javascript_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ def javascript_cdata_section(content) #:nodoc:
# # => <input class="ok" onclick="alert('Hello world!');" type="button" value="Greeting" />
#
def button_to_function(name, function=nil, html_options={})
ActiveSupport::Deprecation.warn("button_to_function is deprecated and will be removed from Rails 4.0")

onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function};"

tag(:input, html_options.merge(:type => 'button', :value => name, :onclick => onclick))
Expand All @@ -100,6 +102,8 @@ def button_to_function(name, function=nil, html_options={})
# # => <a class="nav_link" href="#" onclick="alert('Hello world!'); return false;">Greeting</a>
#
def link_to_function(name, function, html_options={})
ActiveSupport::Deprecation.warn("link_to_function is deprecated and will be removed from Rails 4.0")

onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function}; return false;"
href = html_options[:href] || '#'

Expand Down
36 changes: 24 additions & 12 deletions actionpack/test/template/javascript_helper_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,33 +46,45 @@ def test_escape_javascript_with_safebuffer
end

def test_button_to_function
assert_dom_equal %(<input type="button" onclick="alert('Hello world!');" value="Greeting" />),
button_to_function("Greeting", "alert('Hello world!')")
assert_deprecated "button_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal %(<input type="button" onclick="alert('Hello world!');" value="Greeting" />),
button_to_function("Greeting", "alert('Hello world!')")
end
end

def test_button_to_function_with_onclick
assert_dom_equal "<input onclick=\"alert('Goodbye World :('); alert('Hello world!');\" type=\"button\" value=\"Greeting\" />",
button_to_function("Greeting", "alert('Hello world!')", :onclick => "alert('Goodbye World :(')")
assert_deprecated "button_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal "<input onclick=\"alert('Goodbye World :('); alert('Hello world!');\" type=\"button\" value=\"Greeting\" />",
button_to_function("Greeting", "alert('Hello world!')", :onclick => "alert('Goodbye World :(')")
end
end

def test_button_to_function_without_function
assert_dom_equal "<input onclick=\";\" type=\"button\" value=\"Greeting\" />",
button_to_function("Greeting")
assert_deprecated "button_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal "<input onclick=\";\" type=\"button\" value=\"Greeting\" />",
button_to_function("Greeting")
end
end

def test_link_to_function
assert_dom_equal %(<a href="#" onclick="alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')")
assert_deprecated "link_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal %(<a href="#" onclick="alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')")
end
end

def test_link_to_function_with_existing_onclick
assert_dom_equal %(<a href="#" onclick="confirm('Sanity!'); alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')", :onclick => "confirm('Sanity!')")
assert_deprecated "link_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal %(<a href="#" onclick="confirm('Sanity!'); alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')", :onclick => "confirm('Sanity!')")
end
end

def test_function_with_href
assert_dom_equal %(<a href="http://example.com/" onclick="alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')", :href => 'http://example.com/')
assert_deprecated "link_to_function is deprecated and will be removed from Rails 4.0" do
assert_dom_equal %(<a href="http://example.com/" onclick="alert('Hello world!'); return false;">Greeting</a>),
link_to_function("Greeting", "alert('Hello world!')", :href => 'http://example.com/')
end
end

def test_javascript_tag
Expand Down

0 comments on commit 9dc57fe

Please sign in to comment.