summaryrefslogtreecommitdiff
path: root/inc/parser/tests/parser_tocsections.test.php
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-04-03 09:45:21 +0200
committerandi <andi@splitbrain.org>2005-04-03 09:45:21 +0200
commit3ae0dd35df72193095029d06f5459b5243430140 (patch)
treeee4a1c86f3d881bd3656df2e5a292f57e9cc23c2 /inc/parser/tests/parser_tocsections.test.php
parent0e1c636e20bd809a1d388e0c6f630b0ecda7086b (diff)
downloadrpg-3ae0dd35df72193095029d06f5459b5243430140.tar.gz
rpg-3ae0dd35df72193095029d06f5459b5243430140.tar.bz2
added unit tests
darcs-hash:20050403074521-9977f-d1a3c3a1200cab2d28789490ab3b49cd48691688.gz
Diffstat (limited to 'inc/parser/tests/parser_tocsections.test.php')
-rw-r--r--inc/parser/tests/parser_tocsections.test.php516
1 files changed, 516 insertions, 0 deletions
diff --git a/inc/parser/tests/parser_tocsections.test.php b/inc/parser/tests/parser_tocsections.test.php
new file mode 100644
index 000000000..64051e2ad
--- /dev/null
+++ b/inc/parser/tests/parser_tocsections.test.php
@@ -0,0 +1,516 @@
+<?php
+require_once 'parser.test.php';
+
+class TestOfDoku_Parser_TocSections extends TestOfDoku_Parser {
+
+ function TestOfDoku_Parser_TocSections() {
+ $this->UnitTestCase('TestOfDoku_Parser_TocSections');
+ }
+
+
+ function testNoToc() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('notoc',new Doku_Parser_Mode_NoToc());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+~~NOTOC~~
+def
+====== HeaderX ======
+X
+====== HeaderY ======
+Y
+====== HeaderZ ======
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocSameLevel() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+====== HeaderX ======
+X
+====== HeaderY ======
+Y
+====== HeaderZ ======
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderX ')),
+ array('tocitem_close',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderY ')),
+ array('tocitem_close',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderZ ')),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocDeepening() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+====== HeaderX ======
+X
+===== HeaderY =====
+Y
+==== HeaderZ ====
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderX ')),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderY ')),
+ array('tocbranch_open',array(3)),
+ array('tocitem_open',array(3)),
+ array('tocelement',array(3,' HeaderZ ')),
+ array('tocitem_close',array(3)),
+ array('tocbranch_close',array(3)),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',3)),
+ array('section_open',array(3)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocShallower() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+==== HeaderX ====
+X
+===== HeaderY =====
+Y
+====== HeaderZ ======
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1,TRUE)),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2,TRUE)),
+ array('tocbranch_open',array(3)),
+ array('tocitem_open',array(3)),
+ array('tocelement',array(3,' HeaderX ')),
+ array('tocitem_close',array(3)),
+ array('tocbranch_close',array(3)),
+ array('tocitem_close',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderY ')),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderZ ')),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',3)),
+ array('section_open',array(3)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocNesting() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+====== HeaderX ======
+X
+===== HeaderY =====
+Y
+====== HeaderZ ======
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderX ')),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderY ')),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderZ ')),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocNestingInverted() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+===== HeaderX =====
+X
+====== HeaderY ======
+Y
+===== HeaderZ =====
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1,TRUE)),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderX ')),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderY ')),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderZ ')),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderX ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testTocAllLevels() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse('abc
+def
+====== HeaderV ======
+V
+===== HeaderW =====
+W
+==== HeaderX ====
+X
+=== HeaderY ===
+Y
+== HeaderZ ==
+Z
+');
+ $calls = array(
+ array('document_start',array()),
+ array('toc_open',array()),
+ array('tocbranch_open',array(1)),
+ array('tocitem_open',array(1)),
+ array('tocelement',array(1,' HeaderV ')),
+ array('tocbranch_open',array(2)),
+ array('tocitem_open',array(2)),
+ array('tocelement',array(2,' HeaderW ')),
+ array('tocbranch_open',array(3)),
+ array('tocitem_open',array(3)),
+ array('tocelement',array(3,' HeaderX ')),
+ array('tocitem_close',array(3)),
+ array('tocbranch_close',array(3)),
+ array('tocitem_close',array(2)),
+ array('tocbranch_close',array(2)),
+ array('tocitem_close',array(1)),
+ array('tocbranch_close',array(1)),
+ array('toc_close',array()),
+ array('p_open',array()),
+ array('cdata',array("abc")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('cdata',array("def")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('header',array(' HeaderV ',1)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("V")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderW ',2)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("W")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderX ',3)),
+ array('section_open',array(3)),
+ array('p_open',array()),
+ array('cdata',array("X")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderY ',4)),
+ array('section_open',array(4)),
+ array('p_open',array()),
+ array('cdata',array("Y")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array(' HeaderZ ',5)),
+ array('section_open',array(5)),
+ array('p_open',array()),
+ array('cdata',array("Z")),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('p_open',array()),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+}
+
+/**
+* Conditional test runner
+*/
+if (!defined('TEST_RUNNING')) {
+ define('TEST_RUNNING', true);
+ $test = &new TestOfDoku_Parser_TocSections();
+ $test->run(new HtmlReporter());
+}