Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

fixing regex of autoLinks to work with urls that have www #477

Merged
merged 1 commit into from Feb 15, 2012
Jump to file or symbol
Failed to load files and symbols.
+23 −3
Split
@@ -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;
}