mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Add some component level tests
This commit is contained in:
parent
c0792947a6
commit
d8d483bd6a
@ -4,6 +4,7 @@
|
||||
<testsuite name="ParsedownTests">
|
||||
<file>tests/ParsedownTest.php</file>
|
||||
<file>tests/CommonMarkTest.php</file>
|
||||
<directory suffix="Test.php">./tests/src</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<groups>
|
||||
|
21
psalm.xml
21
psalm.xml
@ -13,16 +13,7 @@
|
||||
<PossiblyUnusedMethod>
|
||||
<errorLevel type="suppress">
|
||||
<directory name="tests" />
|
||||
<referencedMethod name="Erusev\Parsedown\Components\Inlines\PlainText::text" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Container::contents" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Element::create" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Element::attributes" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Element::settingName" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Element::settingAttributes" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Renderables\Element::settingContents" />
|
||||
<referencedMethod name="Erusev\Parsedown\Parsing\Lines::appendingContext" />
|
||||
<referencedMethod name="Erusev\Parsedown\Parsing\Lines::last" />
|
||||
<referencedMethod name="Erusev\Parsedown\State::mergingWith" />
|
||||
<referencedMethod name="Erusev\Parsedown\Html\Sanitisation\Escaper::htmlElementValue" />
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\InlineTypes::addingHighPrecedence" />
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\InlineTypes::addingLowPrecedence" />
|
||||
@ -37,5 +28,17 @@
|
||||
<PropertyNotSetInConstructor>
|
||||
<errorLevel type="suppress"><directory name="tests" /></errorLevel>
|
||||
</PropertyNotSetInConstructor>
|
||||
<UnusedClass>
|
||||
<errorLevel type="suppress"><directory name="tests/src" /></errorLevel>
|
||||
</UnusedClass>
|
||||
<UndefinedInterfaceMethod>
|
||||
<errorLevel type="suppress"><directory name="tests/src" /></errorLevel>
|
||||
</UndefinedInterfaceMethod>
|
||||
<PossiblyNullArrayAccess>
|
||||
<errorLevel type="suppress"><directory name="tests/src" /></errorLevel>
|
||||
</PossiblyNullArrayAccess>
|
||||
<PossiblyNullReference>
|
||||
<errorLevel type="suppress"><directory name="tests/src" /></errorLevel>
|
||||
</PossiblyNullReference>
|
||||
</issueHandlers>
|
||||
</psalm>
|
||||
|
22
tests/src/Components/Inlines/PlainTextTest.php
Normal file
22
tests/src/Components/Inlines/PlainTextTest.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Erusev\Parsedown\Tests\Components\Inlines;
|
||||
|
||||
use Erusev\Parsedown\Components\Inlines\PlainText;
|
||||
use Erusev\Parsedown\Parsing\Excerpt;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class PlainTextTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
* @throws \PHPUnit\Framework\ExpectationFailedException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*/
|
||||
public function testPlainTextText()
|
||||
{
|
||||
$Plaintext = Plaintext::build(new Excerpt('foo', 0));
|
||||
|
||||
$this->assertSame('foo', $Plaintext->text());
|
||||
}
|
||||
}
|
31
tests/src/Html/Renderables/ContainerTest.php
Normal file
31
tests/src/Html/Renderables/ContainerTest.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Erusev\Parsedown\Tests\Html\Renderables;
|
||||
|
||||
use Erusev\Parsedown\Html\Renderables\Container;
|
||||
use Erusev\Parsedown\Html\Renderables\Element;
|
||||
use Erusev\Parsedown\Html\Renderables\Text;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class ContainerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
* @throws \PHPUnit\Framework\ExpectationFailedException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*/
|
||||
public function testContainerContents()
|
||||
{
|
||||
$Container = new Container([
|
||||
new Element('foo', [], null),
|
||||
new Text('bar'),
|
||||
]);
|
||||
|
||||
$Contents = $Container->contents();
|
||||
|
||||
$this->assertTrue($Contents[0] instanceof Element);
|
||||
$this->assertSame($Contents[0]->name(), 'foo');
|
||||
$this->assertTrue($Contents[1] instanceof Text);
|
||||
$this->assertSame($Contents[1]->getHtml(), 'bar');
|
||||
}
|
||||
}
|
67
tests/src/Html/Renderables/ElementTest.php
Normal file
67
tests/src/Html/Renderables/ElementTest.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Erusev\Parsedown\Tests\Html\Renderables;
|
||||
|
||||
use Erusev\Parsedown\Html\Renderables\Element;
|
||||
use Erusev\Parsedown\Html\Renderables\Text;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class ElementTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
* @throws \PHPUnit\Framework\ExpectationFailedException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*/
|
||||
public function testElementProperties()
|
||||
{
|
||||
$Element = new Element(
|
||||
'foo',
|
||||
[
|
||||
'bar' => 'baz',
|
||||
'boo' => 'bim',
|
||||
],
|
||||
[new Text('zoo')]
|
||||
);
|
||||
|
||||
$this->assertSame($Element->name(), 'foo');
|
||||
$this->assertSame(
|
||||
$Element->attributes(),
|
||||
[
|
||||
'bar' => 'baz',
|
||||
'boo' => 'bim',
|
||||
]
|
||||
);
|
||||
$this->assertTrue($Element->contents()[0] instanceof Text);
|
||||
$this->assertSame($Element->contents()[0]->getHtml(), 'zoo');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* @throws \PHPUnit\Framework\ExpectationFailedException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*/
|
||||
public function testSettingElementProperties()
|
||||
{
|
||||
$Element = new Element(
|
||||
'foo',
|
||||
[
|
||||
'bar' => 'baz',
|
||||
'boo' => 'bim',
|
||||
],
|
||||
[new Text('zoo')]
|
||||
);
|
||||
|
||||
$Element = $Element
|
||||
->settingAttributes(['bar' => 'bim'])
|
||||
->settingContents(null)
|
||||
;
|
||||
|
||||
$this->assertSame($Element->name(), 'foo');
|
||||
$this->assertSame($Element->attributes(), ['bar' => 'bim']);
|
||||
$this->assertSame($Element->contents(), null);
|
||||
|
||||
$Element = $Element->settingName('foo1');
|
||||
$this->assertSame($Element->name(), 'foo1');
|
||||
}
|
||||
}
|
32
tests/src/StateTest.php
Normal file
32
tests/src/StateTest.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Erusev\Parsedown\Tests;
|
||||
|
||||
use Erusev\Parsedown\Configurables\Breaks;
|
||||
use Erusev\Parsedown\Configurables\SafeMode;
|
||||
use Erusev\Parsedown\Configurables\StrictMode;
|
||||
use Erusev\Parsedown\State;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class StateTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
* @throws \PHPUnit\Framework\ExpectationFailedException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*/
|
||||
public function testStateMerge()
|
||||
{
|
||||
$State = new State;
|
||||
|
||||
$this->assertFalse($State->get(SafeMode::class)->isEnabled());
|
||||
$this->assertFalse($State->get(StrictMode::class)->isEnabled());
|
||||
$this->assertFalse($State->get(Breaks::class)->isEnabled());
|
||||
|
||||
$UpdatedState = $State->mergingWith(new State([SafeMode::enabled()]));
|
||||
|
||||
$this->assertTrue($UpdatedState->get(SafeMode::class)->isEnabled());
|
||||
$this->assertFalse($UpdatedState->get(StrictMode::class)->isEnabled());
|
||||
$this->assertFalse($UpdatedState->get(Breaks::class)->isEnabled());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user