Permalink
Browse files

Merge pull request #477 from krolow/ticket-2574

fixing regex of autoLinks to work with urls that have www
  • Loading branch information...
2 parents ad09b91 + 07adcfe commit ba249aeff69575e25c09ea86cc2701d19c74f67c @markstory markstory committed Feb 15, 2012
Showing with 23 additions and 3 deletions.
  1. +21 −1 lib/Cake/Test/Case/View/Helper/TextHelperTest.php
  2. +2 −2 lib/Cake/View/Helper/TextHelper.php
@@ -336,6 +336,26 @@ public function testAutoLinkUrls() {
$expected = 'Text with a partial <iframe src="http://www.cakephp.org" /> link';
$result = $this->Text->autoLinkUrls($text, array('escape' => false));
$this->assertEquals($expected, $result);
+
+ $text = 'Text with a url <a href="http://www.not-working-www.com">www.not-working-www.com</a> and more';
+ $expected = 'Text with a url <a href="http://www.not-working-www.com">www.not-working-www.com</a> and more';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
+ $text = 'Text with a url www.not-working-www.com and more';
+ $expected = 'Text with a url <a href="http://www.not-working-www.com">www.not-working-www.com</a> and more';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
+ $text = 'Text with a url http://www.not-working-www.com and more';
+ $expected = 'Text with a url <a href="http://www.not-working-www.com">http://www.not-working-www.com</a> and more';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
+
+ $text = 'Text with a url http://www.www.not-working-www.com and more';
+ $expected = 'Text with a url <a href="http://www.www.not-working-www.com">http://www.www.not-working-www.com</a> and more';
+ $result = $this->Text->autoLinkUrls($text);
+ $this->assertEquals($expected, $result);
}
/**
@@ -424,7 +444,7 @@ public function testExcerpt() {
$expected = $text;
$result = $this->Text->excerpt($text, $phrase, 13, '...');
$this->assertEquals($expected, $result);
-
+
$text = 'aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa';
$phrase = 'bbbbbbbb';
$result = $this->Text->excerpt($text, $phrase, 10);
@@ -121,7 +121,7 @@ public function autoLinkUrls($text, $htmlOptions = array()) {
$text
);
return preg_replace_callback(
- '#(?<!href="|">)(?<!http://|https://|ftp://|nntp://)(www\.[^\n\%\ <]+[^<\n\%\,\.\ <])(?<!\))#i',
+ '#(?<!href="|">)(?<!\b[[:punct:]])(?<!http://|https://|ftp://|nntp://)www.[^\n\%\ <]+[^<\n\%\,\.\ <](?<!\))#i',
array(&$this, '_linkUrls'),
$text
);
@@ -353,7 +353,7 @@ public function excerpt($text, $phrase, $radius = 100, $ending = '...') {
$excerpt = mb_substr($text, $startPos, $endPos - $startPos);
$excerpt = $prepend . $excerpt . $append;
-
+
return $excerpt;
}

0 comments on commit ba249ae

Please sign in to comment.