diff options
author | andi <andi@splitbrain.org> | 2005-04-03 09:45:21 +0200 |
---|---|---|
committer | andi <andi@splitbrain.org> | 2005-04-03 09:45:21 +0200 |
commit | 3ae0dd35df72193095029d06f5459b5243430140 (patch) | |
tree | ee4a1c86f3d881bd3656df2e5a292f57e9cc23c2 /inc/parser/tests/parser_replacements.test.php | |
parent | 0e1c636e20bd809a1d388e0c6f630b0ecda7086b (diff) | |
download | rpg-3ae0dd35df72193095029d06f5459b5243430140.tar.gz rpg-3ae0dd35df72193095029d06f5459b5243430140.tar.bz2 |
added unit tests
darcs-hash:20050403074521-9977f-d1a3c3a1200cab2d28789490ab3b49cd48691688.gz
Diffstat (limited to 'inc/parser/tests/parser_replacements.test.php')
-rw-r--r-- | inc/parser/tests/parser_replacements.test.php | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/inc/parser/tests/parser_replacements.test.php b/inc/parser/tests/parser_replacements.test.php new file mode 100644 index 000000000..0aae4496b --- /dev/null +++ b/inc/parser/tests/parser_replacements.test.php @@ -0,0 +1,377 @@ +<?php +require_once 'parser.test.php'; + +class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser { + + function TestOfDoku_Parser_Replacements() { + $this->UnitTestCase('TestOfDoku_Parser_Replacements'); + } + + + function testSingleAcronym() { + $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOOBAR'))); + $this->P->parse('abc FOOBAR xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), + array('acronym',array('FOOBAR')), + array('cdata',array(' xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testAlmostAnAcronym() { + $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOOBAR'))); + $this->P->parse('abcFOOBARxyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abcFOOBARxyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultipleAcronyms() { + $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOO','BAR'))); + $this->P->parse('abc FOO def BAR xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), + array('acronym',array('FOO')), + array('cdata',array(' def ')), + array('acronym',array('BAR')), + array('cdata',array(' xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + + } + // + + function testSingleSmiley() { + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)'))); + $this->P->parse('abc:-)xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc')), + array('smiley',array(':-)')), + array('cdata',array('xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultipleSmileys() { + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)','^_^'))); + $this->P->parse('abc:-)x^_^yz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc')), + array('smiley',array(':-)')), + array('cdata',array('x')), + array('smiley',array('^_^')), + array('cdata',array('yz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + + } + + function testBackslashSmiley() { + // This smiley is really :-\\ but escaping makes like interesting + $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-\\\\'))); + $this->P->parse('abc:-\\\xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc')), + array('smiley',array(':-\\\\')), + array('cdata',array('xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleWordblock() { + $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT'))); + $this->P->parse('abc CAT xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), + array('wordblock',array('CAT')), + array('cdata',array(' xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testWordblockCase() { + $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT'))); + $this->P->parse('abc cat xyz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), + array('wordblock',array('cat')), + array('cdata',array(' xyz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultipleWordblock() { + $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT','dog'))); + $this->P->parse('abc cat x DOG yz'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'abc ')), + array('wordblock',array('cat')), + array('cdata',array(' x ')), + array('wordblock',array('DOG')), + array('cdata',array(' yz'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleEntity() { + $this->P->addMode('entity',new Doku_Parser_Mode_Entity(array('->'))); + $this->P->parse('x -> y'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'x ')), + array('entity',array('->')), + array('cdata',array(' y'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultipleEntities() { + $this->P->addMode('entity',new Doku_Parser_Mode_Entity(array('->','<-'))); + $this->P->parse('x -> y <- z'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'x ')), + array('entity',array('->')), + array('cdata',array(' y ')), + array('entity',array('<-')), + array('cdata',array(' z'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testMultiplyEntity() { + $this->P->addMode('multiplyentity',new Doku_Parser_Mode_MultiplyEntity()); + $this->P->parse('Foo 10x20 Bar'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('multiplyentity',array(10,20)), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleQuoteOpening() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse("Foo 'hello Bar"); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('singlequoteopening',array()), + array('cdata',array('hello Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleQuoteClosing() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse("Foo hello' Bar"); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo hello')), + array('singlequoteclosing',array()), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testSingleQuotes() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse("Foo 'hello' Bar"); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('singlequoteopening',array()), + array('cdata',array('hello')), + array('singlequoteclosing',array()), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testDoubleQuoteOpening() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse('Foo "hello Bar'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('doublequoteopening',array()), + array('cdata',array('hello Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testDoubleQuoteClosing() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse('Foo hello" Bar'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo hello')), + array('doublequoteclosing',array()), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testDoubleQuotes() { + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse('Foo "hello" Bar'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('doublequoteopening',array()), + array('cdata',array('hello')), + array('doublequoteclosing',array()), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testHR() { + $this->P->addMode('hr',new Doku_Parser_Mode_HR()); + $this->P->parse("Foo \n ---- \n Bar"); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('p_close',array()), + array('hr',array()), + array('p_open',array()), + array('cdata',array(' Bar'."\n")), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testHREol() { + $this->P->addMode('hr',new Doku_Parser_Mode_HR()); + $this->P->parse("Foo \n----\n Bar"); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('p_close',array()), + array('hr',array()), + array('p_open',array()), + array('cdata',array(' Bar'."\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_Replacements(); + $test->run(new HtmlReporter()); +} |