Skip to content

Commit 71f6e0e

Browse files
committed
Add test for DeclarationBlock returning null on failure
1 parent 1e8ca90 commit 71f6e0e

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/Functional/RuleSet/DeclarationBlockTest.php

+28
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,43 @@
66

77
use PHPUnit\Framework\TestCase;
88
use Sabberworm\CSS\OutputFormat;
9+
use Sabberworm\CSS\Parsing\ParserState;
910
use Sabberworm\CSS\Property\Selector;
1011
use Sabberworm\CSS\Rule\Rule;
1112
use Sabberworm\CSS\RuleSet\DeclarationBlock;
13+
use Sabberworm\CSS\Settings;
1214

1315
/**
1416
* @covers \Sabberworm\CSS\RuleSet\DeclarationBlock
1517
*/
1618
final class DeclarationBlockTest extends TestCase
1719
{
20+
/**
21+
* @return array<string, array{0: string}>
22+
*/
23+
public static function provideInvalidDeclarationBlock(): array
24+
{
25+
return [
26+
'no selector' => ['{ color: red; }'],
27+
'invalid selector' => ['/ { color: red; }'],
28+
'no opening brace' => ['body color: red; }'],
29+
];
30+
}
31+
32+
/**
33+
* @test
34+
*
35+
* @dataProvider provideInvalidDeclarationBlock
36+
*/
37+
public function parseReturnsNullForInvalidDeclarationBlock(string $invalidDeclarationBlock): void
38+
{
39+
$parserState = new ParserState($invalidDeclarationBlock, Settings::create());
40+
41+
$result = DeclarationBlock::parse($parserState);
42+
43+
self::assertSame(null, $result);
44+
}
45+
1846
/**
1947
* @test
2048
*/

0 commit comments

Comments
 (0)