Browse Source

Merge pull request #477 from krolow/ticket-2574

fixing regex of autoLinks to work with urls that have www
Mark Story 14 years ago
parent
commit
ba249aeff6

+ 21 - 1
lib/Cake/Test/Case/View/Helper/TextHelperTest.php

@@ -336,6 +336,26 @@ podeís adquirirla.</span></p>
 		$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 @@ podeís adquirirla.</span></p>
 		$expected = $text;
 		$result = $this->Text->excerpt($text, $phrase, 13, '...');
 		$this->assertEquals($expected, $result);
-		
+
 		$text = 'aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa';
 		$phrase = 'bbbbbbbb';
 		$result = $this->Text->excerpt($text, $phrase, 10);

+ 2 - 2
lib/Cake/View/Helper/TextHelper.php

@@ -121,7 +121,7 @@ class TextHelper extends AppHelper {
 			$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 @@ class TextHelper extends AppHelper {
 
 		$excerpt = mb_substr($text, $startPos, $endPos - $startPos);
 		$excerpt = $prepend . $excerpt . $append;
-		
+
 		return $excerpt;
 	}