Make TextHelper::autoLink() work properly with umlauts.

This commit is contained in:
euromark 2013-09-27 14:48:57 +02:00
parent ad1b80645d
commit 2a954b6095
2 changed files with 13 additions and 5 deletions

View file

@ -241,6 +241,14 @@ class TextHelperTest extends CakeTestCase {
'Text with a url http://www.not--work.com and more',
'Text with a url <a href="http://www.not--work.com">http://www.not--work.com</a> and more',
),
array(
'Text with a partial www.küchenschöhn-not-working.de URL',
'Text with a partial <a href="http://www.küchenschöhn-not-working.de">www.küchenschöhn-not-working.de</a> URL'
),
array(
'Text with a partial http://www.küchenschöhn-not-working.de URL',
'Text with a partial <a href="http://www.küchenschöhn-not-working.de">http://www.küchenschöhn-not-working.de</a> URL'
)
);
}
@ -383,7 +391,7 @@ TEXT;
TEXT;
$result = $this->Text->autoParagraph($text);
$this->assertEquals($expected, $result);
$this->assertTextEquals($expected, $result);
$result = $this->Text->autoParagraph($text);
$text = 'This is a <BR id="test"/><br class="test"> test text';
$expected = <<<TEXT
@ -392,7 +400,7 @@ TEXT;
TEXT;
$result = $this->Text->autoParagraph($text);
$this->assertEquals($expected, $result);
$this->assertTextEquals($expected, $result);
$text = <<<TEXT
This is a test text.
This is a line return.
@ -403,7 +411,7 @@ This is a line return.</p>
TEXT;
$result = $this->Text->autoParagraph($text);
$this->assertEquals($expected, $result);
$this->assertTextEquals($expected, $result);
$text = <<<TEXT
This is a test text.
@ -415,7 +423,7 @@ TEXT;
TEXT;
$result = $this->Text->autoParagraph($text);
$this->assertEquals($expected, $result);
$this->assertTextEquals($expected, $result);
}
}

View file

@ -105,7 +105,7 @@ class TextHelper extends AppHelper {
$this->_placeholders = array();
$options += array('escape' => true);
$pattern = '#(?<!href="|src="|">)((?:https?|ftp|nntp)://[a-z0-9.\-:]+(?:[/?][^\s<]*)?)#i';
$pattern = '#(?<!href="|src="|">)((?:https?|ftp|nntp)://[\p{L}0-9.\-:]+(?:[/?][^\s<]*)?)#ui';
$text = preg_replace_callback(
$pattern,
array(&$this, '_insertPlaceHolder'),