summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_test/cases/inc/parser/parser.inc.php2
-rw-r--r--_test/cases/inc/parser/parser_formatting.test.php99
2 files changed, 101 insertions, 0 deletions
diff --git a/_test/cases/inc/parser/parser.inc.php b/_test/cases/inc/parser/parser.inc.php
index 48f436e28..45ab67f9f 100644
--- a/_test/cases/inc/parser/parser.inc.php
+++ b/_test/cases/inc/parser/parser.inc.php
@@ -8,6 +8,8 @@
/**
* Includes
*/
+require_once DOKU_INC . 'inc/init.php';
+require_once DOKU_INC . 'inc/confutils.php';
require_once DOKU_INC . 'inc/parser/parser.php';
require_once DOKU_INC . 'inc/parser/handler.php';
require_once DOKU_INC . 'inc/events.php';
diff --git a/_test/cases/inc/parser/parser_formatting.test.php b/_test/cases/inc/parser/parser_formatting.test.php
index 3c7449a35..b85a2d394 100644
--- a/_test/cases/inc/parser/parser_formatting.test.php
+++ b/_test/cases/inc/parser/parser_formatting.test.php
@@ -54,6 +54,75 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
}
+ function testEmColon() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //Тест: // def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('emphasis_open',array()),
+ array('cdata',array('Тест: ')),
+ array('emphasis_close',array()),
+ array('cdata',array(' def'."\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testEmSingleChar() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //b// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('emphasis_open',array()),
+ array('cdata',array('b')),
+ array('emphasis_close',array()),
+ array('cdata',array(' def'."\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testEmWithUnknownSchema() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //foo:// bar// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('emphasis_open',array()),
+ array('cdata',array('foo:')),
+ array('emphasis_close',array()),
+ array('cdata',array(' bar// def'."\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testEmWithKnownSchema() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->addMode('externallink',new Doku_Parser_Mode_ExternalLink());
+ $this->P->parse('abc //http://www.domain.com bar// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('emphasis_open',array()),
+ array('cdata',array('http:// bar')),
+ array('emphasis_close',array()),
+ array('cdata',array(' def'."\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
function testNotEm() {
$this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
$this->P->parse('abc //bar def');
@@ -67,6 +136,36 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
}
+ function testNotEmSchemaAtOpen() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc foo://bar// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc foo:')),
+ array('emphasis_open',array()),
+ array('cdata',array('bar')),
+ array('emphasis_close',array()),
+ array('cdata',array(' def'."\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testNotEmSchemaAtClose() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //http:// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc //http:// def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
function testUnderline() {
$this->P->addMode('underline',new Doku_Parser_Mode_Formatting('underline'));
$this->P->parse('abc __bar__ def');