syntax tag. * * @group parser_code */ class TestOfDoku_Parser_Code extends TestOfDoku_Parser { function setUp() : void { parent::setUp(); $this->P->addMode('code',new Code()); } function testCode() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test',null,null)), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeBash() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','bash',null)), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeDownload() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','bash','script.sh')), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeToken() { $this->P->parse('Foo BarTest'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo Bar')), array('p_close',array()), array('code',array('Test',null,null)), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_OneOption() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => 1) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_TwoOptions() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'highlight_lines_extra' => array(3) ))), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_UnknownOption() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, null)), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableLineNumbers1() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableLineNumbers2() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableLineNumbers3() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => false) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableLineNumbers4() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_HighlightLinesExtra1() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'highlight_lines_extra' => array(42, 123, 456, 789) ))), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_HighlightLinesExtra2() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'highlight_lines_extra' => array(1)) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_HighlightLinesExtra3() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'highlight_lines_extra' => array(1)) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_StartLineNumbersAt1() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'start_line_numbers_at' => 42) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_StartLineNumbersAt2() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'start_line_numbers_at' => 1) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_StartLineNumbersAt3() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_line_numbers' => true, 'start_line_numbers_at' => 1) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableKeywordLinks1() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_keyword_links' => false) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } function testCodeOptionsArray_EnableKeywordLinks2() { $this->P->parse('Foo Test Bar'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('p_close',array()), array('code',array('Test','C', null, array('enable_keyword_links' => true) )), array('p_open',array()), array('cdata',array(' Bar')), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } }