diff --git a/Parser/Handler/StringHandler.php b/Parser/Handler/StringHandler.php index 5e00eda..41afb87 100644 --- a/Parser/Handler/StringHandler.php +++ b/Parser/Handler/StringHandler.php @@ -41,7 +41,7 @@ public function handle(Reader $reader, TokenStream $stream): bool { $quote = $reader->getSubstring(1); - if (!\in_array($quote, ["'", '"'])) { + if (!\in_array($quote, ["'", '"'], true)) { return false; } diff --git a/Parser/Parser.php b/Parser/Parser.php index f7eea2f..5a93a70 100644 --- a/Parser/Parser.php +++ b/Parser/Parser.php @@ -190,7 +190,7 @@ private function parseSimpleSelector(TokenStream $stream, bool $insideNegation = } $identifier = $stream->getNextIdentifier(); - if (\in_array(strtolower($identifier), ['first-line', 'first-letter', 'before', 'after'])) { + if (\in_array(strtolower($identifier), ['first-line', 'first-letter', 'before', 'after'], true)) { // Special case: CSS 2.1 pseudo-elements can have a single ':'. // Any new pseudo-element must have two. $pseudoElement = $identifier; diff --git a/Tests/CssSelectorConverterTest.php b/Tests/CssSelectorConverterTest.php index c197032..1d4dbb7 100644 --- a/Tests/CssSelectorConverterTest.php +++ b/Tests/CssSelectorConverterTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\CssSelectorConverter; use Symfony\Component\CssSelector\Exception\ParseException; @@ -51,7 +52,7 @@ public function testParseExceptions() (new CssSelectorConverter())->toXPath('h1:'); } - /** @dataProvider getCssToXPathWithoutPrefixTestData */ + #[DataProvider('getCssToXPathWithoutPrefixTestData')] public function testCssToXPathWithoutPrefix($css, $xpath) { $converter = new CssSelectorConverter(); diff --git a/Tests/Node/AbstractNodeTestCase.php b/Tests/Node/AbstractNodeTestCase.php index 521e6d8..64553bf 100644 --- a/Tests/Node/AbstractNodeTestCase.php +++ b/Tests/Node/AbstractNodeTestCase.php @@ -11,18 +11,19 @@ namespace Symfony\Component\CssSelector\Tests\Node; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Node\NodeInterface; abstract class AbstractNodeTestCase extends TestCase { - /** @dataProvider getToStringConversionTestData */ + #[DataProvider('getToStringConversionTestData')] public function testToStringConversion(NodeInterface $node, $representation) { $this->assertEquals($representation, (string) $node); } - /** @dataProvider getSpecificityValueTestData */ + #[DataProvider('getSpecificityValueTestData')] public function testSpecificityValue(NodeInterface $node, $value) { $this->assertEquals($value, $node->getSpecificity()->getValue()); diff --git a/Tests/Node/SpecificityTest.php b/Tests/Node/SpecificityTest.php index 8802e0c..ae76589 100644 --- a/Tests/Node/SpecificityTest.php +++ b/Tests/Node/SpecificityTest.php @@ -11,18 +11,19 @@ namespace Symfony\Component\CssSelector\Tests\Node; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Node\Specificity; class SpecificityTest extends TestCase { - /** @dataProvider getValueTestData */ + #[DataProvider('getValueTestData')] public function testValue(Specificity $specificity, $value) { $this->assertEquals($value, $specificity->getValue()); } - /** @dataProvider getValueTestData */ + #[DataProvider('getValueTestData')] public function testPlusValue(Specificity $specificity, $value) { $this->assertEquals($value + 123, $specificity->plus(new Specificity(1, 2, 3))->getValue()); @@ -39,7 +40,7 @@ public static function getValueTestData() ]; } - /** @dataProvider getCompareTestData */ + #[DataProvider('getCompareTestData')] public function testCompareTo(Specificity $a, Specificity $b, $result) { $this->assertEquals($result, $a->compareTo($b)); diff --git a/Tests/Parser/Handler/AbstractHandlerTestCase.php b/Tests/Parser/Handler/AbstractHandlerTestCase.php index 30ce10e..65754da 100644 --- a/Tests/Parser/Handler/AbstractHandlerTestCase.php +++ b/Tests/Parser/Handler/AbstractHandlerTestCase.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Handler; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Parser\Reader; use Symfony\Component\CssSelector\Parser\Token; @@ -21,7 +22,7 @@ */ abstract class AbstractHandlerTestCase extends TestCase { - /** @dataProvider getHandleValueTestData */ + #[DataProvider('getHandleValueTestData')] public function testHandleValue($value, Token $expectedToken, $remainingContent) { $reader = new Reader($value); @@ -32,7 +33,7 @@ public function testHandleValue($value, Token $expectedToken, $remainingContent) $this->assertRemainingContent($reader, $remainingContent); } - /** @dataProvider getDontHandleValueTestData */ + #[DataProvider('getDontHandleValueTestData')] public function testDontHandleValue($value) { $reader = new Reader($value); diff --git a/Tests/Parser/Handler/CommentHandlerTest.php b/Tests/Parser/Handler/CommentHandlerTest.php index c3be7f4..7705817 100644 --- a/Tests/Parser/Handler/CommentHandlerTest.php +++ b/Tests/Parser/Handler/CommentHandlerTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Handler; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\CssSelector\Parser\Handler\CommentHandler; use Symfony\Component\CssSelector\Parser\Reader; use Symfony\Component\CssSelector\Parser\Token; @@ -18,7 +19,7 @@ class CommentHandlerTest extends AbstractHandlerTestCase { - /** @dataProvider getHandleValueTestData */ + #[DataProvider('getHandleValueTestData')] public function testHandleValue($value, Token $unusedArgument, $remainingContent) { $reader = new Reader($value); diff --git a/Tests/Parser/ParserTest.php b/Tests/Parser/ParserTest.php index 82de5ab..15b8a1b 100644 --- a/Tests/Parser/ParserTest.php +++ b/Tests/Parser/ParserTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Exception\SyntaxErrorException; use Symfony\Component\CssSelector\Node\FunctionNode; @@ -20,7 +21,7 @@ class ParserTest extends TestCase { - /** @dataProvider getParserTestData */ + #[DataProvider('getParserTestData')] public function testParser($source, $representation) { $parser = new Parser(); @@ -28,7 +29,7 @@ public function testParser($source, $representation) $this->assertEquals($representation, array_map(fn (SelectorNode $node) => (string) $node->getTree(), $parser->parse($source))); } - /** @dataProvider getParserExceptionTestData */ + #[DataProvider('getParserExceptionTestData')] public function testParserException($source, $message) { $parser = new Parser(); @@ -41,7 +42,7 @@ public function testParserException($source, $message) } } - /** @dataProvider getPseudoElementsTestData */ + #[DataProvider('getPseudoElementsTestData')] public function testPseudoElements($source, $element, $pseudo) { $parser = new Parser(); @@ -54,7 +55,7 @@ public function testPseudoElements($source, $element, $pseudo) $this->assertEquals($pseudo, (string) $selector->getPseudoElement()); } - /** @dataProvider getSpecificityTestData */ + #[DataProvider('getSpecificityTestData')] public function testSpecificity($source, $value) { $parser = new Parser(); @@ -66,7 +67,7 @@ public function testSpecificity($source, $value) $this->assertEquals($value, $selector->getSpecificity()->getValue()); } - /** @dataProvider getParseSeriesTestData */ + #[DataProvider('getParseSeriesTestData')] public function testParseSeries($series, $a, $b) { $parser = new Parser(); @@ -78,7 +79,7 @@ public function testParseSeries($series, $a, $b) $this->assertEquals([$a, $b], Parser::parseSeries($function->getArguments())); } - /** @dataProvider getParseSeriesExceptionTestData */ + #[DataProvider('getParseSeriesExceptionTestData')] public function testParseSeriesException($series) { $parser = new Parser(); diff --git a/Tests/Parser/Shortcut/ClassParserTest.php b/Tests/Parser/Shortcut/ClassParserTest.php index ded92ea..c18b810 100644 --- a/Tests/Parser/Shortcut/ClassParserTest.php +++ b/Tests/Parser/Shortcut/ClassParserTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Node\SelectorNode; use Symfony\Component\CssSelector\Parser\Shortcut\ClassParser; @@ -20,7 +21,7 @@ */ class ClassParserTest extends TestCase { - /** @dataProvider getParseTestData */ + #[DataProvider('getParseTestData')] public function testParse($source, $representation) { $parser = new ClassParser(); diff --git a/Tests/Parser/Shortcut/ElementParserTest.php b/Tests/Parser/Shortcut/ElementParserTest.php index 4c10029..a4d1712 100644 --- a/Tests/Parser/Shortcut/ElementParserTest.php +++ b/Tests/Parser/Shortcut/ElementParserTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Node\SelectorNode; use Symfony\Component\CssSelector\Parser\Shortcut\ElementParser; @@ -20,7 +21,7 @@ */ class ElementParserTest extends TestCase { - /** @dataProvider getParseTestData */ + #[DataProvider('getParseTestData')] public function testParse($source, $representation) { $parser = new ElementParser(); diff --git a/Tests/Parser/Shortcut/HashParserTest.php b/Tests/Parser/Shortcut/HashParserTest.php index c8bfdef..d9225ce 100644 --- a/Tests/Parser/Shortcut/HashParserTest.php +++ b/Tests/Parser/Shortcut/HashParserTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Node\SelectorNode; use Symfony\Component\CssSelector\Parser\Shortcut\HashParser; @@ -20,7 +21,7 @@ */ class HashParserTest extends TestCase { - /** @dataProvider getParseTestData */ + #[DataProvider('getParseTestData')] public function testParse($source, $representation) { $parser = new HashParser(); diff --git a/Tests/XPath/TranslatorTest.php b/Tests/XPath/TranslatorTest.php index f521a94..621a61e 100644 --- a/Tests/XPath/TranslatorTest.php +++ b/Tests/XPath/TranslatorTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\CssSelector\Tests\XPath; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Exception\ExpressionErrorException; use Symfony\Component\CssSelector\Node\ElementNode; @@ -22,13 +23,13 @@ class TranslatorTest extends TestCase { - /** @dataProvider getXpathLiteralTestData */ + #[DataProvider('getXpathLiteralTestData')] public function testXpathLiteral($value, $literal) { $this->assertEquals($literal, Translator::getXpathLiteral($value)); } - /** @dataProvider getCssToXPathTestData */ + #[DataProvider('getCssToXPathTestData')] public function testCssToXPath($css, $xpath) { $translator = new Translator(); @@ -103,7 +104,7 @@ public function testAddAttributeMatchingClassNotExistsClass() $translator->addAttributeMatching($xpath, '', '', ''); } - /** @dataProvider getXmlLangTestData */ + #[DataProvider('getXmlLangTestData')] public function testXmlLang($css, array $elementsId) { $translator = new Translator(); @@ -115,7 +116,7 @@ public function testXmlLang($css, array $elementsId) } } - /** @dataProvider getHtmlIdsTestData */ + #[DataProvider('getHtmlIdsTestData')] public function testHtmlIds($css, array $elementsId) { $translator = new Translator(); @@ -136,7 +137,7 @@ public function testHtmlIds($css, array $elementsId) libxml_use_internal_errors($internalErrors); } - /** @dataProvider getHtmlShakespearTestData */ + #[DataProvider('getHtmlShakespearTestData')] public function testHtmlShakespear($css, $count) { $translator = new Translator(); @@ -156,18 +157,18 @@ public function testOnlyOfTypeFindsSingleChildrenOfGivenType() $translator->registerExtension(new HtmlExtension($translator)); $document = new \DOMDocument(); $document->loadHTML(<<<'HTML' - - -

- A -

-

- B - C -

- - -HTML + + +

+ A +

+

+ B + C +

+ + + HTML ); $xpath = new \DOMXPath($document); diff --git a/XPath/Translator.php b/XPath/Translator.php index b2623e5..7488a2b 100644 --- a/XPath/Translator.php +++ b/XPath/Translator.php @@ -91,7 +91,6 @@ public function cssToXPath(string $cssExpr, string $prefix = 'descendant-or-self { $selectors = $this->parseSelectors($cssExpr); - /** @var SelectorNode $selector */ foreach ($selectors as $index => $selector) { if (null !== $selector->getPseudoElement()) { throw new ExpressionErrorException('Pseudo-elements are not supported.'); diff --git a/composer.json b/composer.json index a753a1a..fd8234c 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ } ], "require": { - "php": ">=8.2" + "php": ">=8.4" }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" }, diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 7d8f839..75680db 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,10 +1,11 @@ @@ -18,7 +19,7 @@ - + ./ @@ -27,5 +28,9 @@ ./Tests ./vendor - + + + + + pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy