Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix autoLinkUrls so it re-capture query strings.

Fixes #3296
  • Loading branch information...
commit b1dfab87e44f4248ea9263627456cab23eb63b5c 1 parent f06bdde
@markstory markstory authored
View
15 lib/Cake/Test/Case/View/Helper/TextHelperTest.php
@@ -181,6 +181,11 @@ public function testAutoLinkUrls() {
$result = $this->Text->autoLinkUrls($text);
$this->assertEquals($expected, $result);
+ $text = 'This is a test that includes www.cakephp.org:8080';
+ $expected = 'This is a test that includes <a href="http://www.cakephp.org:8080">www.cakephp.org:8080</a>';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
$text = 'This is a test that includes http://de.wikipedia.org/wiki/Kanton_(Schweiz)#fragment';
$expected = 'This is a test that includes <a href="http://de.wikipedia.org/wiki/Kanton_(Schweiz)#fragment">http://de.wikipedia.org/wiki/Kanton_(Schweiz)#fragment</a>';
$result = $this->Text->autoLinkUrls($text);
@@ -191,6 +196,16 @@ public function testAutoLinkUrls() {
$result = $this->Text->autoLinkUrls($text);
$this->assertEquals($expected, $result);
+ $text = 'This is a test that includes http://example.com/test.php?foo=bar text';
+ $expected = 'This is a test that includes <a href="http://example.com/test.php?foo=bar">http://example.com/test.php?foo=bar</a> text';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
+ $text = 'This is a test that includes www.example.com/test.php?foo=bar text';
+ $expected = 'This is a test that includes <a href="http://www.example.com/test.php?foo=bar">www.example.com/test.php?foo=bar</a> text';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
$text = 'Text with a partial www.cakephp.org URL';
$expected = 'Text with a partial <a href="http://www.cakephp.org"\s*>www.cakephp.org</a> URL';
$result = $this->Text->autoLinkUrls($text);
View
2  lib/Cake/View/Helper/TextHelper.php
@@ -101,7 +101,7 @@ public function autoLinkUrls($text, $options = array()) {
$this->_placeholders = array();
$options += array('escape' => true);
- $pattern = '#(?<!href="|src="|">)((?:https?|ftp|nntp)://[^\s<>()]+\.[a-z]+(?:\/[^\s]+)?)#i';
+ $pattern = '#(?<!href="|src="|">)((?:https?|ftp|nntp)://[a-z0-9.\-:]+(?:/[^\s]*)?)#i';
$text = preg_replace_callback(
$pattern,
array(&$this, '_insertPlaceHolder'),
Please sign in to comment.
Something went wrong with that request. Please try again.