From d1acd0f3da9a70ec64a30a885628c86ee36ee0fa Mon Sep 17 00:00:00 2001
From: Chris Smith <chris.eureka@jalakai.co.uk>
Date: Sun, 8 Mar 2009 17:19:37 +0100
Subject: [PATCH] additional emphasis test cases, plus add includes for
 init.php and confutils.php into parser test setup

darcs-hash:20090308161937-f07c6-754e74ffafdfbb7df93cc61a36c43c966f1c531e.gz
---
 _test/cases/inc/parser/parser.inc.php         |  2 +
 .../inc/parser/parser_formatting.test.php     | 99 +++++++++++++++++++
 2 files changed, 101 insertions(+)

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');
-- 
GitLab