From 1a73e98660b29a2ce9eccd5b0776367a4969a012 Mon Sep 17 00:00:00 2001
From: Kevin Glowacz <glowacz@gmail.com>
Date: Thu, 22 May 2008 14:21:33 -0500
Subject: Fix auto_link helper for already linked urls. [#72 state:resolved]

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
---
 actionpack/lib/action_view/helpers/text_helper.rb | 4 ++--
 actionpack/test/template/text_helper_test.rb      | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

(limited to 'actionpack')

diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb
index b710157f51..669a285424 100644
--- a/actionpack/lib/action_view/helpers/text_helper.rb
+++ b/actionpack/lib/action_view/helpers/text_helper.rb
@@ -454,7 +454,7 @@ module ActionView
                         (                          # leading text
                           <\w+.*?>|                # leading HTML tag, or
                           [^=!:'"/]|               # leading punctuation, or
-                          |                        # nothing
+                          ^                        # beginning of line
                         )
                         (
                           (?:https?://)|           # protocol spec, or
@@ -468,7 +468,7 @@ module ActionView
                           (?:\?[\w\+@%&=.;-]+)?     # query string
                           (?:\#[\w\-]*)?           # trailing anchor
                         )
-                        ([[:punct:]]|\s|<|$)       # trailing text
+                        ([[:punct:]]|<|$|)       # trailing text
                        }x unless const_defined?(:AUTO_LINK_RE)
 
         # Turns all urls into clickable links.  If a block is given, each url
diff --git a/actionpack/test/template/text_helper_test.rb b/actionpack/test/template/text_helper_test.rb
index 36c939f761..62cdca03d1 100644
--- a/actionpack/test/template/text_helper_test.rb
+++ b/actionpack/test/template/text_helper_test.rb
@@ -264,6 +264,7 @@ class TextHelperTest < ActionView::TestCase
     assert_equal '', auto_link(nil)
     assert_equal '', auto_link('')
     assert_equal "#{link_result} #{link_result} #{link_result}", auto_link("#{link_raw} #{link_raw} #{link_raw}")
+    assert_equal '<a href="http://www.rubyonrails.com">Ruby On Rails</a>', auto_link('<a href="http://www.rubyonrails.com">Ruby On Rails</a>')
   end
 
   def test_auto_link_at_eol
-- 
cgit v1.2.3