diff options
Diffstat (limited to 'www/wiki/vendor/param-processor/param-processor/tests/Unit/PackagePrivate/DimensionParserTest.php')
-rw-r--r-- | www/wiki/vendor/param-processor/param-processor/tests/Unit/PackagePrivate/DimensionParserTest.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/www/wiki/vendor/param-processor/param-processor/tests/Unit/PackagePrivate/DimensionParserTest.php b/www/wiki/vendor/param-processor/param-processor/tests/Unit/PackagePrivate/DimensionParserTest.php new file mode 100644 index 00000000..e82bb8b7 --- /dev/null +++ b/www/wiki/vendor/param-processor/param-processor/tests/Unit/PackagePrivate/DimensionParserTest.php @@ -0,0 +1,51 @@ +<?php + +declare( strict_types = 1 ); + +namespace ParamProcessor\Tests\Unit\PackagePrivate; + +use ParamProcessor\PackagePrivate\DimensionParser; +use PHPUnit\Framework\TestCase; +use ValueParsers\ParseException; +use ValueParsers\ParserOptions; + +class DimensionParserTest extends TestCase { + + public function testParserExceptionOnNonString() { + $this->expectException( ParseException::class ); + $this->parse( 32202 ); + } + + private function parse( $input ) { + return ( new DimensionParser() )->parse( $input ); + } + + /** + * @dataProvider validDimensionProvider + */ + public function testParsingValidInputs( string $input, string $expected ) { + $this->assertSame( $expected, $this->parse( $input ) ); + } + + public function validDimensionProvider() { + yield [ '10px', '10px' ]; + yield [ '10ex', '10ex' ]; + yield [ '10em', '10em' ]; + yield [ '2.5px', '2.5px' ]; + + yield [ '10 px', '10px' ]; + yield [ '10 px', '10px' ]; + yield [ ' 10 px ', '10px' ]; + + yield [ '10', '10px' ]; + yield [ '2.5', '2.5px' ]; + } + + public function testAlternateDefaultUnit() { + $this->assertSame( + '1%', + ( new DimensionParser( new ParserOptions( [ DimensionParser::DEFAULT_UNIT => '%' ] ) ) )->parse( '1' ) + ); + } + +} |