From 92655603877e0743516b2218cf67cb011afcc7b5 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 11 Oct 2008 20:47:17 +0200 Subject: recognize smileys with proper boundaries only FS#1489 darcs-hash:20081011184717-7ad00-0f910f4d061e00ccfdf722a3f971656da1b7979b.gz --- .../cases/inc/parser/parser_replacements.test.php | 66 ++++++++++++++++++---- 1 file changed, 55 insertions(+), 11 deletions(-) (limited to '_test') diff --git a/_test/cases/inc/parser/parser_replacements.test.php b/_test/cases/inc/parser/parser_replacements.test.php index efd20f397..1534f9ce8 100644 --- a/_test/cases/inc/parser/parser_replacements.test.php +++ b/_test/cases/inc/parser/parser_replacements.test.php @@ -59,18 +59,32 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser { $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } - // - function testSingleSmiley() { + function testSingleSmileyFail() { $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)'))); $this->P->parse('abc:-)xyz'); $calls = array ( array('document_start',array()), array('p_open',array()), - array('cdata',array("\n".'abc')), + array('cdata',array("\nabc:-)xyz\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleSmiley() { + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)'))); + $this->P->parse('abc :-) xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), array('smiley',array(':-)')), - array('cdata',array('xyz'."\n")), + array('cdata',array(' xyz'."\n")), array('p_close',array()), array('document_end',array()), ); @@ -78,37 +92,67 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser { $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } - function testMultipleSmileys() { + function testMultipleSmileysFail() { $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)','^_^'))); $this->P->parse('abc:-)x^_^yz'); $calls = array ( array('document_start',array()), array('p_open',array()), - array('cdata',array("\n".'abc')), + array('cdata',array("\nabc:-)x^_^yz\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultipleSmileys() { + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)','^_^'))); + $this->P->parse('abc :-) x ^_^ yz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), array('smiley',array(':-)')), - array('cdata',array('x')), + array('cdata',array(' x ')), array('smiley',array('^_^')), - array('cdata',array('yz'."\n")), + array('cdata',array(' yz'."\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testBackslashSmileyFail() { + // This smiley is really :-\\ but escaping makes like interesting + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-\\\\'))); + $this->P->parse('abc:-\\\xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\nabc".':-\\\\'."xyz\n")), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } function testBackslashSmiley() { // This smiley is really :-\\ but escaping makes like interesting $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-\\\\'))); - $this->P->parse('abc:-\\\xyz'); + $this->P->parse('abc :-\\\ xyz'); $calls = array ( array('document_start',array()), array('p_open',array()), - array('cdata',array("\n".'abc')), + array('cdata',array("\n".'abc ')), array('smiley',array(':-\\\\')), - array('cdata',array('xyz'."\n")), + array('cdata',array(' xyz'."\n")), array('p_close',array()), array('document_end',array()), ); -- cgit v1.2.3