aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-06-05 04:29:19 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-06-05 04:29:19 +0000
commit7709df5f17cc6ef33059aa3b4c9249c10d7d124c (patch)
tree5a2e64c1f897129a6c51ade3e2865a9e3c09d385 /actionpack
parentf80468c3c319f56a24113381287445857f2ae807 (diff)
downloadrails-7709df5f17cc6ef33059aa3b4c9249c10d7d124c.tar.gz
rails-7709df5f17cc6ef33059aa3b4c9249c10d7d124c.tar.bz2
rails-7709df5f17cc6ef33059aa3b4c9249c10d7d124c.zip
Don't double-escape url_for in views. Closes #8144.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6942 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/helpers/url_helper.rb2
-rw-r--r--actionpack/test/template/url_helper_test.rb5
3 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index fe81c8366b..5601199b10 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Don't double-escape url_for in views. #8144 [Rich Collins, Josh Peek]
+
* Allow JSON-style values for the :with option of observe_field. Closes #8557 [kommen]
* Remove RAILS_ROOT from backtrace paths. #8540 [Tim Pope]
diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb
index d22a1464a0..1fa9939d0e 100644
--- a/actionpack/lib/action_view/helpers/url_helper.rb
+++ b/actionpack/lib/action_view/helpers/url_helper.rb
@@ -78,7 +78,7 @@ module ActionView
url = polymorphic_path(options)
end
- escape ? html_escape(url) : url
+ escape ? escape_once(url) : url
end
# Creates a link tag of the given +name+ using a URL created by the set
diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb
index 1762015d9d..43ec8ca0d3 100644
--- a/actionpack/test/template/url_helper_test.rb
+++ b/actionpack/test/template/url_helper_test.rb
@@ -25,6 +25,11 @@ class UrlHelperTest < Test::Unit::TestCase
assert_equal "http://www.example.com?a=b&c=d", url_for(:a => 'b', :c => 'd', :escape => false)
end
+ def test_url_for_escapes_url_once
+ @controller.url = "http://www.example.com?a=b&amp;c=d"
+ assert_equal "http://www.example.com?a=b&amp;c=d", url_for("http://www.example.com?a=b&amp;c=d")
+ end
+
# 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")