diff options
| author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-06 22:00:06 -0300 | 
|---|---|---|
| committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-06 22:01:32 -0300 | 
| commit | d76ef6fa6cd34f4c7023706e8b8b4eb8a6a03b88 (patch) | |
| tree | 10b3e6a374e4c5d75405a80239100a5b76658a15 | |
| parent | 93d22512f9f8b753af8fe3f9148bba7cc05654ce (diff) | |
| download | rails-d76ef6fa6cd34f4c7023706e8b8b4eb8a6a03b88.tar.gz rails-d76ef6fa6cd34f4c7023706e8b8b4eb8a6a03b88.tar.bz2 rails-d76ef6fa6cd34f4c7023706e8b8b4eb8a6a03b88.zip | |
Update some code styles.
* Uses the Ruby 1.9 hash syntax
* Avoid escaping " inside string using the %{} syntax
| -rw-r--r-- | actionpack/lib/action_view/helpers/url_helper.rb | 98 | ||||
| -rw-r--r-- | actionpack/test/template/url_helper_test.rb | 330 | 
2 files changed, 228 insertions, 200 deletions
| diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb index e8b3b14265..5105d0e585 100644 --- a/actionpack/lib/action_view/helpers/url_helper.rb +++ b/actionpack/lib/action_view/helpers/url_helper.rb @@ -46,7 +46,6 @@ module ActionView        end        protected :_back_url -        # Creates a link tag of the given +name+ using a URL created by the set of +options+.        # See the valid options in the documentation for +url_for+. It's also possible to        # pass a String instead of an options hash, which generates a link tag that uses the @@ -115,7 +114,7 @@ module ActionView        #        # in place of the older more verbose, non-resource-oriented        # -      #   link_to "Profile", :controller => "profiles", :action => "show", :id => @profile +      #   link_to "Profile", controller: "profiles", action: "show", id: @profile        #   # => <a href="/profiles/show/1">Profile</a>        #        # Similarly, @@ -125,7 +124,7 @@ module ActionView        #        # is better than        # -      #   link_to "Profiles", :controller => "profiles" +      #   link_to "Profiles", controller: "profiles"        #   # => <a href="/profiles">Profiles</a>        #        # You can use a block as well if your link target is hard to fit into the name parameter. ERB example: @@ -139,38 +138,38 @@ module ActionView        #        # Classes and ids for CSS are easy to produce:        # -      #   link_to "Articles", articles_path, :id => "news", :class => "article" +      #   link_to "Articles", articles_path, id: "news", class: "article"        #   # => <a href="/articles" class="article" id="news">Articles</a>        #        # Be careful when using the older argument style, as an extra literal hash is needed:        # -      #   link_to "Articles", { :controller => "articles" }, :id => "news", :class => "article" +      #   link_to "Articles", { controller: "articles" }, id: "news", class: "article"        #   # => <a href="/articles" class="article" id="news">Articles</a>        #        # Leaving the hash off gives the wrong link:        # -      #   link_to "WRONG!", :controller => "articles", :id => "news", :class => "article" +      #   link_to "WRONG!", controller: "articles", id: "news", class: "article"        #   # => <a href="/articles/index/news?class=article">WRONG!</a>        #        # +link_to+ can also produce links with anchors or query strings:        # -      #   link_to "Comment wall", profile_path(@profile, :anchor => "wall") +      #   link_to "Comment wall", profile_path(@profile, anchor: "wall")        #   # => <a href="/profiles/1#wall">Comment wall</a>        # -      #   link_to "Ruby on Rails search", :controller => "searches", :query => "ruby on rails" +      #   link_to "Ruby on Rails search", controller: "searches", query: "ruby on rails"        #   # => <a href="/searches?query=ruby+on+rails">Ruby on Rails search</a>        # -      #   link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux") +      #   link_to "Nonsense search", searches_path(foo: "bar", baz: "quux")        #   # => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>        #        # The only option specific to +link_to+ (<tt>:method</tt>) is used as follows:        # -      #   link_to("Destroy", "http://www.example.com", :method => :delete) +      #   link_to("Destroy", "http://www.example.com", method: :delete)        #   # => <a href='http://www.example.com' rel="nofollow" data-method="delete">Destroy</a>        #        # You can also use custom data attributes using the <tt>:data</tt> option:        # -      #   link_to "Visit Other Site", "http://www.rubyonrails.org/", :data => { :confirm => "Are you sure?" } +      #   link_to "Visit Other Site", "http://www.rubyonrails.org/", data: { confirm: "Are you sure?" }        #   # => <a href="http://www.rubyonrails.org/" data-confirm="Are you sure?"">Visit Other Site</a>        def link_to(name = nil, options = nil, html_options = nil, &block)          html_options, options = options, name if block_given? @@ -197,7 +196,7 @@ module ActionView        # the form submission and input element behavior using +html_options+.        # This method accepts the <tt>:method</tt> modifier described in the +link_to+ documentation.        # If no <tt>:method</tt> modifier is given, it will default to performing a POST operation. -      # You can also disable the button by passing <tt>:disabled => true</tt> in +html_options+. +      # You can also disable the button by passing <tt>disabled: true</tt> in +html_options+.        # If you are using RESTful routes, you can pass the <tt>:method</tt>        # to change the HTTP verb used to submit the form.        # @@ -226,7 +225,7 @@ module ActionView        #   by the unobtrusive JavaScript driver.        #        # ==== Examples -      #   <%= button_to "New", :action => "new" %> +      #   <%= button_to "New", action: "new" %>        #   # => "<form method="post" action="/controller/new" class="button_to">        #   #      <div><input value="New" type="submit" /></div>        #   #    </form>" @@ -242,13 +241,13 @@ module ActionView        #   #      </div>        #   #    </form>"        # -      #   <%= button_to "New", :action => "new", :form_class => "new-thing" %> +      #   <%= button_to "New", action: "new", form_class: "new-thing" %>        #   # => "<form method="post" action="/controller/new" class="new-thing">        #   #      <div><input value="New" type="submit" /></div>        #   #    </form>"        #        # -      #   <%= button_to "Create", :action => "create", :remote => true, :form => { "data-type" => "json" } %> +      #   <%= button_to "Create", action: "create", remote: true, form: { "data-type" => "json" } %>        #   # => "<form method="post" action="/images/create" class="button_to" data-remote="true" data-type="json">        #   #      <div>        #   #        <input value="Create" type="submit" /> @@ -257,8 +256,8 @@ module ActionView        #   #    </form>"        #        # -      #   <%= button_to "Delete Image", { :action => "delete", :id => @image.id }, -      #                                   :method => :delete, :data => { :confirm => "Are you sure?" } %> +      #   <%= button_to "Delete Image", { action: "delete", id: @image.id }, +      #                                   method: :delete, data: { confirm: "Are you sure?" } %>        #   # => "<form method="post" action="/images/delete/1" class="button_to">        #   #      <div>        #   #        <input type="hidden" name="_method" value="delete" /> @@ -269,7 +268,7 @@ module ActionView        #        #        #   <%= button_to('Destroy', 'http://www.example.com', -      #             :method => "delete", :remote => true, :data => { :confirm' => 'Are you sure?', :disable_with => 'loading...' }) %> +      #             method: "delete", remote: true, data: { confirm: 'Are you sure?', disable_with: 'loading...' }) %>        #   # => "<form class='button_to' method='post' action='http://www.example.com' data-remote='true'>        #   #       <div>        #   #         <input name='_method' value='delete' type='hidden' /> @@ -295,7 +294,7 @@ module ActionView          form_method  = method == 'get' ? 'get' : 'post'          form_options = html_options.delete('form') || {}          form_options[:class] ||= html_options.delete('form_class') || 'button_to' -        form_options.merge!(:method => form_method, :action => url) +        form_options.merge!(method: form_method, action: url)          form_options.merge!("data-remote" => "true") if remote          request_token_tag = form_method == 'post' ? token_tag : '' @@ -314,7 +313,6 @@ module ActionView          content_tag('form', content_tag('div', inner_tags), form_options)        end -        # Creates a link tag of the given +name+ using a URL created by the set of        # +options+ unless the current request URI is the same as the links, in        # which case only the name is returned (or the given block is yielded, if @@ -326,8 +324,8 @@ module ActionView        # Let's say you have a navigation menu...        #        #   <ul id="navbar"> -      #     <li><%= link_to_unless_current("Home", { :action => "index" }) %></li> -      #     <li><%= link_to_unless_current("About Us", { :action => "about" }) %></li> +      #     <li><%= link_to_unless_current("Home", { action: "index" }) %></li> +      #     <li><%= link_to_unless_current("About Us", { action: "about" }) %></li>        #   </ul>        #        # If in the "about" action, it will render... @@ -349,8 +347,8 @@ module ActionView        # "Go Back" link instead of a link to the comments page, we could do something like this...        #        #    <%= -      #        link_to_unless_current("Comment", { :controller => "comments", :action => "new" }) do -      #           link_to("Go back", { :controller => "posts", :action => "index" }) +      #        link_to_unless_current("Comment", { controller: "comments", action: "new" }) do +      #           link_to("Go back", { controller: "posts", action: "index" })        #        end        #     %>        def link_to_unless_current(name, options = {}, html_options = {}, &block) @@ -364,13 +362,13 @@ module ActionView        # accepts the name or the full argument list for +link_to_unless+.        #        # ==== Examples -      #   <%= link_to_unless(@current_user.nil?, "Reply", { :action => "reply" }) %> +      #   <%= link_to_unless(@current_user.nil?, "Reply", { action: "reply" }) %>        #   # If the user is logged in...        #   # => <a href="/controller/reply/">Reply</a>        #        #   <%= -      #      link_to_unless(@current_user.nil?, "Reply", { :action => "reply" }) do |name| -      #        link_to(name, { :controller => "accounts", :action => "signup" }) +      #      link_to_unless(@current_user.nil?, "Reply", { action: "reply" }) do |name| +      #        link_to(name, { controller: "accounts", action: "signup" })        #      end        #   %>        #   # If the user is logged in... @@ -396,13 +394,13 @@ module ActionView        # in +link_to_unless+).        #        # ==== Examples -      #   <%= link_to_if(@current_user.nil?, "Login", { :controller => "sessions", :action => "new" }) %> +      #   <%= link_to_if(@current_user.nil?, "Login", { controller: "sessions", action: "new" }) %>        #   # If the user isn't logged in...        #   # => <a href="/sessions/new/">Login</a>        #        #   <%= -      #      link_to_if(@current_user.nil?, "Login", { :controller => "sessions", :action => "new" }) do -      #        link_to(@current_user.login, { :controller => "accounts", :action => "show", :id => @current_user }) +      #      link_to_if(@current_user.nil?, "Login", { controller: "sessions", action: "new" }) do +      #        link_to(@current_user.login, { controller: "accounts", action: "show", id: @current_user })        #      end        #   %>        #   # If the user isn't logged in... @@ -443,17 +441,17 @@ module ActionView        #   mail_to "me@domain.com"        #   # => <a href="mailto:me@domain.com">me@domain.com</a>        # -      #   mail_to "me@domain.com", "My email", :encode => "javascript" +      #   mail_to "me@domain.com", "My email", encode: "javascript"        #   # => <script>eval(decodeURIComponent('%64%6f%63...%27%29%3b'))</script>        # -      #   mail_to "me@domain.com", "My email", :encode => "hex" +      #   mail_to "me@domain.com", "My email", encode: "hex"        #   # => <a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">My email</a>        # -      #   mail_to "me@domain.com", nil, :replace_at => "_at_", :replace_dot => "_dot_", :class => "email" +      #   mail_to "me@domain.com", nil, replace_at: "_at_", replace_dot: "_dot_", class: "email"        #   # => <a href="mailto:me@domain.com" class="email">me_at_domain_dot_com</a>        # -      #   mail_to "me@domain.com", "My email", :cc => "ccaddress@domain.com", -      #            :subject => "This is an example email" +      #   mail_to "me@domain.com", "My email", cc: "ccaddress@domain.com", +      #            subject: "This is an example email"        #   # => <a href="mailto:me@domain.com?cc=ccaddress@domain.com&subject=This%20is%20an%20example%20email">My email</a>        def mail_to(email_address, name = nil, html_options = {})          email_address = ERB::Util.html_escape(email_address) @@ -502,47 +500,47 @@ module ActionView        # ==== Examples        # Let's say we're in the <tt>/shop/checkout?order=desc</tt> action.        # -      #   current_page?(:action => 'process') +      #   current_page?(action: 'process')        #   # => false        # -      #   current_page?(:controller => 'shop', :action => 'checkout') +      #   current_page?(controller: 'shop', action: 'checkout')        #   # => true        # -      #   current_page?(:controller => 'shop', :action => 'checkout', :order => 'asc') +      #   current_page?(controller: 'shop', action: 'checkout', order: 'asc')        #   # => false        # -      #   current_page?(:action => 'checkout') +      #   current_page?(action: 'checkout')        #   # => true        # -      #   current_page?(:controller => 'library', :action => 'checkout') +      #   current_page?(controller: 'library', action: 'checkout')        #   # => false        #        # Let's say we're in the <tt>/shop/checkout?order=desc&page=1</tt> action.        # -      #   current_page?(:action => 'process') +      #   current_page?(action: 'process')        #   # => false        # -      #   current_page?(:controller => 'shop', :action => 'checkout') +      #   current_page?(controller: 'shop', action: 'checkout')        #   # => true        # -      #   current_page?(:controller => 'shop', :action => 'checkout', :order => 'desc', :page => '1') +      #   current_page?(controller: 'shop', action: 'checkout', order: 'desc', page: '1')        #   # => true        # -      #   current_page?(:controller => 'shop', :action => 'checkout', :order => 'desc', :page => '2') +      #   current_page?(controller: 'shop', action: 'checkout', order: 'desc', page: '2')        #   # => false        # -      #   current_page?(:controller => 'shop', :action => 'checkout', :order => 'desc') +      #   current_page?(controller: 'shop', action: 'checkout', order: 'desc')        #   # => false        # -      #   current_page?(:action => 'checkout') +      #   current_page?(action: 'checkout')        #   # => true        # -      #   current_page?(:controller => 'library', :action => 'checkout') +      #   current_page?(controller: 'library', action: 'checkout')        #   # => false        #        # Let's say we're in the <tt>/products</tt> action with method POST in case of invalid product.        # -      #   current_page?(:controller => 'product', :action => 'index') +      #   current_page?(controller: 'product', action: 'index')        #   # => false        #        def current_page?(options) @@ -642,14 +640,14 @@ module ActionView          def token_tag(token=nil)            if token != false && protect_against_forgery?              token ||= form_authenticity_token -            tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => token) +            tag(:input, type: "hidden", name: request_forgery_protection_token.to_s, value: token)            else              ''            end          end          def method_tag(method) -          tag('input', :type => 'hidden', :name => '_method', :value => method.to_s) +          tag('input', type: 'hidden', name: '_method', value: method.to_s)          end      end    end diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb index a969634e22..bbfdf7f944 100644 --- a/actionpack/test/template/url_helper_test.rb +++ b/actionpack/test/template/url_helper_test.rb @@ -31,17 +31,17 @@ class UrlHelperTest < ActiveSupport::TestCase    setup :_prepare_context    def hash_for(options = {}) -    { :controller => "foo", :action => "bar" }.merge!(options) +    { controller: "foo", action: "bar" }.merge!(options)    end    alias url_hash hash_for    def test_url_for_does_not_escape_urls -    assert_equal "/?a=b&c=d", url_for(hash_for(:a => :b, :c => :d)) +    assert_equal "/?a=b&c=d", url_for(hash_for(a: :b, c: :d))    end    def test_url_for_with_back      referer = 'http://www.example.com/referer' -    @controller = Struct.new(:request).new(Struct.new(:env).new({"HTTP_REFERER" => referer})) +    @controller = Struct.new(:request).new(Struct.new(:env).new("HTTP_REFERER" => referer))      assert_equal 'http://www.example.com/referer', url_for(:back)    end @@ -53,7 +53,7 @@ class UrlHelperTest < ActiveSupport::TestCase    # TODO: missing test cases    def test_button_to_with_straight_url -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com") +    assert_dom_equal %{<form method="post" action="http://www.example.com" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, button_to("Hello", "http://www.example.com")    end    def test_button_to_with_straight_url_and_request_forgery @@ -68,143 +68,146 @@ class UrlHelperTest < ActiveSupport::TestCase    end    def test_button_to_with_form_class -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com\" class=\"custom-class\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com", :form_class => 'custom-class') +    assert_dom_equal %{<form method="post" action="http://www.example.com" class="custom-class"><div><input type="submit" value="Hello" /></div></form>}, button_to("Hello", "http://www.example.com", form_class: 'custom-class')    end    def test_button_to_with_form_class_escapes -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com\" class=\"<script>evil_js</script>\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com", :form_class => '<script>evil_js</script>') +    assert_dom_equal %{<form method="post" action="http://www.example.com" class="<script>evil_js</script>"><div><input type="submit" value="Hello" /></div></form>}, button_to("Hello", "http://www.example.com", form_class: '<script>evil_js</script>')    end    def test_button_to_with_query -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com/q1=v1&q2=v2\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com/q1=v1&q2=v2") +    assert_dom_equal %{<form method="post" action="http://www.example.com/q1=v1&q2=v2" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, button_to("Hello", "http://www.example.com/q1=v1&q2=v2")    end    def test_button_to_with_html_safe_URL -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com/q1=v1&q2=v2\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com/q1=v1&q2=v2".html_safe) +    assert_dom_equal %{<form method="post" action="http://www.example.com/q1=v1&q2=v2" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, button_to("Hello", "http://www.example.com/q1=v1&q2=v2".html_safe)    end    def test_button_to_with_query_and_no_name -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com?q1=v1&q2=v2\" class=\"button_to\"><div><input type=\"submit\" value=\"http://www.example.com?q1=v1&q2=v2\" /></div></form>", button_to(nil, "http://www.example.com?q1=v1&q2=v2") +    assert_dom_equal %{<form method="post" action="http://www.example.com?q1=v1&q2=v2" class="button_to"><div><input type="submit" value="http://www.example.com?q1=v1&q2=v2" /></div></form>}, button_to(nil, "http://www.example.com?q1=v1&q2=v2")    end    def test_button_to_with_javascript_confirm      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input data-confirm=\"Are you sure?\" type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :data => { :confirm => "Are you sure?" }) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input data-confirm="Are you sure?" type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", data: { confirm: "Are you sure?" })      )    end    def test_button_to_with_deprecated_confirm      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input data-confirm=\"Are you sure?\" type=\"submit\" value=\"Hello\" /></div></form>", -        button_to("Hello", "http://www.example.com", :confirm => "Are you sure?") +        %{<form method="post" action="http://www.example.com" class="button_to"><div><input data-confirm="Are you sure?" type="submit" value="Hello" /></div></form>}, +        button_to("Hello", "http://www.example.com", confirm: "Are you sure?")        )      end    end    def test_button_to_with_javascript_disable_with      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input data-disable-with=\"Greeting...\" type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :data => { :disable_with => "Greeting..." }) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input data-disable-with="Greeting..." type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", data: { disable_with: "Greeting..." })      )    end    def test_button_to_with_javascript_deprecated_disable_with      assert_deprecated ":disable_with option is deprecated and will be removed from Rails 4.1. Use ':data => { :disable_with => \'Text\' }' instead" do        assert_dom_equal( -        "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input data-disable-with=\"Greeting...\" type=\"submit\" value=\"Hello\" /></div></form>", -        button_to("Hello", "http://www.example.com", :disable_with => "Greeting...") +        %{<form method="post" action="http://www.example.com" class="button_to"><div><input data-disable-with="Greeting..." type="submit" value="Hello" /></div></form>}, +        button_to("Hello", "http://www.example.com", disable_with: "Greeting...")        )      end    end    def test_button_to_with_remote_and_form_options -    assert_dom_equal "<form method=\"post\" action=\"http://www.example.com\" class=\"custom-class\" data-remote=\"true\" data-type=\"json\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", button_to("Hello", "http://www.example.com", :remote => true, :form => { :class => "custom-class", "data-type" => "json" } ) +    assert_dom_equal( +      %{<form method="post" action="http://www.example.com" class="custom-class" data-remote="true" data-type="json"><div><input type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", remote: true, form: { class: "custom-class", "data-type" => "json" }) +    )    end    def test_button_to_with_remote_and_javascript_confirm      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\" data-remote=\"true\"><div><input data-confirm=\"Are you sure?\" type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :remote => true, :data => { :confirm => "Are you sure?" }) +      %{<form method="post" action="http://www.example.com" class="button_to" data-remote="true"><div><input data-confirm="Are you sure?" type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", remote: true, data: { confirm: "Are you sure?" })      )    end    def test_button_to_with_remote_and_javascript_with_deprecated_confirm      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\" data-remote=\"true\"><div><input data-confirm=\"Are you sure?\" type=\"submit\" value=\"Hello\" /></div></form>", -        button_to("Hello", "http://www.example.com", :remote => true, :confirm => "Are you sure?") +        %{<form method="post" action="http://www.example.com" class="button_to" data-remote="true"><div><input data-confirm="Are you sure?" type="submit" value="Hello" /></div></form>}, +        button_to("Hello", "http://www.example.com", remote: true, confirm: "Are you sure?")        )      end    end    def test_button_to_with_remote_and_javascript_disable_with      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\" data-remote=\"true\"><div><input data-disable-with=\"Greeting...\" type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :remote => true, :data => { :disable_with => "Greeting..." }) +      %{<form method="post" action="http://www.example.com" class="button_to" data-remote="true"><div><input data-disable-with="Greeting..." type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", remote: true, data: { disable_with: "Greeting..." })      )    end    def test_button_to_with_remote_and_javascript_deprecated_disable_with      assert_deprecated ":disable_with option is deprecated and will be removed from Rails 4.1. Use ':data => { :disable_with => \'Text\' }' instead" do        assert_dom_equal( -        "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\" data-remote=\"true\"><div><input data-disable-with=\"Greeting...\" type=\"submit\" value=\"Hello\" /></div></form>", -        button_to("Hello", "http://www.example.com", :remote => true, :disable_with => "Greeting...") +        %{<form method="post" action="http://www.example.com" class="button_to" data-remote="true"><div><input data-disable-with="Greeting..." type="submit" value="Hello" /></div></form>}, +        button_to("Hello", "http://www.example.com", remote: true, disable_with: "Greeting...")        )      end    end    def test_button_to_with_remote_false      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :remote => false) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", remote: false)      )    end    def test_button_to_enabled_disabled      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :disabled => false) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", disabled: false)      )      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input disabled=\"disabled\" type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :disabled => true) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input disabled="disabled" type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", disabled: true)      )    end    def test_button_to_with_method_delete      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><input type=\"hidden\" name=\"_method\" value=\"delete\" /><input type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :method => :delete) +      %{<form method="post" action="http://www.example.com" class="button_to"><div><input type="hidden" name="_method" value="delete" /><input type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", method: :delete)      )    end    def test_button_to_with_method_get      assert_dom_equal( -      "<form method=\"get\" action=\"http://www.example.com\" class=\"button_to\"><div><input type=\"submit\" value=\"Hello\" /></div></form>", -      button_to("Hello", "http://www.example.com", :method => :get) +      %{<form method="get" action="http://www.example.com" class="button_to"><div><input type="submit" value="Hello" /></div></form>}, +      button_to("Hello", "http://www.example.com", method: :get)      )    end    def test_button_to_with_block      assert_dom_equal( -      "<form method=\"post\" action=\"http://www.example.com\" class=\"button_to\"><div><button type=\"submit\"><span>Hello</span></button></div></form>", +      %{<form method="post" action="http://www.example.com" class="button_to"><div><button type="submit"><span>Hello</span></button></div></form>},        button_to("http://www.example.com") { content_tag(:span, 'Hello') }      )    end    def test_link_tag_with_straight_url -    assert_dom_equal "<a href=\"http://www.example.com\">Hello</a>", link_to("Hello", "http://www.example.com") +    assert_dom_equal %{<a href="http://www.example.com">Hello</a>}, link_to("Hello", "http://www.example.com")    end    def test_link_tag_without_host_option -    assert_dom_equal(%q{<a href="/">Test Link</a>}, link_to('Test Link', url_hash)) +    assert_dom_equal(%{<a href="/">Test Link</a>}, link_to('Test Link', url_hash))    end    def test_link_tag_with_host_option -    hash = hash_for(:host => "www.example.com") -    expected = %q{<a href="http://www.example.com/">Test Link</a>} +    hash = hash_for(host: "www.example.com") +    expected = %{<a href="http://www.example.com/">Test Link</a>}      assert_dom_equal(expected, link_to('Test Link', hash))    end @@ -243,145 +246,143 @@ class UrlHelperTest < ActiveSupport::TestCase    end    def test_link_tag_with_custom_onclick -    link = link_to("Hello", "http://www.example.com", :onclick => "alert('yay!')") +    link = link_to("Hello", "http://www.example.com", onclick: "alert('yay!')")      expected = %{<a href="http://www.example.com" onclick="alert('yay!')">Hello</a>}      assert_dom_equal expected, link    end    def test_link_tag_with_javascript_confirm      assert_dom_equal( -      "<a href=\"http://www.example.com\" data-confirm=\"Are you sure?\">Hello</a>", -      link_to("Hello", "http://www.example.com", :data => { :confirm => "Are you sure?" }) +      %{<a href="http://www.example.com" data-confirm="Are you sure?">Hello</a>}, +      link_to("Hello", "http://www.example.com", data: { confirm: "Are you sure?" })      )      assert_dom_equal( -      "<a href=\"http://www.example.com\" data-confirm=\"You cant possibly be sure, can you?\">Hello</a>", -      link_to("Hello", "http://www.example.com", :data => { :confirm => "You cant possibly be sure, can you?" }) +      %{<a href="http://www.example.com" data-confirm="You cant possibly be sure, can you?">Hello</a>}, +      link_to("Hello", "http://www.example.com", data: { confirm: "You cant possibly be sure, can you?" })      )      assert_dom_equal( -      "<a href=\"http://www.example.com\" data-confirm=\"You cant possibly be sure,\n can you?\">Hello</a>", -      link_to("Hello", "http://www.example.com", :data => { :confirm => "You cant possibly be sure,\n can you?" }) +      %{<a href="http://www.example.com" data-confirm="You cant possibly be sure,\n can you?">Hello</a>}, +      link_to("Hello", "http://www.example.com", data: { confirm: "You cant possibly be sure,\n can you?" })      )    end    def test_link_tag_with_deprecated_confirm      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<a href=\"http://www.example.com\" data-confirm=\"Are you sure?\">Hello</a>", -        link_to("Hello", "http://www.example.com", :confirm => "Are you sure?") +        %{<a href="http://www.example.com" data-confirm="Are you sure?">Hello</a>}, +        link_to("Hello", "http://www.example.com", confirm: "Are you sure?")        )      end      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<a href=\"http://www.example.com\" data-confirm=\"You cant possibly be sure, can you?\">Hello</a>", -        link_to("Hello", "http://www.example.com", :confirm => "You cant possibly be sure, can you?") +        %{<a href="http://www.example.com" data-confirm="You cant possibly be sure, can you?">Hello</a>}, +        link_to("Hello", "http://www.example.com", confirm: "You cant possibly be sure, can you?")        )      end      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<a href=\"http://www.example.com\" data-confirm=\"You cant possibly be sure,\n can you?\">Hello</a>", -        link_to("Hello", "http://www.example.com", :confirm => "You cant possibly be sure,\n can you?") +        %{<a href="http://www.example.com" data-confirm="You cant possibly be sure,\n can you?">Hello</a>}, +        link_to("Hello", "http://www.example.com", confirm: "You cant possibly be sure,\n can you?")        )      end    end    def test_link_to_with_remote      assert_dom_equal( -      "<a href=\"http://www.example.com\" data-remote=\"true\">Hello</a>", -      link_to("Hello", "http://www.example.com", :remote => true) +      %{<a href="http://www.example.com" data-remote="true">Hello</a>}, +      link_to("Hello", "http://www.example.com", remote: true)      )    end    def test_link_to_with_remote_false      assert_dom_equal( -      "<a href=\"http://www.example.com\">Hello</a>", -      link_to("Hello", "http://www.example.com", :remote => false) +      %{<a href="http://www.example.com">Hello</a>}, +      link_to("Hello", "http://www.example.com", remote: false)      )    end    def test_link_to_with_symbolic_remote_in_non_html_options      assert_dom_equal( -      "<a href=\"/\" data-remote=\"true\">Hello</a>", -      link_to("Hello", hash_for(:remote => true), {}) +      %{<a href="/" data-remote="true">Hello</a>}, +      link_to("Hello", hash_for(remote: true), {})      )    end    def test_link_to_with_string_remote_in_non_html_options      assert_dom_equal( -      "<a href=\"/\" data-remote=\"true\">Hello</a>", +      %{<a href="/" data-remote="true">Hello</a>},        link_to("Hello", hash_for('remote' => true), {})      )    end    def test_link_tag_using_post_javascript      assert_dom_equal( -      "<a href='http://www.example.com' data-method=\"post\" rel=\"nofollow\">Hello</a>", -      link_to("Hello", "http://www.example.com", :method => :post) +      %{<a href="http://www.example.com" data-method="post" rel="nofollow">Hello</a>}, +      link_to("Hello", "http://www.example.com", method: :post)      )    end    def test_link_tag_using_delete_javascript      assert_dom_equal( -      "<a href='http://www.example.com' rel=\"nofollow\" data-method=\"delete\">Destroy</a>", -      link_to("Destroy", "http://www.example.com", :method => :delete) +      %{<a href="http://www.example.com" rel="nofollow" data-method="delete">Destroy</a>}, +      link_to("Destroy", "http://www.example.com", method: :delete)      )    end    def test_link_tag_using_delete_javascript_and_href      assert_dom_equal( -      "<a href='\#' rel=\"nofollow\" data-method=\"delete\">Destroy</a>", -      link_to("Destroy", "http://www.example.com", :method => :delete, :href => '#') +      %{<a href="\#" rel="nofollow" data-method="delete">Destroy</a>}, +      link_to("Destroy", "http://www.example.com", method: :delete, href: '#')      )    end    def test_link_tag_using_post_javascript_and_rel      assert_dom_equal( -      "<a href='http://www.example.com' data-method=\"post\" rel=\"example nofollow\">Hello</a>", -      link_to("Hello", "http://www.example.com", :method => :post, :rel => 'example') +      %{<a href="http://www.example.com" data-method="post" rel="example nofollow">Hello</a>}, +      link_to("Hello", "http://www.example.com", method: :post, rel: 'example')      )    end    def test_link_tag_using_post_javascript_and_confirm      assert_dom_equal( -      "<a href=\"http://www.example.com\" data-method=\"post\" rel=\"nofollow\" data-confirm=\"Are you serious?\">Hello</a>", -      link_to("Hello", "http://www.example.com", :method => :post, :data => { :confirm => "Are you serious?" }) +      %{<a href="http://www.example.com" data-method="post" rel="nofollow" data-confirm="Are you serious?">Hello</a>}, +      link_to("Hello", "http://www.example.com", method: :post, data: { confirm: "Are you serious?" })      )    end    def test_link_tag_using_post_javascript_and_with_deprecated_confirm      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<a href=\"http://www.example.com\" data-method=\"post\" rel=\"nofollow\" data-confirm=\"Are you serious?\">Hello</a>", -        link_to("Hello", "http://www.example.com", :method => :post, :confirm => "Are you serious?") +        %{<a href="http://www.example.com" data-method="post" rel="nofollow" data-confirm="Are you serious?">Hello</a>}, +        link_to("Hello", "http://www.example.com", method: :post, confirm: "Are you serious?")        )      end    end    def test_link_tag_using_delete_javascript_and_href_and_confirm      assert_dom_equal( -      "<a href='\#' rel=\"nofollow\" data-confirm=\"Are you serious?\" data-method=\"delete\">Destroy</a>", -      link_to("Destroy", "http://www.example.com", :method => :delete, :href => '#', :data => { :confirm => "Are you serious?" }), -      "When specifying url, form should be generated with it, but not this.href" +      %{<a href="\#" rel="nofollow" data-confirm="Are you serious?" data-method="delete">Destroy</a>}, +      link_to("Destroy", "http://www.example.com", method: :delete, href: '#', data: { confirm: "Are you serious?" })      )    end    def test_link_tag_using_delete_javascript_and_href_and_with_deprecated_confirm      assert_deprecated ":confirm option is deprecated and will be removed from Rails 4.1. Use ':data => { :confirm => \'Text\' }' instead" do        assert_dom_equal( -        "<a href='\#' rel=\"nofollow\" data-confirm=\"Are you serious?\" data-method=\"delete\">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" +        %{<a href="\#" rel="nofollow" data-confirm="Are you serious?" data-method="delete">Destroy</a>}, +        link_to("Destroy", "http://www.example.com", method: :delete, href: '#', confirm: "Are you serious?")        )      end    end    def test_link_tag_with_block -    assert_dom_equal '<a href="/"><span>Example site</span></a>', +    assert_dom_equal %{<a href="/"><span>Example site</span></a>},        link_to('/') { content_tag(:span, 'Example site') }    end    def test_link_tag_with_block_and_html_options -    assert_dom_equal '<a class="special" href="/"><span>Example site</span></a>', -      link_to('/', :class => "special") { content_tag(:span, 'Example site') } +    assert_dom_equal %{<a class="special" href="/"><span>Example site</span></a>}, +      link_to('/', class: "special") { content_tag(:span, 'Example site') }    end    def test_link_tag_using_block_in_erb @@ -391,18 +392,18 @@ class UrlHelperTest < ActiveSupport::TestCase    def test_link_tag_with_html_safe_string      assert_dom_equal( -      "<a href=\"/article/Gerd_M%C3%BCller\">Gerd Müller</a>", +      %{<a href="/article/Gerd_M%C3%BCller">Gerd Müller</a>},        link_to("Gerd Müller", article_path("Gerd_Müller".html_safe))      )    end    def test_link_tag_escapes_content -    assert_dom_equal '<a href="/">Malicious <script>content</script></a>', +    assert_dom_equal %{<a href="/">Malicious <script>content</script></a>},        link_to("Malicious <script>content</script>", "/")    end    def test_link_tag_does_not_escape_html_safe_content -    assert_dom_equal '<a href="/">Malicious <script>content</script></a>', +    assert_dom_equal %{<a href="/">Malicious <script>content</script></a>},        link_to("Malicious <script>content</script>".html_safe, "/")    end @@ -452,12 +453,12 @@ class UrlHelperTest < ActiveSupport::TestCase    def test_current_page_with_params_that_match      @request = request_for_url("/?order=desc&page=1") -    assert current_page?(hash_for(:order => "desc", :page => "1")) +    assert current_page?(hash_for(order: "desc", page: "1"))      assert current_page?("http://www.example.com/?order=desc&page=1")    end    def test_current_page_with_not_get_verb -    @request = request_for_url("/events", :method => :post) +    @request = request_for_url("/events", method: :post)      assert !current_page?('/events')    end @@ -480,20 +481,20 @@ class UrlHelperTest < ActiveSupport::TestCase      @request = request_for_url("/?order=desc&page=1")      assert_equal "Showing", -      link_to_unless_current("Showing", hash_for(:order => 'desc', :page => '1')) +      link_to_unless_current("Showing", hash_for(order: 'desc', page: '1'))      assert_equal "Showing",        link_to_unless_current("Showing", "http://www.example.com/?order=desc&page=1")      @request = request_for_url("/?order=desc")      assert_equal %{<a href="/?order=asc">Showing</a>}, -      link_to_unless_current("Showing", hash_for(:order => :asc)) +      link_to_unless_current("Showing", hash_for(order: :asc))      assert_equal %{<a href="http://www.example.com/?order=asc">Showing</a>},        link_to_unless_current("Showing", "http://www.example.com/?order=asc")      @request = request_for_url("/?order=desc")      assert_equal %{<a href="/?order=desc&page=2\">Showing</a>}, -      link_to_unless_current("Showing", hash_for(:order => "desc", :page => 2)) +      link_to_unless_current("Showing", hash_for(order: "desc", page: 2))      assert_equal %{<a href="http://www.example.com/?order=desc&page=2">Showing</a>},        link_to_unless_current("Showing", "http://www.example.com/?order=desc&page=2") @@ -506,56 +507,86 @@ class UrlHelperTest < ActiveSupport::TestCase    end    def test_mail_to -    assert_dom_equal "<a href=\"mailto:david@loudthinking.com\">david@loudthinking.com</a>", mail_to("david@loudthinking.com") -    assert_dom_equal "<a href=\"mailto:david@loudthinking.com\">David Heinemeier Hansson</a>", mail_to("david@loudthinking.com", "David Heinemeier Hansson") +    assert_dom_equal %{<a href="mailto:david@loudthinking.com">david@loudthinking.com</a>}, mail_to("david@loudthinking.com") +    assert_dom_equal %{<a href="mailto:david@loudthinking.com">David Heinemeier Hansson</a>}, mail_to("david@loudthinking.com", "David Heinemeier Hansson")      assert_dom_equal( -      "<a class=\"admin\" href=\"mailto:david@loudthinking.com\">David Heinemeier Hansson</a>", +      %{<a class="admin" href="mailto:david@loudthinking.com">David Heinemeier Hansson</a>},        mail_to("david@loudthinking.com", "David Heinemeier Hansson", "class" => "admin")      )      assert_equal mail_to("david@loudthinking.com", "David Heinemeier Hansson", "class" => "admin"), -                 mail_to("david@loudthinking.com", "David Heinemeier Hansson", :class => "admin") +                 mail_to("david@loudthinking.com", "David Heinemeier Hansson", class: "admin")    end    def test_mail_to_with_javascript -    snippet = mail_to("me@domain.com", "My email", :encode => "javascript") +    snippet = mail_to("me@domain.com", "My email", encode: "javascript")      assert_dom_equal "<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%5c%22%3e%4d%79%20%65%6d%61%69%6c%3c%5c%2f%61%3e%27%29%3b'))</script>", snippet    end    def test_mail_to_with_javascript_unicode -    snippet = mail_to("unicode@example.com", "únicode", :encode => "javascript") +    snippet = mail_to("unicode@example.com", "únicode", encode: "javascript")      assert_dom_equal "<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%75%6e%69%63%6f%64%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%5c%22%3e%c3%ba%6e%69%63%6f%64%65%3c%5c%2f%61%3e%27%29%3b'))</script>", snippet    end    def test_mail_with_options      assert_dom_equal( -      %(<a href="mailto:me@example.com?cc=ccaddress%40example.com&bcc=bccaddress%40example.com&body=This%20is%20the%20body%20of%20the%20message.&subject=This%20is%20an%20example%20email">My email</a>), -      mail_to("me@example.com", "My email", :cc => "ccaddress@example.com", :bcc => "bccaddress@example.com", :subject => "This is an example email", :body => "This is the body of the message.") +      %{<a href="mailto:me@example.com?cc=ccaddress%40example.com&bcc=bccaddress%40example.com&body=This%20is%20the%20body%20of%20the%20message.&subject=This%20is%20an%20example%20email">My email</a>}, +      mail_to("me@example.com", "My email", cc: "ccaddress@example.com", bcc: "bccaddress@example.com", subject: "This is an example email", body: "This is the body of the message.")      )    end    def test_mail_to_with_img -    assert_dom_equal %(<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>), +    assert_dom_equal %{<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>},        mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)    end    def test_mail_to_with_hex -    assert_dom_equal "<a href=\"mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d\">My email</a>", mail_to("me@domain.com", "My email", :encode => "hex") -    assert_dom_equal "<a href=\"mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d\">me@domain.com</a>", mail_to("me@domain.com", nil, :encode => "hex") +    assert_dom_equal( +      %{<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">My email</a>}, +      mail_to("me@domain.com", "My email", encode: "hex") +    ) + +    assert_dom_equal( +      %{<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">me@domain.com</a>}, +      mail_to("me@domain.com", nil, encode: "hex") +    )    end    def test_mail_to_with_replace_options -    assert_dom_equal "<a href=\"mailto:wolfgang@stufenlos.net\">wolfgang(at)stufenlos(dot)net</a>", mail_to("wolfgang@stufenlos.net", nil, :replace_at => "(at)", :replace_dot => "(dot)") -    assert_dom_equal "<a href=\"mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d\">me(at)domain.com</a>", mail_to("me@domain.com", nil, :encode => "hex", :replace_at => "(at)") -    assert_dom_equal "<a href=\"mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d\">My email</a>", mail_to("me@domain.com", "My email", :encode => "hex", :replace_at => "(at)") -    assert_dom_equal "<a href=\"mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d\">me(at)domain(dot)com</a>", mail_to("me@domain.com", nil, :encode => "hex", :replace_at => "(at)", :replace_dot => "(dot)") -    assert_dom_equal "<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%5c%22%3e%4d%79%20%65%6d%61%69%6c%3c%5c%2f%61%3e%27%29%3b'))</script>", mail_to("me@domain.com", "My email", :encode => "javascript", :replace_at => "(at)", :replace_dot => "(dot)") -    assert_dom_equal "<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%5c%22%3e%6d%65%28%61%74%29%64%6f%6d%61%69%6e%28%64%6f%74%29%63%6f%6d%3c%5c%2f%61%3e%27%29%3b'))</script>", mail_to("me@domain.com", nil, :encode => "javascript", :replace_at => "(at)", :replace_dot => "(dot)") +    assert_dom_equal( +      %{<a href="mailto:wolfgang@stufenlos.net">wolfgang(at)stufenlos(dot)net</a>}, +      mail_to("wolfgang@stufenlos.net", nil, replace_at: "(at)", replace_dot: "(dot)") +    ) + +    assert_dom_equal( +      %{<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">me(at)domain.com</a>}, +      mail_to("me@domain.com", nil, encode: "hex", replace_at: "(at)") +    ) + +    assert_dom_equal( +      %{<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">My email</a>}, +      mail_to("me@domain.com", "My email", encode: "hex", replace_at: "(at)") +    ) + +    assert_dom_equal( +      %{<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">me(at)domain(dot)com</a>}, +      mail_to("me@domain.com", nil, encode: "hex", replace_at: "(at)", replace_dot: "(dot)") +    ) + +    assert_dom_equal( +      %{<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%5c%22%3e%4d%79%20%65%6d%61%69%6c%3c%5c%2f%61%3e%27%29%3b'))</script>}, +      mail_to("me@domain.com", "My email", encode: "javascript", replace_at: "(at)", replace_dot: "(dot)") +    ) + +    assert_dom_equal( +      %{<script>eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%5c%22%3e%6d%65%28%61%74%29%64%6f%6d%61%69%6e%28%64%6f%74%29%63%6f%6d%3c%5c%2f%61%3e%27%29%3b'))</script>}, +      mail_to("me@domain.com", nil, encode: "javascript", replace_at: "(at)", replace_dot: "(dot)") +    )    end    def test_mail_to_returns_html_safe_string      assert mail_to("david@loudthinking.com").html_safe? -    assert mail_to("me@domain.com", "My email", :encode => "javascript").html_safe? -    assert mail_to("me@domain.com", "My email", :encode => "hex").html_safe? +    assert mail_to("me@domain.com", "My email", encode: "javascript").html_safe? +    assert mail_to("me@domain.com", "My email", encode: "hex").html_safe?    end    def protect_against_forgery? @@ -582,62 +613,62 @@ class UrlHelperControllerTest < ActionController::TestCase    class UrlHelperController < ActionController::Base      test_routes do        get 'url_helper_controller_test/url_helper/show/:id', -        :to => 'url_helper_controller_test/url_helper#show', -        :as => :show +        to: 'url_helper_controller_test/url_helper#show', +        as: :show        get 'url_helper_controller_test/url_helper/profile/:name', -        :to => 'url_helper_controller_test/url_helper#show', -        :as => :profile +        to: 'url_helper_controller_test/url_helper#show', +        as: :profile        get 'url_helper_controller_test/url_helper/show_named_route', -        :to => 'url_helper_controller_test/url_helper#show_named_route', -        :as => :show_named_route +        to: 'url_helper_controller_test/url_helper#show_named_route', +        as: :show_named_route        get "/:controller(/:action(/:id))"        get 'url_helper_controller_test/url_helper/normalize_recall_params', -        :to => UrlHelperController.action(:normalize_recall), -        :as => :normalize_recall_params +        to: UrlHelperController.action(:normalize_recall), +        as: :normalize_recall_params        get '/url_helper_controller_test/url_helper/override_url_helper/default', -        :to => 'url_helper_controller_test/url_helper#override_url_helper', -        :as => :override_url_helper +        to: 'url_helper_controller_test/url_helper#override_url_helper', +        as: :override_url_helper      end      def show        if params[:name] -        render :inline => 'ok' +        render inline: 'ok'        else          redirect_to profile_path(params[:id])        end      end      def show_url_for -      render :inline => "<%= url_for :controller => 'url_helper_controller_test/url_helper', :action => 'show_url_for' %>" +      render inline: "<%= url_for controller: 'url_helper_controller_test/url_helper', action: 'show_url_for' %>"      end      def show_overriden_url_for -      render :inline => "<%= url_for params.merge(:controller => 'url_helper_controller_test/url_helper', :action => 'show_url_for') %>" +      render inline: "<%= url_for params.merge(controller: 'url_helper_controller_test/url_helper', action: 'show_url_for') %>"      end      def show_named_route -      render :inline => "<%= show_named_route_#{params[:kind]} %>" +      render inline: "<%= show_named_route_#{params[:kind]} %>"      end      def nil_url_for -      render :inline => '<%= url_for(nil) %>' +      render inline: '<%= url_for(nil) %>'      end      def normalize_recall_params -      render :inline => '<%= normalize_recall_params_path %>' +      render inline: '<%= normalize_recall_params_path %>'      end      def recall_params_not_changed -      render :inline => '<%= url_for(:action => :show_url_for) %>' +      render inline: '<%= url_for(action: :show_url_for) %>'      end      def override_url_helper -      render :inline => '<%= override_url_helper_path %>' +      render inline: '<%= override_url_helper_path %>'      end      def override_url_helper_path @@ -659,13 +690,13 @@ class UrlHelperControllerTest < ActionController::TestCase    end    def test_named_route_url_shows_host_and_path -    get :show_named_route, :kind => 'url' +    get :show_named_route, kind: 'url'      assert_equal 'http://test.host/url_helper_controller_test/url_helper/show_named_route',        @response.body    end    def test_named_route_path_shows_only_path -    get :show_named_route, :kind => 'path' +    get :show_named_route, kind: 'path'      assert_equal '/url_helper_controller_test/url_helper/show_named_route', @response.body    end @@ -677,11 +708,11 @@ class UrlHelperControllerTest < ActionController::TestCase    def test_named_route_should_show_host_and_path_using_controller_default_url_options      class << @controller        def default_url_options -        {:host => 'testtwo.host'} +        { host: 'testtwo.host' }        end      end -    get :show_named_route, :kind => 'url' +    get :show_named_route, kind: 'url'      assert_equal 'http://testtwo.host/url_helper_controller_test/url_helper/show_named_route', @response.body    end @@ -696,11 +727,11 @@ class UrlHelperControllerTest < ActionController::TestCase    end    def test_recall_params_should_normalize_id -    get :show, :id => '123' +    get :show, id: '123'      assert_equal 302, @response.status      assert_equal 'http://test.host/url_helper_controller_test/url_helper/profile/123', @response.location -    get :show, :name => '123' +    get :show, name: '123'      assert_equal 'ok', @response.body    end @@ -725,9 +756,8 @@ class TasksController < ActionController::Base    protected      def render_default -      render :inline => -        "<%= link_to_unless_current(\"tasks\", tasks_path) %>\n" + -        "<%= link_to_unless_current(\"tasks\", tasks_url) %>" +      render inline: "<%= link_to_unless_current('tasks', tasks_path) %>\n" + +        "<%= link_to_unless_current('tasks', tasks_url) %>"      end  end @@ -740,9 +770,9 @@ class LinkToUnlessCurrentWithControllerTest < ActionController::TestCase    end    def test_link_to_unless_current_shows_link -    get :show, :id => 1 -    assert_equal "<a href=\"/tasks\">tasks</a>\n" + -      "<a href=\"#{@request.protocol}#{@request.host_with_port}/tasks\">tasks</a>", +    get :show, id: 1 +    assert_equal %{<a href="/tasks">tasks</a>\n} + +      %{<a href="#{@request.protocol}#{@request.host_with_port}/tasks">tasks</a>},        @response.body    end  end @@ -774,12 +804,12 @@ class WorkshopsController < ActionController::Base    def index      @workshop = Workshop.new(nil) -    render :inline => "<%= url_for(@workshop) %>\n<%= link_to('Workshop', @workshop) %>" +    render inline: "<%= url_for(@workshop) %>\n<%= link_to('Workshop', @workshop) %>"    end    def show      @workshop = Workshop.new(params[:id]) -    render :inline => "<%= url_for(@workshop) %>\n<%= link_to('Workshop', @workshop) %>" +    render inline: "<%= url_for(@workshop) %>\n<%= link_to('Workshop', @workshop) %>"    end  end @@ -793,13 +823,13 @@ class SessionsController < ActionController::Base    def index      @workshop = Workshop.new(params[:workshop_id])      @session = Session.new(nil) -    render :inline => "<%= url_for([@workshop, @session]) %>\n<%= link_to('Session', [@workshop, @session]) %>" +    render inline: "<%= url_for([@workshop, @session]) %>\n<%= link_to('Session', [@workshop, @session]) %>"    end    def show      @workshop = Workshop.new(params[:workshop_id])      @session = Session.new(params[:id]) -    render :inline => "<%= url_for([@workshop, @session]) %>\n<%= link_to('Session', [@workshop, @session]) %>" +    render inline: "<%= url_for([@workshop, @session]) %>\n<%= link_to('Session', [@workshop, @session]) %>"    end  end @@ -808,27 +838,27 @@ class PolymorphicControllerTest < ActionController::TestCase      @controller = WorkshopsController.new      get :index -    assert_equal "/workshops\n<a href=\"/workshops\">Workshop</a>", @response.body +    assert_equal %{/workshops\n<a href="/workshops">Workshop</a>}, @response.body    end    def test_existing_resource      @controller = WorkshopsController.new -    get :show, :id => 1 -    assert_equal "/workshops/1\n<a href=\"/workshops/1\">Workshop</a>", @response.body +    get :show, id: 1 +    assert_equal %{/workshops/1\n<a href="/workshops/1">Workshop</a>}, @response.body    end    def test_new_nested_resource      @controller = SessionsController.new -    get :index, :workshop_id => 1 -    assert_equal "/workshops/1/sessions\n<a href=\"/workshops/1/sessions\">Session</a>", @response.body +    get :index, workshop_id: 1 +    assert_equal %{/workshops/1/sessions\n<a href="/workshops/1/sessions">Session</a>}, @response.body    end    def test_existing_nested_resource      @controller = SessionsController.new -    get :show, :workshop_id => 1, :id => 1 -    assert_equal "/workshops/1/sessions/1\n<a href=\"/workshops/1/sessions/1\">Session</a>", @response.body +    get :show, workshop_id: 1, id: 1 +    assert_equal %{/workshops/1/sessions/1\n<a href="/workshops/1/sessions/1">Session</a>}, @response.body    end  end | 
