init
This commit is contained in:
94
vendor/cebe/markdown/tests/ParserTest.php
vendored
Normal file
94
vendor/cebe/markdown/tests/ParserTest.php
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2014 Carsten Brandt
|
||||
* @license https://github.com/cebe/markdown/blob/master/LICENSE
|
||||
* @link https://github.com/cebe/markdown#readme
|
||||
*/
|
||||
|
||||
namespace cebe\markdown\tests;
|
||||
|
||||
use cebe\markdown\Parser;
|
||||
|
||||
/**
|
||||
* Test case for the parser base class.
|
||||
*
|
||||
* @author Carsten Brandt <mail@cebe.cc>
|
||||
* @group default
|
||||
*/
|
||||
class ParserTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testMarkerOrder()
|
||||
{
|
||||
$parser = new TestParser();
|
||||
$parser->markers = [
|
||||
'[' => 'parseMarkerA',
|
||||
'[[' => 'parseMarkerB',
|
||||
];
|
||||
|
||||
$this->assertEquals("<p>Result is A</p>\n", $parser->parse('Result is [abc]'));
|
||||
$this->assertEquals("<p>Result is B</p>\n", $parser->parse('Result is [[abc]]'));
|
||||
$this->assertEquals('Result is A', $parser->parseParagraph('Result is [abc]'));
|
||||
$this->assertEquals('Result is B', $parser->parseParagraph('Result is [[abc]]'));
|
||||
|
||||
$parser = new TestParser();
|
||||
$parser->markers = [
|
||||
'[[' => 'parseMarkerB',
|
||||
'[' => 'parseMarkerA',
|
||||
];
|
||||
|
||||
$this->assertEquals("<p>Result is A</p>\n", $parser->parse('Result is [abc]'));
|
||||
$this->assertEquals("<p>Result is B</p>\n", $parser->parse('Result is [[abc]]'));
|
||||
$this->assertEquals('Result is A', $parser->parseParagraph('Result is [abc]'));
|
||||
$this->assertEquals('Result is B', $parser->parseParagraph('Result is [[abc]]'));
|
||||
}
|
||||
|
||||
public function testMaxNestingLevel()
|
||||
{
|
||||
$parser = new TestParser();
|
||||
$parser->markers = [
|
||||
'[' => 'parseMarkerC',
|
||||
];
|
||||
|
||||
$parser->maximumNestingLevel = 3;
|
||||
$this->assertEquals("(C-a(C-b(C-c)))", $parser->parseParagraph('[a[b[c]]]'));
|
||||
$parser->maximumNestingLevel = 2;
|
||||
$this->assertEquals("(C-a(C-b[c]))", $parser->parseParagraph('[a[b[c]]]'));
|
||||
$parser->maximumNestingLevel = 1;
|
||||
$this->assertEquals("(C-a[b[c]])", $parser->parseParagraph('[a[b[c]]]'));
|
||||
}
|
||||
|
||||
public function testKeepZeroAlive()
|
||||
{
|
||||
$parser = new TestParser();
|
||||
|
||||
$this->assertEquals("0", $parser->parseParagraph("0"));
|
||||
$this->assertEquals("<p>0</p>\n", $parser->parse("0"));
|
||||
}
|
||||
}
|
||||
|
||||
class TestParser extends Parser
|
||||
{
|
||||
public $markers = [];
|
||||
|
||||
protected function inlineMarkers()
|
||||
{
|
||||
return $this->markers;
|
||||
}
|
||||
|
||||
protected function parseMarkerA($text)
|
||||
{
|
||||
return [['text', 'A'], strrpos($text, ']') + 1];
|
||||
}
|
||||
|
||||
protected function parseMarkerB($text)
|
||||
{
|
||||
return [['text', 'B'], strrpos($text, ']') + 1];
|
||||
}
|
||||
|
||||
protected function parseMarkerC($text)
|
||||
{
|
||||
$terminatingMarkerPos = strrpos($text, ']');
|
||||
$inside = $this->parseInline(substr($text, 1, $terminatingMarkerPos - 1));
|
||||
return [['text', '(C-' . $this->renderAbsy($inside) . ')'], $terminatingMarkerPos + 1];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user