1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php'; 3f8369d7dSTobias Sarnowski 4f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { 5f8369d7dSTobias Sarnowski 6*ff576d93SDominik Eckelmann function setUp() { 7*ff576d93SDominik Eckelmann parent::setUp(); 8f8369d7dSTobias Sarnowski global $conf; 9f8369d7dSTobias Sarnowski $conf['typography'] = 2; 10f8369d7dSTobias Sarnowski } 11f8369d7dSTobias Sarnowski 12f8369d7dSTobias Sarnowski function testSingleQuoteOpening() { 13f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 14f8369d7dSTobias Sarnowski $this->P->parse("Foo 'hello Bar"); 15f8369d7dSTobias Sarnowski 16f8369d7dSTobias Sarnowski $calls = array ( 17f8369d7dSTobias Sarnowski array('document_start',array()), 18f8369d7dSTobias Sarnowski array('p_open',array()), 19f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 20f8369d7dSTobias Sarnowski array('singlequoteopening',array()), 21f8369d7dSTobias Sarnowski array('cdata',array('hello Bar')), 22f8369d7dSTobias Sarnowski array('p_close',array()), 23f8369d7dSTobias Sarnowski array('document_end',array()), 24f8369d7dSTobias Sarnowski ); 25f8369d7dSTobias Sarnowski 26f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 27f8369d7dSTobias Sarnowski } 28f8369d7dSTobias Sarnowski 29f8369d7dSTobias Sarnowski function testSingleQuoteOpeningSpecial() { 30f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 31f8369d7dSTobias Sarnowski $this->P->parse("Foo said:'hello Bar"); 32f8369d7dSTobias Sarnowski 33f8369d7dSTobias Sarnowski $calls = array ( 34f8369d7dSTobias Sarnowski array('document_start',array()), 35f8369d7dSTobias Sarnowski array('p_open',array()), 36f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo said:')), 37f8369d7dSTobias Sarnowski array('singlequoteopening',array()), 38f8369d7dSTobias Sarnowski array('cdata',array('hello Bar')), 39f8369d7dSTobias Sarnowski array('p_close',array()), 40f8369d7dSTobias Sarnowski array('document_end',array()), 41f8369d7dSTobias Sarnowski ); 42f8369d7dSTobias Sarnowski 43f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 44f8369d7dSTobias Sarnowski } 45f8369d7dSTobias Sarnowski 46f8369d7dSTobias Sarnowski function testSingleQuoteClosing() { 47f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 48f8369d7dSTobias Sarnowski $this->P->parse("Foo hello' Bar"); 49f8369d7dSTobias Sarnowski 50f8369d7dSTobias Sarnowski $calls = array ( 51f8369d7dSTobias Sarnowski array('document_start',array()), 52f8369d7dSTobias Sarnowski array('p_open',array()), 53f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo hello')), 54f8369d7dSTobias Sarnowski array('singlequoteclosing',array()), 55f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 56f8369d7dSTobias Sarnowski array('p_close',array()), 57f8369d7dSTobias Sarnowski array('document_end',array()), 58f8369d7dSTobias Sarnowski ); 59f8369d7dSTobias Sarnowski 60f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 61f8369d7dSTobias Sarnowski } 62f8369d7dSTobias Sarnowski 63f8369d7dSTobias Sarnowski function testSingleQuoteClosingSpecial() { 64f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 65f8369d7dSTobias Sarnowski $this->P->parse("Foo hello') Bar"); 66f8369d7dSTobias Sarnowski 67f8369d7dSTobias Sarnowski $calls = array ( 68f8369d7dSTobias Sarnowski array('document_start',array()), 69f8369d7dSTobias Sarnowski array('p_open',array()), 70f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo hello')), 71f8369d7dSTobias Sarnowski array('singlequoteclosing',array()), 72f8369d7dSTobias Sarnowski array('cdata',array(') Bar')), 73f8369d7dSTobias Sarnowski array('p_close',array()), 74f8369d7dSTobias Sarnowski array('document_end',array()), 75f8369d7dSTobias Sarnowski ); 76f8369d7dSTobias Sarnowski 77f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 78f8369d7dSTobias Sarnowski } 79f8369d7dSTobias Sarnowski 80f8369d7dSTobias Sarnowski function testSingleQuotes() { 81f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 82f8369d7dSTobias Sarnowski $this->P->parse("Foo 'hello' Bar"); 83f8369d7dSTobias Sarnowski 84f8369d7dSTobias Sarnowski $calls = array ( 85f8369d7dSTobias Sarnowski array('document_start',array()), 86f8369d7dSTobias Sarnowski array('p_open',array()), 87f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 88f8369d7dSTobias Sarnowski array('singlequoteopening',array()), 89f8369d7dSTobias Sarnowski array('cdata',array('hello')), 90f8369d7dSTobias Sarnowski array('singlequoteclosing',array()), 91f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 92f8369d7dSTobias Sarnowski array('p_close',array()), 93f8369d7dSTobias Sarnowski array('document_end',array()), 94f8369d7dSTobias Sarnowski ); 95f8369d7dSTobias Sarnowski 96f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 97f8369d7dSTobias Sarnowski } 98f8369d7dSTobias Sarnowski 99f8369d7dSTobias Sarnowski function testApostrophe() { 100f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 101f8369d7dSTobias Sarnowski $this->P->parse("hey it's fine weather today"); 102f8369d7dSTobias Sarnowski 103f8369d7dSTobias Sarnowski $calls = array ( 104f8369d7dSTobias Sarnowski array('document_start',array()), 105f8369d7dSTobias Sarnowski array('p_open',array()), 106f8369d7dSTobias Sarnowski array('cdata',array("\n".'hey it')), 107f8369d7dSTobias Sarnowski array('apostrophe',array()), 108f8369d7dSTobias Sarnowski array('cdata',array('s fine weather today')), 109f8369d7dSTobias Sarnowski array('p_close',array()), 110f8369d7dSTobias Sarnowski array('document_end',array()), 111f8369d7dSTobias Sarnowski ); 112f8369d7dSTobias Sarnowski 113f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 114f8369d7dSTobias Sarnowski } 115f8369d7dSTobias Sarnowski 116f8369d7dSTobias Sarnowski 117f8369d7dSTobias Sarnowski function testSingleQuotesSpecial() { 118f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 119f8369d7dSTobias Sarnowski $this->P->parse("Foo ('hello') Bar"); 120f8369d7dSTobias Sarnowski 121f8369d7dSTobias Sarnowski $calls = array ( 122f8369d7dSTobias Sarnowski array('document_start',array()), 123f8369d7dSTobias Sarnowski array('p_open',array()), 124f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo (')), 125f8369d7dSTobias Sarnowski array('singlequoteopening',array()), 126f8369d7dSTobias Sarnowski array('cdata',array('hello')), 127f8369d7dSTobias Sarnowski array('singlequoteclosing',array()), 128f8369d7dSTobias Sarnowski array('cdata',array(') Bar')), 129f8369d7dSTobias Sarnowski array('p_close',array()), 130f8369d7dSTobias Sarnowski array('document_end',array()), 131f8369d7dSTobias Sarnowski ); 132f8369d7dSTobias Sarnowski 133f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 134f8369d7dSTobias Sarnowski } 135f8369d7dSTobias Sarnowski 136f8369d7dSTobias Sarnowski function testDoubleQuoteOpening() { 137f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 138f8369d7dSTobias Sarnowski $this->P->parse('Foo "hello Bar'); 139f8369d7dSTobias Sarnowski 140f8369d7dSTobias Sarnowski $calls = array ( 141f8369d7dSTobias Sarnowski array('document_start',array()), 142f8369d7dSTobias Sarnowski array('p_open',array()), 143f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 144f8369d7dSTobias Sarnowski array('doublequoteopening',array()), 145f8369d7dSTobias Sarnowski array('cdata',array('hello Bar')), 146f8369d7dSTobias Sarnowski array('p_close',array()), 147f8369d7dSTobias Sarnowski array('document_end',array()), 148f8369d7dSTobias Sarnowski ); 149f8369d7dSTobias Sarnowski 150f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 151f8369d7dSTobias Sarnowski } 152f8369d7dSTobias Sarnowski 153f8369d7dSTobias Sarnowski function testDoubleQuoteOpeningSpecial() { 154f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 155f8369d7dSTobias Sarnowski $this->P->parse('Foo said:"hello Bar'); 156f8369d7dSTobias Sarnowski 157f8369d7dSTobias Sarnowski $calls = array ( 158f8369d7dSTobias Sarnowski array('document_start',array()), 159f8369d7dSTobias Sarnowski array('p_open',array()), 160f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo said:')), 161f8369d7dSTobias Sarnowski array('doublequoteopening',array()), 162f8369d7dSTobias Sarnowski array('cdata',array('hello Bar')), 163f8369d7dSTobias Sarnowski array('p_close',array()), 164f8369d7dSTobias Sarnowski array('document_end',array()), 165f8369d7dSTobias Sarnowski ); 166f8369d7dSTobias Sarnowski 167f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 168f8369d7dSTobias Sarnowski } 169f8369d7dSTobias Sarnowski 170f8369d7dSTobias Sarnowski function testDoubleQuoteClosing() { 171f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 172f8369d7dSTobias Sarnowski $this->P->parse('Foo hello" Bar'); 173f8369d7dSTobias Sarnowski 174f8369d7dSTobias Sarnowski $calls = array ( 175f8369d7dSTobias Sarnowski array('document_start',array()), 176f8369d7dSTobias Sarnowski array('p_open',array()), 177f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo hello')), 178f8369d7dSTobias Sarnowski array('doublequoteclosing',array()), 179f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 180f8369d7dSTobias Sarnowski array('p_close',array()), 181f8369d7dSTobias Sarnowski array('document_end',array()), 182f8369d7dSTobias Sarnowski ); 183f8369d7dSTobias Sarnowski 184f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 185f8369d7dSTobias Sarnowski } 186f8369d7dSTobias Sarnowski 187f8369d7dSTobias Sarnowski function testDoubleQuoteClosingSpecial() { 188f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 189f8369d7dSTobias Sarnowski $this->P->parse('Foo hello") Bar'); 190f8369d7dSTobias Sarnowski 191f8369d7dSTobias Sarnowski $calls = array ( 192f8369d7dSTobias Sarnowski array('document_start',array()), 193f8369d7dSTobias Sarnowski array('p_open',array()), 194f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo hello')), 195f8369d7dSTobias Sarnowski array('doublequoteclosing',array()), 196f8369d7dSTobias Sarnowski array('cdata',array(') Bar')), 197f8369d7dSTobias Sarnowski array('p_close',array()), 198f8369d7dSTobias Sarnowski array('document_end',array()), 199f8369d7dSTobias Sarnowski ); 200f8369d7dSTobias Sarnowski 201f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 202f8369d7dSTobias Sarnowski } 203f8369d7dSTobias Sarnowski 204f8369d7dSTobias Sarnowski function testDoubleQuotes() { 205f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 206f8369d7dSTobias Sarnowski $this->P->parse('Foo "hello" Bar'); 207f8369d7dSTobias Sarnowski 208f8369d7dSTobias Sarnowski $calls = array ( 209f8369d7dSTobias Sarnowski array('document_start',array()), 210f8369d7dSTobias Sarnowski array('p_open',array()), 211f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 212f8369d7dSTobias Sarnowski array('doublequoteopening',array()), 213f8369d7dSTobias Sarnowski array('cdata',array('hello')), 214f8369d7dSTobias Sarnowski array('doublequoteclosing',array()), 215f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 216f8369d7dSTobias Sarnowski array('p_close',array()), 217f8369d7dSTobias Sarnowski array('document_end',array()), 218f8369d7dSTobias Sarnowski ); 219f8369d7dSTobias Sarnowski 220f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 221f8369d7dSTobias Sarnowski } 222f8369d7dSTobias Sarnowski 223f8369d7dSTobias Sarnowski function testDoubleQuotesSpecial() { 224f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 225f8369d7dSTobias Sarnowski $this->P->parse('Foo ("hello") Bar'); 226f8369d7dSTobias Sarnowski 227f8369d7dSTobias Sarnowski $calls = array ( 228f8369d7dSTobias Sarnowski array('document_start',array()), 229f8369d7dSTobias Sarnowski array('p_open',array()), 230f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo (')), 231f8369d7dSTobias Sarnowski array('doublequoteopening',array()), 232f8369d7dSTobias Sarnowski array('cdata',array('hello')), 233f8369d7dSTobias Sarnowski array('doublequoteclosing',array()), 234f8369d7dSTobias Sarnowski array('cdata',array(') Bar')), 235f8369d7dSTobias Sarnowski array('p_close',array()), 236f8369d7dSTobias Sarnowski array('document_end',array()), 237f8369d7dSTobias Sarnowski ); 238f8369d7dSTobias Sarnowski 239f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 240f8369d7dSTobias Sarnowski } 241f8369d7dSTobias Sarnowski 242f8369d7dSTobias Sarnowski function testAllQuotes() { 243f8369d7dSTobias Sarnowski $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); 244f8369d7dSTobias Sarnowski $this->P->parse('There was written "He thought \'It\'s a man\'s world\'".'); 245f8369d7dSTobias Sarnowski 246f8369d7dSTobias Sarnowski $calls = array ( 247f8369d7dSTobias Sarnowski array('document_start',array()), 248f8369d7dSTobias Sarnowski array('p_open',array()), 249f8369d7dSTobias Sarnowski array('cdata',array("\n".'There was written ')), 250f8369d7dSTobias Sarnowski array('doublequoteopening',array()), 251f8369d7dSTobias Sarnowski array('cdata',array('He thought ')), 252f8369d7dSTobias Sarnowski array('singlequoteopening',array()), 253f8369d7dSTobias Sarnowski array('cdata',array('It')), 254f8369d7dSTobias Sarnowski array('apostrophe',array()), 255f8369d7dSTobias Sarnowski array('cdata',array('s a man')), 256f8369d7dSTobias Sarnowski array('apostrophe',array()), 257f8369d7dSTobias Sarnowski array('cdata',array('s world')), 258f8369d7dSTobias Sarnowski array('singlequoteclosing',array()), 259f8369d7dSTobias Sarnowski array('doublequoteclosing',array()), 260f8369d7dSTobias Sarnowski array('cdata',array(".")), 261f8369d7dSTobias Sarnowski array('p_close',array()), 262f8369d7dSTobias Sarnowski array('document_end',array()), 263f8369d7dSTobias Sarnowski ); 264f8369d7dSTobias Sarnowski 265f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 266f8369d7dSTobias Sarnowski } 267f8369d7dSTobias Sarnowski 268f8369d7dSTobias Sarnowski} 269f8369d7dSTobias Sarnowski 270