|
| 1 | +<?php |
| 2 | + |
| 3 | +declare(strict_types=1); |
| 4 | + |
| 5 | +namespace Sabberworm\CSS\Tests\Functional\Value; |
| 6 | + |
| 7 | +use PHPUnit\Framework\TestCase; |
| 8 | +use Sabberworm\CSS\Parsing\ParserState; |
| 9 | +use Sabberworm\CSS\Settings; |
| 10 | +use Sabberworm\CSS\Value\CSSFunction; |
| 11 | +use Sabberworm\CSS\Value\Size; |
| 12 | +use Sabberworm\CSS\Value\Value; |
| 13 | + |
| 14 | +/** |
| 15 | + * @covers \Sabberworm\CSS\Value\Value |
| 16 | + */ |
| 17 | +final class ValueTest extends TestCase |
| 18 | +{ |
| 19 | + /** |
| 20 | + * the default set of delimiters for parsing most values |
| 21 | + * |
| 22 | + * @see \Sabberworm\CSS\Rule\Rule::listDelimiterForRule |
| 23 | + * |
| 24 | + * @var list<non-empty-string> |
| 25 | + */ |
| 26 | + private const DEFAULT_DELIMITERS = [',', ' ', '/']; |
| 27 | + |
| 28 | + /** |
| 29 | + * @test |
| 30 | + */ |
| 31 | + public function parsesFirstArgumentInMaxFunction(): void |
| 32 | + { |
| 33 | + $parsedValue = Value::parseValue( |
| 34 | + new ParserState('max(300px, 400px);', Settings::create()), |
| 35 | + self::DEFAULT_DELIMITERS |
| 36 | + ); |
| 37 | + |
| 38 | + self::assertInstanceOf(CSSFunction::class, $parsedValue); |
| 39 | + $size = $parsedValue->getArguments()[0]; |
| 40 | + self::assertInstanceOf(Size::class, $size); |
| 41 | + self::assertSame(300.0, $size->getSize()); |
| 42 | + self::assertSame('px', $size->getUnit()); |
| 43 | + self::assertFalse($size->isColorComponent()); |
| 44 | + } |
| 45 | +} |
0 commit comments