diff options
-rw-r--r-- | _test/cases/inc/parser/parser_links.test.php | 16 | ||||
-rw-r--r-- | inc/mail.php | 4 |
2 files changed, 18 insertions, 2 deletions
diff --git a/_test/cases/inc/parser/parser_links.test.php b/_test/cases/inc/parser/parser_links.test.php index d255437f8..62e3b3b99 100644 --- a/_test/cases/inc/parser/parser_links.test.php +++ b/_test/cases/inc/parser/parser_links.test.php @@ -112,6 +112,22 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser { $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); } + function testEmailCase() { + $this->P->addMode('emaillink',new Doku_Parser_Mode_Emaillink()); + $this->P->parse("Foo <bugs@pHp.net> Bar"); + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('emaillink',array('bugs@pHp.net', NULL)), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); + } + + function testInternalLinkOneChar() { $this->P->addMode('internallink',new Doku_Parser_Mode_InternalLink()); $this->P->parse("Foo [[l]] Bar"); diff --git a/inc/mail.php b/inc/mail.php index d908c009c..1f4acf346 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -180,8 +180,8 @@ function mail_encode_address($string,$header='',$names=true){ // NOTE: there is an unquoted '/' in RFC2822_ATEXT, it must remain unquoted to be used in the parser // the pattern uses non-capturing groups as captured groups aren't allowed in the parser // select pattern delimiters with care! -if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9a-z!#$%&'*+/=?^_`{|}~-"); -if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?:[0-9a-z][0-9a-z-]*\.)+(?:[a-z]{2,4}|museum|travel)'); +if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9a-zA-Z!#$%&'*+/=?^_`{|}~-"); +if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?i:[0-9a-z][0-9a-z-]*\.)+(?i:[a-z]{2,4}|museum|travel)'); function mail_isvalid($email){ return preg_match('<^'.PREG_PATTERN_VALID_EMAIL.'$>i', $email); |