sforkowany z mirror/friendica
Merge pull request #6857 from friendica/MrPetovan-patch-autolinker-domain
Remove new lines from domain name part of autolinker regular expression in Util\Strings2022.09-rc
commit
c8331eb068
|
@ -358,17 +358,17 @@ class Strings
|
|||
return '@(?xi)
|
||||
(?<![=\'\]"/]) # Not preceded by [, =, \', ], ", /
|
||||
\b
|
||||
( # Capture 1: entire matched URL
|
||||
https?:// # http or https protocol
|
||||
( # Capture 1: entire matched URL
|
||||
https?:// # http or https protocol
|
||||
(?:
|
||||
[^/.][^/]+[.][^/]+/? # looks like domain name followed by a slash
|
||||
[^/\s.][^/\s]+[.][^\s/]+/? # looks like domain name followed by a slash
|
||||
)
|
||||
(?: # One or more:
|
||||
[^\s()<>]+ # Run of non-space, non-()<>
|
||||
| # or
|
||||
\(([^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels
|
||||
| # or
|
||||
[^\s`!()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars
|
||||
(?: # One or more:
|
||||
[^\s()<>]+ # Run of non-space, non-()<>
|
||||
| # or
|
||||
\(([^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels
|
||||
| # or
|
||||
[^\s`!()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars
|
||||
)*
|
||||
)@';
|
||||
}
|
||||
|
|
|
@ -86,6 +86,22 @@ class BBCodeTest extends MockedTest
|
|||
'data' => 'http://example/path',
|
||||
'assertHTML' => false
|
||||
],
|
||||
'bug-6857-domain-start' => [
|
||||
'data' => "http://\nexample.com",
|
||||
'assertHTML' => false
|
||||
],
|
||||
'bug-6857-domain-end' => [
|
||||
'data' => "http://example\n.com",
|
||||
'assertHTML' => false
|
||||
],
|
||||
'bug-6857-tld' => [
|
||||
'data' => "http://example.\ncom",
|
||||
'assertHTML' => false
|
||||
],
|
||||
'bug-6857-end' => [
|
||||
'data' => "http://example.com\ntest",
|
||||
'assertHTML' => false
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -100,12 +116,11 @@ class BBCodeTest extends MockedTest
|
|||
public function testAutoLinking($data, $assertHTML)
|
||||
{
|
||||
$output = BBCode::convert($data);
|
||||
$assert = '<a href="' . $data . '" target="_blank">' . $data . '</a>';
|
||||
if ($assertHTML) {
|
||||
$assert = '<a href="' . $data . '" target="_blank">' . $data . '</a>';
|
||||
$this->assertEquals($assert, $output);
|
||||
} else {
|
||||
$assert = $data;
|
||||
$this->assertNotEquals($assert, $output);
|
||||
}
|
||||
|
||||
$this->assertEquals($assert, $output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue