summaryrefslogtreecommitdiff
path: root/inc/parser/tests/parser_formatting.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_formatting.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_formatting.test.php')
-rw-r--r--inc/parser/tests/parser_formatting.test.php271
1 files changed, 271 insertions, 0 deletions
diff --git a/inc/parser/tests/parser_formatting.test.php b/inc/parser/tests/parser_formatting.test.php
new file mode 100644
index 000000000..ca89813db
--- /dev/null
+++ b/inc/parser/tests/parser_formatting.test.php
@@ -0,0 +1,271 @@
+<?php
+require_once 'parser.test.php';
+
+class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
+
+ function TestOfDoku_Parser_Formatting() {
+ $this->UnitTestCase('TestOfDoku_Parser_Formatting');
+ }
+
+ function testStrong() {
+ $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
+ $this->P->parse('abc **bar** def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('strong_open',array()),
+ array('cdata',array('bar')),
+ array('strong_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 testNotStrong() {
+ $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
+ $this->P->parse('abc **bar def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc **bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testEm() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //bar// def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ 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 testNotEm() {
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc //bar def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc //bar 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');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('underline_open',array()),
+ array('cdata',array('bar')),
+ array('underline_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 testNotUnderline() {
+ $this->P->addMode('underline',new Doku_Parser_Mode_Formatting('underline'));
+ $this->P->parse('abc __bar def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc __bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testMonospace() {
+ $this->P->addMode('monospace',new Doku_Parser_Mode_Formatting('monospace'));
+ $this->P->parse("abc ''bar'' def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('monospace_open',array()),
+ array('cdata',array('bar')),
+ array('monospace_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 testNotMonospace() {
+ $this->P->addMode('monospace',new Doku_Parser_Mode_Formatting('monospace'));
+ $this->P->parse("abc ''bar def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc ''bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testSubscript() {
+ $this->P->addMode('subscript',new Doku_Parser_Mode_Formatting('subscript'));
+ $this->P->parse('abc <sub>bar</sub> def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('subscript_open',array()),
+ array('cdata',array('bar')),
+ array('subscript_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 testNotSubscript() {
+ $this->P->addMode('subscript',new Doku_Parser_Mode_Formatting('subscript'));
+ $this->P->parse('abc <sub>bar def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc <sub>bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testSuperscript() {
+ $this->P->addMode('superscript',new Doku_Parser_Mode_Formatting('superscript'));
+ $this->P->parse("abc <sup>bar</sup> def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('superscript_open',array()),
+ array('cdata',array('bar')),
+ array('superscript_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 testNotSuperscript() {
+ $this->P->addMode('superscript',new Doku_Parser_Mode_Formatting('superscript'));
+ $this->P->parse("abc <sup>bar def");
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc <sup>bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testDeleted() {
+ $this->P->addMode('deleted',new Doku_Parser_Mode_Formatting('deleted'));
+ $this->P->parse('abc <del>bar</del> def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('deleted_open',array()),
+ array('cdata',array('bar')),
+ array('deleted_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 testNotDeleted() {
+ $this->P->addMode('deleted',new Doku_Parser_Mode_Formatting('deleted'));
+ $this->P->parse('abc <del>bar def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\nabc <del>bar def\n")),
+ array('p_close',array()),
+ array('document_end',array()),
+ );
+ $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls);
+ }
+
+ function testNestedFormatting() {
+ $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
+ $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis'));
+ $this->P->parse('abc **a//b//c** def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('strong_open',array()),
+ array('cdata',array('a')),
+ array('emphasis_open',array()),
+ array('cdata',array('b')),
+ array('emphasis_close',array()),
+ array('cdata',array('c')),
+ array('strong_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 testIllegalNestedFormatting() {
+ $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
+ $this->P->parse('abc **a**b**c** def');
+ $calls = array (
+ array('document_start',array()),
+ array('p_open',array()),
+ array('cdata',array("\n".'abc ')),
+ array('strong_open',array()),
+ array('cdata',array('a')),
+ array('strong_close',array()),
+ array('cdata',array('b')),
+ array('strong_open',array()),
+ array('cdata',array('c')),
+ array('strong_close',array()),
+ array('cdata',array(' def'."\n")),
+ array('p_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_Formatting();
+ $test->run(new HtmlReporter());
+}