1*f8369d7dSTobias Sarnowski<?php 2*f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php'; 3*f8369d7dSTobias Sarnowski 4*f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Replacements extends TestOfDoku_Parser { 5*f8369d7dSTobias Sarnowski 6*f8369d7dSTobias Sarnowski function testSingleAcronym() { 7*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOOBAR'))); 8*f8369d7dSTobias Sarnowski $this->P->parse('abc FOOBAR xyz'); 9*f8369d7dSTobias Sarnowski 10*f8369d7dSTobias Sarnowski $calls = array ( 11*f8369d7dSTobias Sarnowski array('document_start',array()), 12*f8369d7dSTobias Sarnowski array('p_open',array()), 13*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 14*f8369d7dSTobias Sarnowski array('acronym',array('FOOBAR')), 15*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 16*f8369d7dSTobias Sarnowski array('p_close',array()), 17*f8369d7dSTobias Sarnowski array('document_end',array()), 18*f8369d7dSTobias Sarnowski ); 19*f8369d7dSTobias Sarnowski 20*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 21*f8369d7dSTobias Sarnowski } 22*f8369d7dSTobias Sarnowski 23*f8369d7dSTobias Sarnowski function testAlmostAnAcronym() { 24*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOOBAR'))); 25*f8369d7dSTobias Sarnowski $this->P->parse('abcFOOBARxyz'); 26*f8369d7dSTobias Sarnowski 27*f8369d7dSTobias Sarnowski $calls = array ( 28*f8369d7dSTobias Sarnowski array('document_start',array()), 29*f8369d7dSTobias Sarnowski array('p_open',array()), 30*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abcFOOBARxyz')), 31*f8369d7dSTobias Sarnowski array('p_close',array()), 32*f8369d7dSTobias Sarnowski array('document_end',array()), 33*f8369d7dSTobias Sarnowski ); 34*f8369d7dSTobias Sarnowski 35*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 36*f8369d7dSTobias Sarnowski } 37*f8369d7dSTobias Sarnowski 38*f8369d7dSTobias Sarnowski function testPickAcronymCorrectly() { 39*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOO'))); 40*f8369d7dSTobias Sarnowski $this->P->parse('FOOBAR FOO'); 41*f8369d7dSTobias Sarnowski 42*f8369d7dSTobias Sarnowski $calls = array ( 43*f8369d7dSTobias Sarnowski array('document_start',array()), 44*f8369d7dSTobias Sarnowski array('p_open',array()), 45*f8369d7dSTobias Sarnowski array('cdata',array("\n".'FOOBAR ')), 46*f8369d7dSTobias Sarnowski array('acronym',array('FOO')), 47*f8369d7dSTobias Sarnowski array('cdata',array('')), 48*f8369d7dSTobias Sarnowski array('p_close',array()), 49*f8369d7dSTobias Sarnowski array('document_end',array()), 50*f8369d7dSTobias Sarnowski ); 51*f8369d7dSTobias Sarnowski 52*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 53*f8369d7dSTobias Sarnowski } 54*f8369d7dSTobias Sarnowski 55*f8369d7dSTobias Sarnowski function testMultipleAcronyms() { 56*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOO','BAR'))); 57*f8369d7dSTobias Sarnowski $this->P->parse('abc FOO def BAR xyz'); 58*f8369d7dSTobias Sarnowski 59*f8369d7dSTobias Sarnowski $calls = array ( 60*f8369d7dSTobias Sarnowski array('document_start',array()), 61*f8369d7dSTobias Sarnowski array('p_open',array()), 62*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 63*f8369d7dSTobias Sarnowski array('acronym',array('FOO')), 64*f8369d7dSTobias Sarnowski array('cdata',array(' def ')), 65*f8369d7dSTobias Sarnowski array('acronym',array('BAR')), 66*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 67*f8369d7dSTobias Sarnowski array('p_close',array()), 68*f8369d7dSTobias Sarnowski array('document_end',array()), 69*f8369d7dSTobias Sarnowski ); 70*f8369d7dSTobias Sarnowski 71*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 72*f8369d7dSTobias Sarnowski 73*f8369d7dSTobias Sarnowski } 74*f8369d7dSTobias Sarnowski 75*f8369d7dSTobias Sarnowski function testMultipleAcronymsWithSubset1() { 76*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('FOO','A.FOO','FOO.1','A.FOO.1'))); 77*f8369d7dSTobias Sarnowski $this->P->parse('FOO A.FOO FOO.1 A.FOO.1'); 78*f8369d7dSTobias Sarnowski 79*f8369d7dSTobias Sarnowski $calls = array ( 80*f8369d7dSTobias Sarnowski array('document_start',array()), 81*f8369d7dSTobias Sarnowski array('p_open',array()), 82*f8369d7dSTobias Sarnowski array('cdata',array("\n")), 83*f8369d7dSTobias Sarnowski array('acronym',array('FOO')), 84*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 85*f8369d7dSTobias Sarnowski array('acronym',array('A.FOO')), 86*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 87*f8369d7dSTobias Sarnowski array('acronym',array('FOO.1')), 88*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 89*f8369d7dSTobias Sarnowski array('acronym',array('A.FOO.1')), 90*f8369d7dSTobias Sarnowski array('cdata',array('')), 91*f8369d7dSTobias Sarnowski array('p_close',array()), 92*f8369d7dSTobias Sarnowski array('document_end',array()), 93*f8369d7dSTobias Sarnowski ); 94*f8369d7dSTobias Sarnowski 95*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 96*f8369d7dSTobias Sarnowski } 97*f8369d7dSTobias Sarnowski 98*f8369d7dSTobias Sarnowski function testMultipleAcronymsWithSubset2() { 99*f8369d7dSTobias Sarnowski $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym(array('A.FOO.1','FOO.1','A.FOO','FOO'))); 100*f8369d7dSTobias Sarnowski $this->P->parse('FOO A.FOO FOO.1 A.FOO.1'); 101*f8369d7dSTobias Sarnowski 102*f8369d7dSTobias Sarnowski $calls = array ( 103*f8369d7dSTobias Sarnowski array('document_start',array()), 104*f8369d7dSTobias Sarnowski array('p_open',array()), 105*f8369d7dSTobias Sarnowski array('cdata',array("\n")), 106*f8369d7dSTobias Sarnowski array('acronym',array('FOO')), 107*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 108*f8369d7dSTobias Sarnowski array('acronym',array('A.FOO')), 109*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 110*f8369d7dSTobias Sarnowski array('acronym',array('FOO.1')), 111*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 112*f8369d7dSTobias Sarnowski array('acronym',array('A.FOO.1')), 113*f8369d7dSTobias Sarnowski array('cdata',array('')), 114*f8369d7dSTobias Sarnowski array('p_close',array()), 115*f8369d7dSTobias Sarnowski array('document_end',array()), 116*f8369d7dSTobias Sarnowski ); 117*f8369d7dSTobias Sarnowski 118*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 119*f8369d7dSTobias Sarnowski } 120*f8369d7dSTobias Sarnowski 121*f8369d7dSTobias Sarnowski function testSingleSmileyFail() { 122*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)'))); 123*f8369d7dSTobias Sarnowski $this->P->parse('abc:-)xyz'); 124*f8369d7dSTobias Sarnowski 125*f8369d7dSTobias Sarnowski $calls = array ( 126*f8369d7dSTobias Sarnowski array('document_start',array()), 127*f8369d7dSTobias Sarnowski array('p_open',array()), 128*f8369d7dSTobias Sarnowski array('cdata',array("\nabc:-)xyz")), 129*f8369d7dSTobias Sarnowski array('p_close',array()), 130*f8369d7dSTobias Sarnowski array('document_end',array()), 131*f8369d7dSTobias Sarnowski ); 132*f8369d7dSTobias Sarnowski 133*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 134*f8369d7dSTobias Sarnowski } 135*f8369d7dSTobias Sarnowski 136*f8369d7dSTobias Sarnowski function testSingleSmiley() { 137*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)'))); 138*f8369d7dSTobias Sarnowski $this->P->parse('abc :-) xyz'); 139*f8369d7dSTobias Sarnowski 140*f8369d7dSTobias Sarnowski $calls = array ( 141*f8369d7dSTobias Sarnowski array('document_start',array()), 142*f8369d7dSTobias Sarnowski array('p_open',array()), 143*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 144*f8369d7dSTobias Sarnowski array('smiley',array(':-)')), 145*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 146*f8369d7dSTobias Sarnowski array('p_close',array()), 147*f8369d7dSTobias Sarnowski array('document_end',array()), 148*f8369d7dSTobias Sarnowski ); 149*f8369d7dSTobias Sarnowski 150*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 151*f8369d7dSTobias Sarnowski } 152*f8369d7dSTobias Sarnowski 153*f8369d7dSTobias Sarnowski function testMultipleSmileysFail() { 154*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)','^_^'))); 155*f8369d7dSTobias Sarnowski $this->P->parse('abc:-)x^_^yz'); 156*f8369d7dSTobias Sarnowski 157*f8369d7dSTobias Sarnowski $calls = array ( 158*f8369d7dSTobias Sarnowski array('document_start',array()), 159*f8369d7dSTobias Sarnowski array('p_open',array()), 160*f8369d7dSTobias Sarnowski array('cdata',array("\nabc:-)x^_^yz")), 161*f8369d7dSTobias Sarnowski array('p_close',array()), 162*f8369d7dSTobias Sarnowski array('document_end',array()), 163*f8369d7dSTobias Sarnowski ); 164*f8369d7dSTobias Sarnowski 165*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 166*f8369d7dSTobias Sarnowski } 167*f8369d7dSTobias Sarnowski 168*f8369d7dSTobias Sarnowski function testMultipleSmileys() { 169*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-)','^_^'))); 170*f8369d7dSTobias Sarnowski $this->P->parse('abc :-) x ^_^ yz'); 171*f8369d7dSTobias Sarnowski 172*f8369d7dSTobias Sarnowski $calls = array ( 173*f8369d7dSTobias Sarnowski array('document_start',array()), 174*f8369d7dSTobias Sarnowski array('p_open',array()), 175*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 176*f8369d7dSTobias Sarnowski array('smiley',array(':-)')), 177*f8369d7dSTobias Sarnowski array('cdata',array(' x ')), 178*f8369d7dSTobias Sarnowski array('smiley',array('^_^')), 179*f8369d7dSTobias Sarnowski array('cdata',array(' yz')), 180*f8369d7dSTobias Sarnowski array('p_close',array()), 181*f8369d7dSTobias Sarnowski array('document_end',array()), 182*f8369d7dSTobias Sarnowski ); 183*f8369d7dSTobias Sarnowski 184*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 185*f8369d7dSTobias Sarnowski } 186*f8369d7dSTobias Sarnowski 187*f8369d7dSTobias Sarnowski function testBackslashSmileyFail() { 188*f8369d7dSTobias Sarnowski // This smiley is really :-\\ but escaping makes like interesting 189*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-\\\\'))); 190*f8369d7dSTobias Sarnowski $this->P->parse('abc:-\\\xyz'); 191*f8369d7dSTobias Sarnowski 192*f8369d7dSTobias Sarnowski $calls = array ( 193*f8369d7dSTobias Sarnowski array('document_start',array()), 194*f8369d7dSTobias Sarnowski array('p_open',array()), 195*f8369d7dSTobias Sarnowski array('cdata',array("\nabc".':-\\\\'."xyz")), 196*f8369d7dSTobias Sarnowski array('p_close',array()), 197*f8369d7dSTobias Sarnowski array('document_end',array()), 198*f8369d7dSTobias Sarnowski ); 199*f8369d7dSTobias Sarnowski 200*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 201*f8369d7dSTobias Sarnowski } 202*f8369d7dSTobias Sarnowski 203*f8369d7dSTobias Sarnowski function testBackslashSmiley() { 204*f8369d7dSTobias Sarnowski // This smiley is really :-\\ but escaping makes like interesting 205*f8369d7dSTobias Sarnowski $this->P->addMode('smiley',new Doku_Parser_Mode_Smiley(array(':-\\\\'))); 206*f8369d7dSTobias Sarnowski $this->P->parse('abc :-\\\ xyz'); 207*f8369d7dSTobias Sarnowski 208*f8369d7dSTobias Sarnowski $calls = array ( 209*f8369d7dSTobias Sarnowski array('document_start',array()), 210*f8369d7dSTobias Sarnowski array('p_open',array()), 211*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 212*f8369d7dSTobias Sarnowski array('smiley',array(':-\\\\')), 213*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 214*f8369d7dSTobias Sarnowski array('p_close',array()), 215*f8369d7dSTobias Sarnowski array('document_end',array()), 216*f8369d7dSTobias Sarnowski ); 217*f8369d7dSTobias Sarnowski 218*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 219*f8369d7dSTobias Sarnowski } 220*f8369d7dSTobias Sarnowski 221*f8369d7dSTobias Sarnowski function testSingleWordblock() { 222*f8369d7dSTobias Sarnowski $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT'))); 223*f8369d7dSTobias Sarnowski $this->P->parse('abc CAT xyz'); 224*f8369d7dSTobias Sarnowski 225*f8369d7dSTobias Sarnowski $calls = array ( 226*f8369d7dSTobias Sarnowski array('document_start',array()), 227*f8369d7dSTobias Sarnowski array('p_open',array()), 228*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 229*f8369d7dSTobias Sarnowski array('wordblock',array('CAT')), 230*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 231*f8369d7dSTobias Sarnowski array('p_close',array()), 232*f8369d7dSTobias Sarnowski array('document_end',array()), 233*f8369d7dSTobias Sarnowski ); 234*f8369d7dSTobias Sarnowski 235*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 236*f8369d7dSTobias Sarnowski } 237*f8369d7dSTobias Sarnowski 238*f8369d7dSTobias Sarnowski function testWordblockCase() { 239*f8369d7dSTobias Sarnowski $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT'))); 240*f8369d7dSTobias Sarnowski $this->P->parse('abc cat xyz'); 241*f8369d7dSTobias Sarnowski 242*f8369d7dSTobias Sarnowski $calls = array ( 243*f8369d7dSTobias Sarnowski array('document_start',array()), 244*f8369d7dSTobias Sarnowski array('p_open',array()), 245*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 246*f8369d7dSTobias Sarnowski array('wordblock',array('cat')), 247*f8369d7dSTobias Sarnowski array('cdata',array(' xyz')), 248*f8369d7dSTobias Sarnowski array('p_close',array()), 249*f8369d7dSTobias Sarnowski array('document_end',array()), 250*f8369d7dSTobias Sarnowski ); 251*f8369d7dSTobias Sarnowski 252*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 253*f8369d7dSTobias Sarnowski } 254*f8369d7dSTobias Sarnowski 255*f8369d7dSTobias Sarnowski function testMultipleWordblock() { 256*f8369d7dSTobias Sarnowski $this->P->addMode('wordblock',new Doku_Parser_Mode_Wordblock(array('CAT','dog'))); 257*f8369d7dSTobias Sarnowski $this->P->parse('abc cat x DOG yz'); 258*f8369d7dSTobias Sarnowski 259*f8369d7dSTobias Sarnowski $calls = array ( 260*f8369d7dSTobias Sarnowski array('document_start',array()), 261*f8369d7dSTobias Sarnowski array('p_open',array()), 262*f8369d7dSTobias Sarnowski array('cdata',array("\n".'abc ')), 263*f8369d7dSTobias Sarnowski array('wordblock',array('cat')), 264*f8369d7dSTobias Sarnowski array('cdata',array(' x ')), 265*f8369d7dSTobias Sarnowski array('wordblock',array('DOG')), 266*f8369d7dSTobias Sarnowski array('cdata',array(' yz')), 267*f8369d7dSTobias Sarnowski array('p_close',array()), 268*f8369d7dSTobias Sarnowski array('document_end',array()), 269*f8369d7dSTobias Sarnowski ); 270*f8369d7dSTobias Sarnowski 271*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 272*f8369d7dSTobias Sarnowski } 273*f8369d7dSTobias Sarnowski 274*f8369d7dSTobias Sarnowski function testSingleEntity() { 275*f8369d7dSTobias Sarnowski $this->P->addMode('entity',new Doku_Parser_Mode_Entity(array('->'))); 276*f8369d7dSTobias Sarnowski $this->P->parse('x -> y'); 277*f8369d7dSTobias Sarnowski 278*f8369d7dSTobias Sarnowski $calls = array ( 279*f8369d7dSTobias Sarnowski array('document_start',array()), 280*f8369d7dSTobias Sarnowski array('p_open',array()), 281*f8369d7dSTobias Sarnowski array('cdata',array("\n".'x ')), 282*f8369d7dSTobias Sarnowski array('entity',array('->')), 283*f8369d7dSTobias Sarnowski array('cdata',array(' y')), 284*f8369d7dSTobias Sarnowski array('p_close',array()), 285*f8369d7dSTobias Sarnowski array('document_end',array()), 286*f8369d7dSTobias Sarnowski ); 287*f8369d7dSTobias Sarnowski 288*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 289*f8369d7dSTobias Sarnowski } 290*f8369d7dSTobias Sarnowski 291*f8369d7dSTobias Sarnowski function testMultipleEntities() { 292*f8369d7dSTobias Sarnowski $this->P->addMode('entity',new Doku_Parser_Mode_Entity(array('->','<-'))); 293*f8369d7dSTobias Sarnowski $this->P->parse('x -> y <- z'); 294*f8369d7dSTobias Sarnowski 295*f8369d7dSTobias Sarnowski $calls = array ( 296*f8369d7dSTobias Sarnowski array('document_start',array()), 297*f8369d7dSTobias Sarnowski array('p_open',array()), 298*f8369d7dSTobias Sarnowski array('cdata',array("\n".'x ')), 299*f8369d7dSTobias Sarnowski array('entity',array('->')), 300*f8369d7dSTobias Sarnowski array('cdata',array(' y ')), 301*f8369d7dSTobias Sarnowski array('entity',array('<-')), 302*f8369d7dSTobias Sarnowski array('cdata',array(' z')), 303*f8369d7dSTobias Sarnowski array('p_close',array()), 304*f8369d7dSTobias Sarnowski array('document_end',array()), 305*f8369d7dSTobias Sarnowski ); 306*f8369d7dSTobias Sarnowski 307*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 308*f8369d7dSTobias Sarnowski } 309*f8369d7dSTobias Sarnowski 310*f8369d7dSTobias Sarnowski function testMultiplyEntity() { 311*f8369d7dSTobias Sarnowski $this->P->addMode('multiplyentity',new Doku_Parser_Mode_MultiplyEntity()); 312*f8369d7dSTobias Sarnowski $this->P->parse('Foo 10x20 Bar'); 313*f8369d7dSTobias Sarnowski 314*f8369d7dSTobias Sarnowski $calls = array ( 315*f8369d7dSTobias Sarnowski array('document_start',array()), 316*f8369d7dSTobias Sarnowski array('p_open',array()), 317*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 318*f8369d7dSTobias Sarnowski array('multiplyentity',array(10,20)), 319*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 320*f8369d7dSTobias Sarnowski array('p_close',array()), 321*f8369d7dSTobias Sarnowski array('document_end',array()), 322*f8369d7dSTobias Sarnowski ); 323*f8369d7dSTobias Sarnowski 324*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 325*f8369d7dSTobias Sarnowski } 326*f8369d7dSTobias Sarnowski 327*f8369d7dSTobias Sarnowski function testMultiplyEntityHex() { 328*f8369d7dSTobias Sarnowski // the multiply entity pattern should not match hex numbers, eg. 0x123 329*f8369d7dSTobias Sarnowski $this->P->addMode('multiplyentity',new Doku_Parser_Mode_MultiplyEntity()); 330*f8369d7dSTobias Sarnowski $this->P->parse('Foo 0x123 Bar'); 331*f8369d7dSTobias Sarnowski 332*f8369d7dSTobias Sarnowski $calls = array ( 333*f8369d7dSTobias Sarnowski array('document_start',array()), 334*f8369d7dSTobias Sarnowski array('p_open',array()), 335*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo 0x123 Bar')), 336*f8369d7dSTobias Sarnowski array('p_close',array()), 337*f8369d7dSTobias Sarnowski array('document_end',array()), 338*f8369d7dSTobias Sarnowski ); 339*f8369d7dSTobias Sarnowski 340*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 341*f8369d7dSTobias Sarnowski } 342*f8369d7dSTobias Sarnowski 343*f8369d7dSTobias Sarnowski function testHR() { 344*f8369d7dSTobias Sarnowski $this->P->addMode('hr',new Doku_Parser_Mode_HR()); 345*f8369d7dSTobias Sarnowski $this->P->parse("Foo \n ---- \n Bar"); 346*f8369d7dSTobias Sarnowski 347*f8369d7dSTobias Sarnowski $calls = array ( 348*f8369d7dSTobias Sarnowski array('document_start',array()), 349*f8369d7dSTobias Sarnowski array('p_open',array()), 350*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 351*f8369d7dSTobias Sarnowski array('p_close',array()), 352*f8369d7dSTobias Sarnowski array('hr',array()), 353*f8369d7dSTobias Sarnowski array('p_open',array()), 354*f8369d7dSTobias Sarnowski array('cdata',array("\n Bar")), 355*f8369d7dSTobias Sarnowski array('p_close',array()), 356*f8369d7dSTobias Sarnowski array('document_end',array()), 357*f8369d7dSTobias Sarnowski ); 358*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 359*f8369d7dSTobias Sarnowski } 360*f8369d7dSTobias Sarnowski 361*f8369d7dSTobias Sarnowski function testHREol() { 362*f8369d7dSTobias Sarnowski $this->P->addMode('hr',new Doku_Parser_Mode_HR()); 363*f8369d7dSTobias Sarnowski $this->P->parse("Foo \n----\n Bar"); 364*f8369d7dSTobias Sarnowski 365*f8369d7dSTobias Sarnowski $calls = array ( 366*f8369d7dSTobias Sarnowski array('document_start',array()), 367*f8369d7dSTobias Sarnowski array('p_open',array()), 368*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 369*f8369d7dSTobias Sarnowski array('p_close',array()), 370*f8369d7dSTobias Sarnowski array('hr',array()), 371*f8369d7dSTobias Sarnowski array('p_open',array()), 372*f8369d7dSTobias Sarnowski array('cdata',array("\n Bar")), 373*f8369d7dSTobias Sarnowski array('p_close',array()), 374*f8369d7dSTobias Sarnowski array('document_end',array()), 375*f8369d7dSTobias Sarnowski ); 376*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 377*f8369d7dSTobias Sarnowski } 378*f8369d7dSTobias Sarnowski} 379*f8369d7dSTobias Sarnowski 380