summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_test/cases/inc/mail_isvalid.test.php30
-rw-r--r--_test/cases/inc/parser/parser.inc.php1
-rw-r--r--_test/cases/inc/parser/parser_links.test.php15
3 files changed, 46 insertions, 0 deletions
diff --git a/_test/cases/inc/mail_isvalid.test.php b/_test/cases/inc/mail_isvalid.test.php
new file mode 100644
index 000000000..9cb5d0b97
--- /dev/null
+++ b/_test/cases/inc/mail_isvalid.test.php
@@ -0,0 +1,30 @@
+<?php
+// use no mbstring help here
+require_once DOKU_INC.'inc/mail.php';
+
+class mail_isvalid extends UnitTestCase {
+
+
+ function test1(){
+ // we test multiple cases here - format: string, repl, additional, test
+ $tests = array();
+ $tests[] = array('bugs@php.net',true);
+ $tests[] = array('~someone@somewhere.com',true);
+ $tests[] = array('no+body.here@somewhere.com.au',true);
+ $tests[] = array("rfc2822+allthesechars_#*!'`/-={}are.legal@somewhere.com.au",true);
+ $tests[] = array('bugs@php.net1',false);
+ $tests[] = array('.bugs@php.net1',false);
+ $tests[] = array('bu..gs@php.net',false);
+ $tests[] = array('bugs@php..net',false);
+ $tests[] = array('bugs@.php.net',false);
+ $tests[] = array('bugs@php.net.',false);
+ $tests[] = array('bu(g)s@php.net1',false);
+ $tests[] = array('bu[g]s@php.net1',false);
+
+ foreach($tests as $test){
+ $this->assertEqual($test[0].'('.mail_isvalid($test[0]).')',$test[0].'('.(int)$test[1].')');
+ }
+ }
+
+}
+//Setup VIM: ex: et ts=4 enc=utf-8 :
diff --git a/_test/cases/inc/parser/parser.inc.php b/_test/cases/inc/parser/parser.inc.php
index 5576aeece..48f436e28 100644
--- a/_test/cases/inc/parser/parser.inc.php
+++ b/_test/cases/inc/parser/parser.inc.php
@@ -11,6 +11,7 @@
require_once DOKU_INC . 'inc/parser/parser.php';
require_once DOKU_INC . 'inc/parser/handler.php';
require_once DOKU_INC . 'inc/events.php';
+require_once DOKU_INC . 'inc/mail.php';
//require_once DOKU . 'parser/renderer.php';
//Mock::generate('Doku_Renderer');
diff --git a/_test/cases/inc/parser/parser_links.test.php b/_test/cases/inc/parser/parser_links.test.php
index c98296bfd..7bd0e7f16 100644
--- a/_test/cases/inc/parser/parser_links.test.php
+++ b/_test/cases/inc/parser/parser_links.test.php
@@ -97,6 +97,21 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
+ function testEmailRFC2822() {
+ $this->P->addMode('emaillink',new Doku_Parser_Mode_Emaillink());
+ $this->P->parse("Foo <~fix+bug's.for/ev{e}r@php.net> Bar");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'Foo ')),
+ array('emaillink',array("~fix+bug's.for/ev{e}r@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");