summaryrefslogtreecommitdiff
path: root/_test/tests/inc/parser/parser_headers.test.php
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2012-06-29 17:51:09 +0100
committerAnika Henke <anika@selfthinker.org>2012-06-29 17:51:09 +0100
commit0c06a181819249c6a4a2a6c60e13f739df1f2253 (patch)
tree859377c572d0acbfc520b02304ef515bf3aebbe0 /_test/tests/inc/parser/parser_headers.test.php
parentef7e36e4fd2a168977754f0aac1d855fb651f104 (diff)
parent5d0aaf958325f500ce69cfb79e69eb0d8f83fdeb (diff)
downloadrpg-0c06a181819249c6a4a2a6c60e13f739df1f2253.tar.gz
rpg-0c06a181819249c6a4a2a6c60e13f739df1f2253.tar.bz2
Merge branch 'master' of github.com:splitbrain/dokuwiki into frontend_improvements
Conflicts: lib/tpl/dokuwiki/css/basic.css
Diffstat (limited to '_test/tests/inc/parser/parser_headers.test.php')
-rw-r--r--_test/tests/inc/parser/parser_headers.test.php282
1 files changed, 282 insertions, 0 deletions
diff --git a/_test/tests/inc/parser/parser_headers.test.php b/_test/tests/inc/parser/parser_headers.test.php
new file mode 100644
index 000000000..a1bf7d2ba
--- /dev/null
+++ b/_test/tests/inc/parser/parser_headers.test.php
@@ -0,0 +1,282 @@
+<?php
+require_once 'parser.inc.php';
+
+class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
+
+ function testHeader1() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ====== Header ====== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',1,6)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader2() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ===== Header ===== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',2,6)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader3() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ==== Header ==== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',3,6)),
+ array('section_open',array(3)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader4() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n === Header === \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',4,6)),
+ array('section_open',array(4)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader5() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n == Header == \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',5,6)),
+ array('section_open',array(5)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader2UnevenSmaller() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ===== Header == \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',2,6)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader2UnevenBigger() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ===== Header =========== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',2,6)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeaderLarge() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ======= Header ======= \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',1,6)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeaderSmall() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n= Header =\n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc \n= Header =\n def")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+
+ function testHeader1Mixed() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n====== == Header == ======\n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('== Header ==',1,6)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeader5Mixed() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n== ====== Header ====== ==\n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('====== Header ======',5,6)),
+ array('section_open',array(5)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+ function testHeaderMultiline() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n== ====== Header\n ====== ==\n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc \n== ====== Header")),
+ array('p_close',array()),
+ array('header',array('',1,23)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+# function testNoToc() {
+# $this->P->addMode('notoc',new Doku_Parser_Mode_NoToc());
+# $this->P->parse('abc ~~NOTOC~~ def');
+# $this->assertFalse($this->H->meta['toc']);
+# }
+
+ function testHeader1Eol() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
+ $this->P->parse("abc \n ====== Header ====== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array('abc ')),
+ array('p_close',array()),
+ array('header',array('Header',1, 6)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array(' def')),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+
+ }
+
+ function testHeaderMulti2() {
+ $this->P->addMode('header',new Doku_Parser_Mode_Header());
+ $this->P->parse("abc \n ====== Header ====== \n def abc \n ===== Header2 ===== \n def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ")),
+ array('p_close',array()),
+ array('header',array('Header',1,6)),
+ array('section_open',array(1)),
+ array('p_open',array()),
+ array('cdata',array("\n def abc ")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('header',array('Header2',2,39)),
+ array('section_open',array(2)),
+ array('p_open',array()),
+ array('cdata',array("\n def")),
+ array('p_close',array()),
+ array('section_close',array()),
+ array('document_end',array())
+ );
+ $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
+ }
+
+}
+