mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Adjust tests for new API
Remove tests that test old core and extension features Comment out test for no markup independent of safe mode
This commit is contained in:
parent
e2c9b2fa2b
commit
04816a9944
@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
namespace Erusev\Parsedown\Tests;
|
namespace Erusev\Parsedown\Tests;
|
||||||
|
|
||||||
|
use Erusev\Parsedown\Configurables\SafeMode;
|
||||||
|
use Erusev\Parsedown\Configurables\StrictMode;
|
||||||
use Erusev\Parsedown\Parsedown;
|
use Erusev\Parsedown\Parsedown;
|
||||||
|
use Erusev\Parsedown\State;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
class ParsedownTest extends TestCase
|
class ParsedownTest extends TestCase
|
||||||
@ -10,7 +13,6 @@ class ParsedownTest extends TestCase
|
|||||||
final public function __construct($name = null, array $data = [], $dataName = '')
|
final public function __construct($name = null, array $data = [], $dataName = '')
|
||||||
{
|
{
|
||||||
$this->dirs = $this->initDirs();
|
$this->dirs = $this->initDirs();
|
||||||
$this->Parsedown = $this->initParsedown();
|
|
||||||
|
|
||||||
parent::__construct($name, $data, $dataName);
|
parent::__construct($name, $data, $dataName);
|
||||||
}
|
}
|
||||||
@ -28,16 +30,6 @@ class ParsedownTest extends TestCase
|
|||||||
return $dirs;
|
return $dirs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Parsedown
|
|
||||||
*/
|
|
||||||
protected function initParsedown()
|
|
||||||
{
|
|
||||||
$Parsedown = new TestParsedown();
|
|
||||||
|
|
||||||
return $Parsedown;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider data
|
* @dataProvider data
|
||||||
* @param $test
|
* @param $test
|
||||||
@ -52,48 +44,16 @@ class ParsedownTest extends TestCase
|
|||||||
$expectedMarkup = \str_replace("\r\n", "\n", $expectedMarkup);
|
$expectedMarkup = \str_replace("\r\n", "\n", $expectedMarkup);
|
||||||
$expectedMarkup = \str_replace("\r", "\n", $expectedMarkup);
|
$expectedMarkup = \str_replace("\r", "\n", $expectedMarkup);
|
||||||
|
|
||||||
$this->Parsedown->setSafeMode(\substr($test, 0, 3) === 'xss');
|
$Parsedown = new Parsedown(new State([
|
||||||
$this->Parsedown->setStrictMode(\substr($test, 0, 6) === 'strict');
|
new SafeMode(\substr($test, 0, 3) === 'xss'),
|
||||||
|
new StrictMode(\substr($test, 0, 6) === 'strict'),
|
||||||
|
]));
|
||||||
|
|
||||||
$actualMarkup = $this->Parsedown->text($markdown);
|
$actualMarkup = $Parsedown->text($markdown);
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
$this->assertEquals($expectedMarkup, $actualMarkup);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testRawHtml()
|
|
||||||
{
|
|
||||||
$markdown = "```php\nfoobar\n```";
|
|
||||||
$expectedMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
$expectedSafeMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
|
|
||||||
$unsafeExtension = new SampleExtensions\UnsafeExtension;
|
|
||||||
$actualMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
|
|
||||||
$unsafeExtension->setSafeMode(true);
|
|
||||||
$actualSafeMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedSafeMarkup, $actualSafeMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testTrustDelegatedRawHtml()
|
|
||||||
{
|
|
||||||
$markdown = "```php\nfoobar\n```";
|
|
||||||
$expectedMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
$expectedSafeMarkup = $expectedMarkup;
|
|
||||||
|
|
||||||
$unsafeExtension = new SampleExtensions\TrustDelegatedExtension;
|
|
||||||
$actualMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
|
|
||||||
$unsafeExtension->setSafeMode(true);
|
|
||||||
$actualSafeMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedSafeMarkup, $actualSafeMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function data()
|
public function data()
|
||||||
{
|
{
|
||||||
$data = [];
|
$data = [];
|
||||||
@ -127,70 +87,52 @@ class ParsedownTest extends TestCase
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_no_markup()
|
// public function test_no_markup()
|
||||||
{
|
// {
|
||||||
$markdownWithHtml = <<<MARKDOWN_WITH_MARKUP
|
// $markdownWithHtml = <<<MARKDOWN_WITH_MARKUP
|
||||||
<div>_content_</div>
|
// <div>_content_</div>
|
||||||
|
|
||||||
sparse:
|
// sparse:
|
||||||
|
|
||||||
<div>
|
// <div>
|
||||||
<div class="inner">
|
// <div class="inner">
|
||||||
_content_
|
// _content_
|
||||||
</div>
|
// </div>
|
||||||
</div>
|
// </div>
|
||||||
|
|
||||||
paragraph
|
// paragraph
|
||||||
|
|
||||||
<style type="text/css">
|
// <style type="text/css">
|
||||||
p {
|
// p {
|
||||||
color: red;
|
// color: red;
|
||||||
}
|
// }
|
||||||
</style>
|
// </style>
|
||||||
|
|
||||||
comment
|
// comment
|
||||||
|
|
||||||
<!-- html comment -->
|
// <!-- html comment -->
|
||||||
MARKDOWN_WITH_MARKUP;
|
// MARKDOWN_WITH_MARKUP;
|
||||||
|
|
||||||
$expectedHtml = <<<EXPECTED_HTML
|
// $expectedHtml = <<<EXPECTED_HTML
|
||||||
<p><div><em>content</em></div></p>
|
// <p><div><em>content</em></div></p>
|
||||||
<p>sparse:</p>
|
// <p>sparse:</p>
|
||||||
<p><div>
|
// <p><div>
|
||||||
<div class="inner">
|
// <div class="inner">
|
||||||
<em>content</em>
|
// <em>content</em>
|
||||||
</div>
|
// </div>
|
||||||
</div></p>
|
// </div></p>
|
||||||
<p>paragraph</p>
|
// <p>paragraph</p>
|
||||||
<p><style type="text/css">
|
// <p><style type="text/css">
|
||||||
p {
|
// p {
|
||||||
color: red;
|
// color: red;
|
||||||
}
|
// }
|
||||||
</style></p>
|
// </style></p>
|
||||||
<p>comment</p>
|
// <p>comment</p>
|
||||||
<p><!-- html comment --></p>
|
// <p><!-- html comment --></p>
|
||||||
EXPECTED_HTML;
|
// EXPECTED_HTML;
|
||||||
|
|
||||||
$parsedownWithNoMarkup = new TestParsedown();
|
// $parsedownWithNoMarkup = new TestParsedown();
|
||||||
$parsedownWithNoMarkup->setMarkupEscaped(true);
|
// $parsedownWithNoMarkup->setMarkupEscaped(true);
|
||||||
$this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
|
// $this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
|
||||||
}
|
// }
|
||||||
|
|
||||||
public function testLateStaticBinding()
|
|
||||||
{
|
|
||||||
$parsedown = Parsedown::instance();
|
|
||||||
$this->assertInstanceOf('Erusev\Parsedown\Parsedown', $parsedown);
|
|
||||||
|
|
||||||
// After instance is already called on Parsedown
|
|
||||||
// subsequent calls with the same arguments return the same instance
|
|
||||||
$sameParsedown = TestParsedown::instance();
|
|
||||||
$this->assertInstanceOf('Erusev\Parsedown\Parsedown', $sameParsedown);
|
|
||||||
$this->assertSame($parsedown, $sameParsedown);
|
|
||||||
|
|
||||||
$testParsedown = TestParsedown::instance('test late static binding');
|
|
||||||
$this->assertInstanceOf('Erusev\Parsedown\Parsedown', $testParsedown);
|
|
||||||
|
|
||||||
$sameInstanceAgain = TestParsedown::instance('test late static binding');
|
|
||||||
$this->assertSame($testParsedown, $sameInstanceAgain);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Erusev\Parsedown\Tests;
|
|
||||||
|
|
||||||
use Erusev\Parsedown\Parsedown;
|
|
||||||
|
|
||||||
class TestParsedown extends Parsedown
|
|
||||||
{
|
|
||||||
public function getTextLevelElements()
|
|
||||||
{
|
|
||||||
return $this->textLevelElements;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user