Update composer dependencies
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 27 Mar 2019 19:32:33 +0000 (20:32 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 27 Mar 2019 19:32:33 +0000 (20:32 +0100)
48 files changed:
wcfsetup/install/files/lib/system/api/composer.lock
wcfsetup/install/files/lib/system/api/composer/installed.json
wcfsetup/install/files/lib/system/api/erusev/parsedown/Parsedown.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/LICENSE
wcfsetup/install/files/lib/system/api/symfony/css-selector/Node/FunctionNode.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Handler/StringHandler.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Parser.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Shortcut/ClassParser.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Shortcut/ElementParser.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Shortcut/HashParser.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Token.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/TokenStream.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/CssSelectorConverterTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/AttributeNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/ClassNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/ElementNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/FunctionNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/HashNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/NegationNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/PseudoNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/SelectorNodeTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Node/SpecificityTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/ParserTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/ReaderTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/Tests/XPath/TranslatorTest.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/AbstractExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/CombinationExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/FunctionExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/HtmlExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/NodeExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
wcfsetup/install/files/lib/system/api/symfony/css-selector/XPath/Translator.php
wcfsetup/install/files/lib/system/api/symfony/polyfill-mbstring/LICENSE
wcfsetup/install/files/lib/system/api/symfony/polyfill-mbstring/composer.json

index 1c2dc3cb9e6980dfd2d37bb491aea9d5fea77f4a..a760827465207384158475fd041ca513fdde2d17 100644 (file)
         },
         {
             "name": "erusev/parsedown",
-            "version": "1.7.1",
+            "version": "v1.7.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/erusev/parsedown.git",
-                "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
+                "reference": "d60bcdc46978357759ecb13cb4b078da783f8faf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
-                "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
+                "url": "https://api.github.com/repos/erusev/parsedown/zipball/d60bcdc46978357759ecb13cb4b078da783f8faf",
+                "reference": "d60bcdc46978357759ecb13cb4b078da783f8faf",
                 "shasum": ""
             },
             "require": {
@@ -93,7 +93,7 @@
                 "markdown",
                 "parser"
             ],
-            "time": "2018-03-08T01:11:30+00:00"
+            "time": "2019-03-17T17:19:46+00:00"
         },
         {
             "name": "ezyang/htmlpurifier",
         },
         {
             "name": "symfony/css-selector",
-            "version": "v3.4.20",
+            "version": "v3.4.23",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/css-selector.git",
-                "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8"
+                "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/css-selector/zipball/345b9a48595d1ab9630db791dbc3e721bf0233e8",
-                "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8",
+                "url": "https://api.github.com/repos/symfony/css-selector/zipball/8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
+                "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
                 "shasum": ""
             },
             "require": {
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "https://symfony.com",
-            "time": "2018-11-11T19:48:54+00:00"
+            "time": "2019-01-16T09:39:14+00:00"
         },
         {
             "name": "symfony/polyfill-mbstring",
-            "version": "v1.10.0",
+            "version": "v1.11.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+                "reference": "fe5e94c604826c35a32fa832f35bd036b6799609"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
-                "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609",
+                "reference": "fe5e94c604826c35a32fa832f35bd036b6799609",
                 "shasum": ""
             },
             "require": {
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.9-dev"
+                    "dev-master": "1.11-dev"
                 }
             },
             "autoload": {
                 "portable",
                 "shim"
             ],
-            "time": "2018-09-21T13:07:52+00:00"
+            "time": "2019-02-06T07:57:58+00:00"
         },
         {
             "name": "true/punycode",
index bbe6939c4a9e73475a311a5f24383787913630b7..dfe6121e26081b3b3b61355478002873c1e06bf2 100644 (file)
     },
     {
         "name": "erusev/parsedown",
-        "version": "1.7.1",
-        "version_normalized": "1.7.1.0",
+        "version": "v1.7.2",
+        "version_normalized": "1.7.2.0",
         "source": {
             "type": "git",
             "url": "https://github.com/erusev/parsedown.git",
-            "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
+            "reference": "d60bcdc46978357759ecb13cb4b078da783f8faf"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
-            "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
+            "url": "https://api.github.com/repos/erusev/parsedown/zipball/d60bcdc46978357759ecb13cb4b078da783f8faf",
+            "reference": "d60bcdc46978357759ecb13cb4b078da783f8faf",
             "shasum": ""
         },
         "require": {
@@ -66,7 +66,7 @@
         "require-dev": {
             "phpunit/phpunit": "^4.8.35"
         },
-        "time": "2018-03-08T01:11:30+00:00",
+        "time": "2019-03-17T17:19:46+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
     },
     {
         "name": "symfony/css-selector",
-        "version": "v3.4.20",
-        "version_normalized": "3.4.20.0",
+        "version": "v3.4.23",
+        "version_normalized": "3.4.23.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/css-selector.git",
-            "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8"
+            "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/css-selector/zipball/345b9a48595d1ab9630db791dbc3e721bf0233e8",
-            "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8",
+            "url": "https://api.github.com/repos/symfony/css-selector/zipball/8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
+            "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf",
             "shasum": ""
         },
         "require": {
             "php": "^5.5.9|>=7.0.8"
         },
-        "time": "2018-11-11T19:48:54+00:00",
+        "time": "2019-01-16T09:39:14+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
     },
     {
         "name": "symfony/polyfill-mbstring",
-        "version": "v1.10.0",
-        "version_normalized": "1.10.0.0",
+        "version": "v1.11.0",
+        "version_normalized": "1.11.0.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/polyfill-mbstring.git",
-            "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+            "reference": "fe5e94c604826c35a32fa832f35bd036b6799609"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
-            "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+            "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609",
+            "reference": "fe5e94c604826c35a32fa832f35bd036b6799609",
             "shasum": ""
         },
         "require": {
         "suggest": {
             "ext-mbstring": "For best performance"
         },
-        "time": "2018-09-21T13:07:52+00:00",
+        "time": "2019-02-06T07:57:58+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.9-dev"
+                "dev-master": "1.11-dev"
             }
         },
         "installation-source": "dist",
index 87d612ab892396372a12249035a2116e88ab0605..6843635cba040b4c7424f5c9c49721d43be702b1 100644 (file)
@@ -17,7 +17,7 @@ class Parsedown
 {
     # ~
 
-    const version = '1.7.1';
+    const version = '1.7.2';
 
     # ~
 
@@ -429,7 +429,21 @@ class Parsedown
 
             if (isset($matches[1]))
             {
-                $class = 'language-'.$matches[1];
+                /**
+                 * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes
+                 * Every HTML element may have a class attribute specified.
+                 * The attribute, if specified, must have a value that is a set
+                 * of space-separated tokens representing the various classes
+                 * that the element belongs to.
+                 * [...]
+                 * The space characters, for the purposes of this specification,
+                 * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab),
+                 * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and
+                 * U+000D CARRIAGE RETURN (CR).
+                 */
+                $language = substr($matches[1], 0, strcspn($matches[1], " \t\n\f\r"));
+
+                $class = 'language-'.$language;
 
                 $Element['attributes'] = array(
                     'class' => $class,
index 21d7fb9e2f29b50caca3a76f0647e94e2cc8ddc1..a677f43763ca467472898351b328aee41e2edd7c 100644 (file)
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2018 Fabien Potencier
+Copyright (c) 2004-2019 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index 50268255ce525cd72584f399cd4c489d685ed6d7..677affaa98d7c3f371442c5944756a52ee4a65e0 100644 (file)
@@ -34,7 +34,7 @@ class FunctionNode extends AbstractNode
      * @param string        $name
      * @param Token[]       $arguments
      */
-    public function __construct(NodeInterface $selector, $name, array $arguments = array())
+    public function __construct(NodeInterface $selector, $name, array $arguments = [])
     {
         $this->selector = $selector;
         $this->name = strtolower($name);
index 00155b04650d0a6dc7c99a570acd3821b45ca315..9869176b39466f838fedff946de855e34eea5bfd 100644 (file)
@@ -47,7 +47,7 @@ class StringHandler implements HandlerInterface
     {
         $quote = $reader->getSubstring(1);
 
-        if (!\in_array($quote, array("'", '"'))) {
+        if (!\in_array($quote, ["'", '"'])) {
             return false;
         }
 
index 87c05a74b59799444aabca60cbc5225c81fa1598..f07985ac52aba1365f87eadcff0f57117af321ee 100644 (file)
@@ -76,22 +76,22 @@ class Parser implements ParserInterface
 
         switch (true) {
             case 'odd' === $joined:
-                return array(2, 1);
+                return [2, 1];
             case 'even' === $joined:
-                return array(2, 0);
+                return [2, 0];
             case 'n' === $joined:
-                return array(1, 0);
+                return [1, 0];
             case false === strpos($joined, 'n'):
-                return array(0, $int($joined));
+                return [0, $int($joined)];
         }
 
         $split = explode('n', $joined);
         $first = isset($split[0]) ? $split[0] : null;
 
-        return array(
+        return [
             $first ? ('-' === $first || '+' === $first ? $int($first.'1') : $int($first)) : 1,
             isset($split[1]) && $split[1] ? $int($split[1]) : 0,
-        );
+        ];
     }
 
     /**
@@ -102,12 +102,12 @@ class Parser implements ParserInterface
     private function parseSelectorList(TokenStream $stream)
     {
         $stream->skipWhitespace();
-        $selectors = array();
+        $selectors = [];
 
         while (true) {
             $selectors[] = $this->parserSelectorNode($stream);
 
-            if ($stream->getPeek()->isDelimiter(array(','))) {
+            if ($stream->getPeek()->isDelimiter([','])) {
                 $stream->getNext();
                 $stream->skipWhitespace();
             } else {
@@ -133,7 +133,7 @@ class Parser implements ParserInterface
             $stream->skipWhitespace();
             $peek = $stream->getPeek();
 
-            if ($peek->isFileEnd() || $peek->isDelimiter(array(','))) {
+            if ($peek->isFileEnd() || $peek->isDelimiter([','])) {
                 break;
             }
 
@@ -141,7 +141,7 @@ class Parser implements ParserInterface
                 throw SyntaxErrorException::pseudoElementFound($pseudoElement, 'not at the end of a selector');
             }
 
-            if ($peek->isDelimiter(array('+', '>', '~'))) {
+            if ($peek->isDelimiter(['+', '>', '~'])) {
                 $combinator = $stream->getNext()->getValue();
                 $stream->skipWhitespace();
             } else {
@@ -177,8 +177,8 @@ class Parser implements ParserInterface
             $peek = $stream->getPeek();
             if ($peek->isWhitespace()
                 || $peek->isFileEnd()
-                || $peek->isDelimiter(array(',', '+', '>', '~'))
-                || ($insideNegation && $peek->isDelimiter(array(')')))
+                || $peek->isDelimiter([',', '+', '>', '~'])
+                || ($insideNegation && $peek->isDelimiter([')']))
             ) {
                 break;
             }
@@ -189,16 +189,16 @@ class Parser implements ParserInterface
 
             if ($peek->isHash()) {
                 $result = new Node\HashNode($result, $stream->getNext()->getValue());
-            } elseif ($peek->isDelimiter(array('.'))) {
+            } elseif ($peek->isDelimiter(['.'])) {
                 $stream->getNext();
                 $result = new Node\ClassNode($result, $stream->getNextIdentifier());
-            } elseif ($peek->isDelimiter(array('['))) {
+            } elseif ($peek->isDelimiter(['['])) {
                 $stream->getNext();
                 $result = $this->parseAttributeNode($result, $stream);
-            } elseif ($peek->isDelimiter(array(':'))) {
+            } elseif ($peek->isDelimiter([':'])) {
                 $stream->getNext();
 
-                if ($stream->getPeek()->isDelimiter(array(':'))) {
+                if ($stream->getPeek()->isDelimiter([':'])) {
                     $stream->getNext();
                     $pseudoElement = $stream->getNextIdentifier();
 
@@ -206,7 +206,7 @@ class Parser implements ParserInterface
                 }
 
                 $identifier = $stream->getNextIdentifier();
-                if (\in_array(strtolower($identifier), array('first-line', 'first-letter', 'before', 'after'))) {
+                if (\in_array(strtolower($identifier), ['first-line', 'first-letter', 'before', 'after'])) {
                     // Special case: CSS 2.1 pseudo-elements can have a single ':'.
                     // Any new pseudo-element must have two.
                     $pseudoElement = $identifier;
@@ -214,7 +214,7 @@ class Parser implements ParserInterface
                     continue;
                 }
 
-                if (!$stream->getPeek()->isDelimiter(array('('))) {
+                if (!$stream->getPeek()->isDelimiter(['('])) {
                     $result = new Node\PseudoNode($result, $identifier);
 
                     continue;
@@ -235,13 +235,13 @@ class Parser implements ParserInterface
                         throw SyntaxErrorException::pseudoElementFound($argumentPseudoElement, 'inside ::not()');
                     }
 
-                    if (!$next->isDelimiter(array(')'))) {
+                    if (!$next->isDelimiter([')'])) {
                         throw SyntaxErrorException::unexpectedToken('")"', $next);
                     }
 
                     $result = new Node\NegationNode($result, $argument);
                 } else {
-                    $arguments = array();
+                    $arguments = [];
                     $next = null;
 
                     while (true) {
@@ -251,10 +251,10 @@ class Parser implements ParserInterface
                         if ($next->isIdentifier()
                             || $next->isString()
                             || $next->isNumber()
-                            || $next->isDelimiter(array('+', '-'))
+                            || $next->isDelimiter(['+', '-'])
                         ) {
                             $arguments[] = $next;
-                        } elseif ($next->isDelimiter(array(')'))) {
+                        } elseif ($next->isDelimiter([')'])) {
                             break;
                         } else {
                             throw SyntaxErrorException::unexpectedToken('an argument', $next);
@@ -276,7 +276,7 @@ class Parser implements ParserInterface
             throw SyntaxErrorException::unexpectedToken('selector', $stream->getPeek());
         }
 
-        return array($result, $pseudoElement);
+        return [$result, $pseudoElement];
     }
 
     /**
@@ -288,7 +288,7 @@ class Parser implements ParserInterface
     {
         $peek = $stream->getPeek();
 
-        if ($peek->isIdentifier() || $peek->isDelimiter(array('*'))) {
+        if ($peek->isIdentifier() || $peek->isDelimiter(['*'])) {
             if ($peek->isIdentifier()) {
                 $namespace = $stream->getNext()->getValue();
             } else {
@@ -296,7 +296,7 @@ class Parser implements ParserInterface
                 $namespace = null;
             }
 
-            if ($stream->getPeek()->isDelimiter(array('|'))) {
+            if ($stream->getPeek()->isDelimiter(['|'])) {
                 $stream->getNext();
                 $element = $stream->getNextIdentifierOrStar();
             } else {
@@ -322,14 +322,14 @@ class Parser implements ParserInterface
         $stream->skipWhitespace();
         $attribute = $stream->getNextIdentifierOrStar();
 
-        if (null === $attribute && !$stream->getPeek()->isDelimiter(array('|'))) {
+        if (null === $attribute && !$stream->getPeek()->isDelimiter(['|'])) {
             throw SyntaxErrorException::unexpectedToken('"|"', $stream->getPeek());
         }
 
-        if ($stream->getPeek()->isDelimiter(array('|'))) {
+        if ($stream->getPeek()->isDelimiter(['|'])) {
             $stream->getNext();
 
-            if ($stream->getPeek()->isDelimiter(array('='))) {
+            if ($stream->getPeek()->isDelimiter(['='])) {
                 $namespace = null;
                 $stream->getNext();
                 $operator = '|=';
@@ -346,12 +346,12 @@ class Parser implements ParserInterface
             $stream->skipWhitespace();
             $next = $stream->getNext();
 
-            if ($next->isDelimiter(array(']'))) {
+            if ($next->isDelimiter([']'])) {
                 return new Node\AttributeNode($selector, $namespace, $attribute, 'exists', null);
-            } elseif ($next->isDelimiter(array('='))) {
+            } elseif ($next->isDelimiter(['='])) {
                 $operator = '=';
-            } elseif ($next->isDelimiter(array('^', '$', '*', '~', '|', '!'))
-                && $stream->getPeek()->isDelimiter(array('='))
+            } elseif ($next->isDelimiter(['^', '$', '*', '~', '|', '!'])
+                && $stream->getPeek()->isDelimiter(['='])
             ) {
                 $operator = $next->getValue().'=';
                 $stream->getNext();
@@ -375,7 +375,7 @@ class Parser implements ParserInterface
         $stream->skipWhitespace();
         $next = $stream->getNext();
 
-        if (!$next->isDelimiter(array(']'))) {
+        if (!$next->isDelimiter([']'])) {
             throw SyntaxErrorException::unexpectedToken('"]"', $next);
         }
 
index c513de5ff12ee68da5e992656be44a341a1b5b9e..3b9200623198378c460fee20b2005bddc80717e3 100644 (file)
@@ -41,11 +41,11 @@ class ClassParser implements ParserInterface
         //     2 => string 'input' (length=5)
         //     3 => string 'ab6bd_field' (length=11)
         if (preg_match('/^(?:([a-z]++)\|)?+([\w-]++|\*)?+\.([\w-]++)$/i', trim($source), $matches)) {
-            return array(
+            return [
                 new SelectorNode(new ClassNode(new ElementNode($matches[1] ?: null, $matches[2] ?: null), $matches[3])),
-            );
+            ];
         }
 
-        return array();
+        return [];
     }
 }
index c29f5e442e739960d88c0757bf1131c18cf8596c..392c6aabd191695f536f0ebc2017e0f229f86d85 100644 (file)
@@ -39,9 +39,9 @@ class ElementParser implements ParserInterface
         //     1 => string 'testns' (length=6)
         //     2 => string 'testel' (length=6)
         if (preg_match('/^(?:([a-z]++)\|)?([\w-]++|\*)$/i', trim($source), $matches)) {
-            return array(new SelectorNode(new ElementNode($matches[1] ?: null, $matches[2])));
+            return [new SelectorNode(new ElementNode($matches[1] ?: null, $matches[2]))];
         }
 
-        return array();
+        return [];
     }
 }
index 16d374af30ccc8b5c2d8396239eb8a6cea068602..276b57405d0d63a2acdff53d173db0ad741a9ad0 100644 (file)
@@ -38,9 +38,9 @@ class EmptyStringParser implements ParserInterface
     {
         // Matches an empty string
         if ('' == $source) {
-            return array(new SelectorNode(new ElementNode(null, '*')));
+            return [new SelectorNode(new ElementNode(null, '*'))];
         }
 
-        return array();
+        return [];
     }
 }
index 3f3883bb8d2e91af8cbc3a5a79dfb387dc1d2259..0ffcb6deefc7c4c4d4d9e66de1529b01966706aa 100644 (file)
@@ -41,11 +41,11 @@ class HashParser implements ParserInterface
         //     2 => string 'input' (length=5)
         //     3 => string 'ab6bd_field' (length=11)
         if (preg_match('/^(?:([a-z]++)\|)?+([\w-]++|\*)?+#([\w-]++)$/i', trim($source), $matches)) {
-            return array(
+            return [
                 new SelectorNode(new HashNode(new ElementNode($matches[1] ?: null, $matches[2] ?: null), $matches[3])),
-            );
+            ];
         }
 
-        return array();
+        return [];
     }
 }
index 72baae776dab37072c8bd12a7222093bdeea470b..d641da86561a866f8db756b43ad8e407f0cc4582 100644 (file)
@@ -82,7 +82,7 @@ class Token
     /**
      * @return bool
      */
-    public function isDelimiter(array $values = array())
+    public function isDelimiter(array $values = [])
     {
         if (self::TYPE_DELIMITER !== $this->type) {
             return false;
index d2aee541cd0c67190b9a9768e3e307deec68057e..843e330b523e084d6a93bfc675e82066627ffb42 100644 (file)
@@ -29,12 +29,12 @@ class TokenStream
     /**
      * @var Token[]
      */
-    private $tokens = array();
+    private $tokens = [];
 
     /**
      * @var Token[]
      */
-    private $used = array();
+    private $used = [];
 
     /**
      * @var int
@@ -154,7 +154,7 @@ class TokenStream
             return $next->getValue();
         }
 
-        if ($next->isDelimiter(array('*'))) {
+        if ($next->isDelimiter(['*'])) {
             return;
         }
 
index e32b4d20ce9f880d7b348b09406d221df51aece5..fc65bc68463f97134c4d6d2b0117b624938343a4 100644 (file)
@@ -38,14 +38,14 @@ class Tokenizer
         $patterns = new TokenizerPatterns();
         $escaping = new TokenizerEscaping($patterns);
 
-        $this->handlers = array(
+        $this->handlers = [
             new Handler\WhitespaceHandler(),
             new Handler\IdentifierHandler($patterns, $escaping),
             new Handler\HashHandler($patterns, $escaping),
             new Handler\StringHandler($patterns, $escaping),
             new Handler\NumberHandler($patterns),
             new Handler\CommentHandler(),
-        );
+        ];
     }
 
     /**
index a3eea7ad2186965283894054ba8cb9c1b1eefb72..cd0fd785e53d844652f7596342d85c6e39f23b81 100644 (file)
@@ -55,22 +55,22 @@ class CssSelectorConverterTest extends TestCase
 
     public function getCssToXPathWithoutPrefixTestData()
     {
-        return array(
-            array('h1', 'h1'),
-            array('foo|h1', 'foo:h1'),
-            array('h1, h2, h3', 'h1 | h2 | h3'),
-            array('h1:nth-child(3n+1)', "*/*[(name() = 'h1') and (position() - 1 >= 0 and (position() - 1) mod 3 = 0)]"),
-            array('h1 > p', 'h1/p'),
-            array('h1#foo', "h1[@id = 'foo']"),
-            array('h1.foo', "h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('h1[class*="foo bar"]', "h1[@class and contains(@class, 'foo bar')]"),
-            array('h1[foo|class*="foo bar"]', "h1[@foo:class and contains(@foo:class, 'foo bar')]"),
-            array('h1[class]', 'h1[@class]'),
-            array('h1 .foo', "h1/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('h1 #foo', "h1/descendant-or-self::*/*[@id = 'foo']"),
-            array('h1 [class*=foo]', "h1/descendant-or-self::*/*[@class and contains(@class, 'foo')]"),
-            array('div>.foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('div > .foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-        );
+        return [
+            ['h1', 'h1'],
+            ['foo|h1', 'foo:h1'],
+            ['h1, h2, h3', 'h1 | h2 | h3'],
+            ['h1:nth-child(3n+1)', "*/*[(name() = 'h1') and (position() - 1 >= 0 and (position() - 1) mod 3 = 0)]"],
+            ['h1 > p', 'h1/p'],
+            ['h1#foo', "h1[@id = 'foo']"],
+            ['h1.foo', "h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"],
+            ['h1[class*="foo bar"]', "h1[@class and contains(@class, 'foo bar')]"],
+            ['h1[foo|class*="foo bar"]', "h1[@foo:class and contains(@foo:class, 'foo bar')]"],
+            ['h1[class]', 'h1[@class]'],
+            ['h1 .foo', "h1/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"],
+            ['h1 #foo', "h1/descendant-or-self::*/*[@id = 'foo']"],
+            ['h1 [class*=foo]', "h1/descendant-or-self::*/*[@class and contains(@class, 'foo')]"],
+            ['div>.foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"],
+            ['div > .foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"],
+        ];
     }
 }
index 1fd090f5a6e8c1f1109282f65d85f24f28f29289..4d60074061f0727e39f52a8bee855e1c32e40878 100644 (file)
@@ -18,20 +18,20 @@ class AttributeNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 'Attribute[Element[*][attribute]]'),
-            array(new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), "Attribute[Element[*][attribute $= 'value']]"),
-            array(new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), "Attribute[Element[*][namespace|attribute $= 'value']]"),
-        );
+        return [
+            [new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 'Attribute[Element[*][attribute]]'],
+            [new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), "Attribute[Element[*][attribute $= 'value']]"],
+            [new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), "Attribute[Element[*][namespace|attribute $= 'value']]"],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 10),
-            array(new AttributeNode(new ElementNode(null, 'element'), null, 'attribute', 'exists', null), 11),
-            array(new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), 10),
-            array(new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), 10),
-        );
+        return [
+            [new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 10],
+            [new AttributeNode(new ElementNode(null, 'element'), null, 'attribute', 'exists', null), 11],
+            [new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), 10],
+            [new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), 10],
+        ];
     }
 }
index e0ab45accc31de8f51013ab80e37f239d16657fd..aa80c92792f39222b7918cafe6136a21317b19ca 100644 (file)
@@ -18,16 +18,16 @@ class ClassNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new ClassNode(new ElementNode(), 'class'), 'Class[Element[*].class]'),
-        );
+        return [
+            [new ClassNode(new ElementNode(), 'class'), 'Class[Element[*].class]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new ClassNode(new ElementNode(), 'class'), 10),
-            array(new ClassNode(new ElementNode(null, 'element'), 'class'), 11),
-        );
+        return [
+            [new ClassNode(new ElementNode(), 'class'), 10],
+            [new ClassNode(new ElementNode(null, 'element'), 'class'), 11],
+        ];
     }
 }
index 9547298a6fdf3faee1450dee4539d80f049b5cd5..435eaa6aa69811fa05d3b6b005eb9b9241f0345e 100644 (file)
@@ -18,18 +18,18 @@ class CombinedSelectorNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 'CombinedSelector[Element[*] > Element[*]]'),
-            array(new CombinedSelectorNode(new ElementNode(), ' ', new ElementNode()), 'CombinedSelector[Element[*] <followed> Element[*]]'),
-        );
+        return [
+            [new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 'CombinedSelector[Element[*] > Element[*]]'],
+            [new CombinedSelectorNode(new ElementNode(), ' ', new ElementNode()), 'CombinedSelector[Element[*] <followed> Element[*]]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 0),
-            array(new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode()), 1),
-            array(new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode(null, 'element')), 2),
-        );
+        return [
+            [new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 0],
+            [new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode()), 1],
+            [new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode(null, 'element')), 2],
+        ];
     }
 }
index 6d24789320561905a29555d7ea307f1b7d1ac29c..e0797ff09cf5adeeb4c6991d37d9351d2572038a 100644 (file)
@@ -17,19 +17,19 @@ class ElementNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new ElementNode(), 'Element[*]'),
-            array(new ElementNode(null, 'element'), 'Element[element]'),
-            array(new ElementNode('namespace', 'element'), 'Element[namespace|element]'),
-        );
+        return [
+            [new ElementNode(), 'Element[*]'],
+            [new ElementNode(null, 'element'), 'Element[element]'],
+            [new ElementNode('namespace', 'element'), 'Element[namespace|element]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new ElementNode(), 0),
-            array(new ElementNode(null, 'element'), 1),
-            array(new ElementNode('namespace', 'element'), 1),
-        );
+        return [
+            [new ElementNode(), 0],
+            [new ElementNode(null, 'element'), 1],
+            [new ElementNode('namespace', 'element'), 1],
+        ];
     }
 }
index ee3ce51ba549954ecf473d313fa96638e8ab98fd..0932393e1aa103a40229010446de0eaa94e2ab3f 100644 (file)
@@ -19,29 +19,29 @@ class FunctionNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new FunctionNode(new ElementNode(), 'function'), 'Function[Element[*]:function()]'),
-            array(new FunctionNode(new ElementNode(), 'function', array(
+        return [
+            [new FunctionNode(new ElementNode(), 'function'), 'Function[Element[*]:function()]'],
+            [new FunctionNode(new ElementNode(), 'function', [
                 new Token(Token::TYPE_IDENTIFIER, 'value', 0),
-            )), "Function[Element[*]:function(['value'])]"),
-            array(new FunctionNode(new ElementNode(), 'function', array(
+            ]), "Function[Element[*]:function(['value'])]"],
+            [new FunctionNode(new ElementNode(), 'function', [
                 new Token(Token::TYPE_STRING, 'value1', 0),
                 new Token(Token::TYPE_NUMBER, 'value2', 0),
-            )), "Function[Element[*]:function(['value1', 'value2'])]"),
-        );
+            ]), "Function[Element[*]:function(['value1', 'value2'])]"],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new FunctionNode(new ElementNode(), 'function'), 10),
-            array(new FunctionNode(new ElementNode(), 'function', array(
+        return [
+            [new FunctionNode(new ElementNode(), 'function'), 10],
+            [new FunctionNode(new ElementNode(), 'function', [
                 new Token(Token::TYPE_IDENTIFIER, 'value', 0),
-            )), 10),
-            array(new FunctionNode(new ElementNode(), 'function', array(
+            ]), 10],
+            [new FunctionNode(new ElementNode(), 'function', [
                 new Token(Token::TYPE_STRING, 'value1', 0),
                 new Token(Token::TYPE_NUMBER, 'value2', 0),
-            )), 10),
-        );
+            ]), 10],
+        ];
     }
 }
index 3bc74da9459c360dc3293ac3f51ae7c44abe1f62..ad6765b8625c437080fc4dd74ca19ad7b520097a 100644 (file)
@@ -18,16 +18,16 @@ class HashNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new HashNode(new ElementNode(), 'id'), 'Hash[Element[*]#id]'),
-        );
+        return [
+            [new HashNode(new ElementNode(), 'id'), 'Hash[Element[*]#id]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new HashNode(new ElementNode(), 'id'), 100),
-            array(new HashNode(new ElementNode(null, 'id'), 'class'), 101),
-        );
+        return [
+            [new HashNode(new ElementNode(), 'id'), 100],
+            [new HashNode(new ElementNode(null, 'id'), 'class'), 101],
+        ];
     }
 }
index ed4d2482c391e63b5619f536ecc52465288ae2bf..90b684ceec8b4603ec49e105ab65caefae9810bc 100644 (file)
@@ -19,15 +19,15 @@ class NegationNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 'Negation[Element[*]:not(Class[Element[*].class])]'),
-        );
+        return [
+            [new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 'Negation[Element[*]:not(Class[Element[*].class])]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 10),
-        );
+        return [
+            [new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 10],
+        ];
     }
 }
index bc57813cc8fe16300834a2ab1e5c100d6e2870ae..4e78776c02a41c0d16d69b429e21933055e960cd 100644 (file)
@@ -18,15 +18,15 @@ class PseudoNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new PseudoNode(new ElementNode(), 'pseudo'), 'Pseudo[Element[*]:pseudo]'),
-        );
+        return [
+            [new PseudoNode(new ElementNode(), 'pseudo'), 'Pseudo[Element[*]:pseudo]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new PseudoNode(new ElementNode(), 'pseudo'), 10),
-        );
+        return [
+            [new PseudoNode(new ElementNode(), 'pseudo'), 10],
+        ];
     }
 }
index 5badf71d16d1bb9f92714e24414f91ca541607e3..85e3bdac3fdeff39093e7462e52da92a528e0a72 100644 (file)
@@ -18,17 +18,17 @@ class SelectorNodeTest extends AbstractNodeTest
 {
     public function getToStringConversionTestData()
     {
-        return array(
-            array(new SelectorNode(new ElementNode()), 'Selector[Element[*]]'),
-            array(new SelectorNode(new ElementNode(), 'pseudo'), 'Selector[Element[*]::pseudo]'),
-        );
+        return [
+            [new SelectorNode(new ElementNode()), 'Selector[Element[*]]'],
+            [new SelectorNode(new ElementNode(), 'pseudo'), 'Selector[Element[*]::pseudo]'],
+        ];
     }
 
     public function getSpecificityValueTestData()
     {
-        return array(
-            array(new SelectorNode(new ElementNode()), 0),
-            array(new SelectorNode(new ElementNode(), 'pseudo'), 1),
-        );
+        return [
+            [new SelectorNode(new ElementNode()), 0],
+            [new SelectorNode(new ElementNode(), 'pseudo'), 1],
+        ];
     }
 }
index b58eb8929c85e4c562938659b877133eed004281..bf48d49ffdbd46a0d87e3206edf848a38fd9daab 100644 (file)
@@ -30,13 +30,13 @@ class SpecificityTest extends TestCase
 
     public function getValueTestData()
     {
-        return array(
-            array(new Specificity(0, 0, 0), 0),
-            array(new Specificity(0, 0, 2), 2),
-            array(new Specificity(0, 3, 0), 30),
-            array(new Specificity(4, 0, 0), 400),
-            array(new Specificity(4, 3, 2), 432),
-        );
+        return [
+            [new Specificity(0, 0, 0), 0],
+            [new Specificity(0, 0, 2), 2],
+            [new Specificity(0, 3, 0), 30],
+            [new Specificity(4, 0, 0), 400],
+            [new Specificity(4, 3, 2), 432],
+        ];
     }
 
     /** @dataProvider getCompareTestData */
@@ -47,17 +47,17 @@ class SpecificityTest extends TestCase
 
     public function getCompareTestData()
     {
-        return array(
-            array(new Specificity(0, 0, 0), new Specificity(0, 0, 0), 0),
-            array(new Specificity(0, 0, 1), new Specificity(0, 0, 1), 0),
-            array(new Specificity(0, 0, 2), new Specificity(0, 0, 1), 1),
-            array(new Specificity(0, 0, 2), new Specificity(0, 0, 3), -1),
-            array(new Specificity(0, 4, 0), new Specificity(0, 4, 0), 0),
-            array(new Specificity(0, 6, 0), new Specificity(0, 5, 11), 1),
-            array(new Specificity(0, 7, 0), new Specificity(0, 8, 0), -1),
-            array(new Specificity(9, 0, 0), new Specificity(9, 0, 0), 0),
-            array(new Specificity(11, 0, 0), new Specificity(10, 11, 0), 1),
-            array(new Specificity(12, 11, 0), new Specificity(13, 0, 0), -1),
-        );
+        return [
+            [new Specificity(0, 0, 0), new Specificity(0, 0, 0), 0],
+            [new Specificity(0, 0, 1), new Specificity(0, 0, 1), 0],
+            [new Specificity(0, 0, 2), new Specificity(0, 0, 1), 1],
+            [new Specificity(0, 0, 2), new Specificity(0, 0, 3), -1],
+            [new Specificity(0, 4, 0), new Specificity(0, 4, 0), 0],
+            [new Specificity(0, 6, 0), new Specificity(0, 5, 11), 1],
+            [new Specificity(0, 7, 0), new Specificity(0, 8, 0), -1],
+            [new Specificity(9, 0, 0), new Specificity(9, 0, 0), 0],
+            [new Specificity(11, 0, 0), new Specificity(10, 11, 0), 1],
+            [new Specificity(12, 11, 0), new Specificity(13, 0, 0), -1],
+        ];
     }
 }
index f5c9dc8bfecb75130e9844697557b1b6c2773b0a..aaed55c205a9a885c43478d5e66c2b4f752a1821 100644 (file)
@@ -54,7 +54,7 @@ abstract class AbstractHandlerTest extends TestCase
         $property = new \ReflectionProperty($stream, 'tokens');
         $property->setAccessible(true);
 
-        $this->assertEquals(array(), $property->getValue($stream));
+        $this->assertEquals([], $property->getValue($stream));
     }
 
     protected function assertRemainingContent(Reader $reader, $remainingContent)
index 3961bf7d55ad9ee48d6356cd3ea02a34ff9c6eca..de400478d8a0e4ebf2a40806911b0c9cfc6235e8 100644 (file)
@@ -32,20 +32,20 @@ class CommentHandlerTest extends AbstractHandlerTest
 
     public function getHandleValueTestData()
     {
-        return array(
+        return [
             // 2nd argument only exists for inherited method compatibility
-            array('/* comment */', new Token(null, null, null), ''),
-            array('/* comment */foo', new Token(null, null, null), 'foo'),
-        );
+            ['/* comment */', new Token(null, null, null), ''],
+            ['/* comment */foo', new Token(null, null, null), 'foo'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('>'),
-            array('+'),
-            array(' '),
-        );
+        return [
+            ['>'],
+            ['+'],
+            [' '],
+        ];
     }
 
     protected function generateHandler()
index 5730120bf74d286c696d2d69ffaf6e252e427aac..9444f5106f33d152c3150f22805853e81b59a77f 100644 (file)
@@ -20,24 +20,24 @@ class HashHandlerTest extends AbstractHandlerTest
 {
     public function getHandleValueTestData()
     {
-        return array(
-            array('#id', new Token(Token::TYPE_HASH, 'id', 0), ''),
-            array('#123', new Token(Token::TYPE_HASH, '123', 0), ''),
+        return [
+            ['#id', new Token(Token::TYPE_HASH, 'id', 0), ''],
+            ['#123', new Token(Token::TYPE_HASH, '123', 0), ''],
 
-            array('#id.class', new Token(Token::TYPE_HASH, 'id', 0), '.class'),
-            array('#id element', new Token(Token::TYPE_HASH, 'id', 0), ' element'),
-        );
+            ['#id.class', new Token(Token::TYPE_HASH, 'id', 0), '.class'],
+            ['#id element', new Token(Token::TYPE_HASH, 'id', 0), ' element'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('id'),
-            array('123'),
-            array('<'),
-            array('<'),
-            array('#'),
-        );
+        return [
+            ['id'],
+            ['123'],
+            ['<'],
+            ['<'],
+            ['#'],
+        ];
     }
 
     protected function generateHandler()
index f56430c7e83ab7544b875252db29807862602f0f..c54ba537b8a272bdc4412425f664217804ed9e27 100644 (file)
@@ -20,24 +20,24 @@ class IdentifierHandlerTest extends AbstractHandlerTest
 {
     public function getHandleValueTestData()
     {
-        return array(
-            array('foo', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ''),
-            array('foo|bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '|bar'),
-            array('foo.class', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '.class'),
-            array('foo[attr]', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '[attr]'),
-            array('foo bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ' bar'),
-        );
+        return [
+            ['foo', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ''],
+            ['foo|bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '|bar'],
+            ['foo.class', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '.class'],
+            ['foo[attr]', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '[attr]'],
+            ['foo bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ' bar'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('>'),
-            array('+'),
-            array(' '),
-            array('*|foo'),
-            array('/* comment */'),
-        );
+        return [
+            ['>'],
+            ['+'],
+            [' '],
+            ['*|foo'],
+            ['/* comment */'],
+        ];
     }
 
     protected function generateHandler()
index 675fd05b43ef895ab439939ef0c04deb2bb46349..b43d3694218405cf381a22d89342ecaac51cd657 100644 (file)
@@ -19,26 +19,26 @@ class NumberHandlerTest extends AbstractHandlerTest
 {
     public function getHandleValueTestData()
     {
-        return array(
-            array('12', new Token(Token::TYPE_NUMBER, '12', 0), ''),
-            array('12.34', new Token(Token::TYPE_NUMBER, '12.34', 0), ''),
-            array('+12.34', new Token(Token::TYPE_NUMBER, '+12.34', 0), ''),
-            array('-12.34', new Token(Token::TYPE_NUMBER, '-12.34', 0), ''),
-
-            array('12 arg', new Token(Token::TYPE_NUMBER, '12', 0), ' arg'),
-            array('12]', new Token(Token::TYPE_NUMBER, '12', 0), ']'),
-        );
+        return [
+            ['12', new Token(Token::TYPE_NUMBER, '12', 0), ''],
+            ['12.34', new Token(Token::TYPE_NUMBER, '12.34', 0), ''],
+            ['+12.34', new Token(Token::TYPE_NUMBER, '+12.34', 0), ''],
+            ['-12.34', new Token(Token::TYPE_NUMBER, '-12.34', 0), ''],
+
+            ['12 arg', new Token(Token::TYPE_NUMBER, '12', 0), ' arg'],
+            ['12]', new Token(Token::TYPE_NUMBER, '12', 0), ']'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('hello'),
-            array('>'),
-            array('+'),
-            array(' '),
-            array('/* comment */'),
-        );
+        return [
+            ['hello'],
+            ['>'],
+            ['+'],
+            [' '],
+            ['/* comment */'],
+        ];
     }
 
     protected function generateHandler()
index 8ea5d4d58776cc508fc3f8a2f620c3e3684de18b..baa72735ff16545ead4c45c4046dc4425832c668 100644 (file)
@@ -20,25 +20,25 @@ class StringHandlerTest extends AbstractHandlerTest
 {
     public function getHandleValueTestData()
     {
-        return array(
-            array('"hello"', new Token(Token::TYPE_STRING, 'hello', 1), ''),
-            array('"1"', new Token(Token::TYPE_STRING, '1', 1), ''),
-            array('" "', new Token(Token::TYPE_STRING, ' ', 1), ''),
-            array('""', new Token(Token::TYPE_STRING, '', 1), ''),
-            array("'hello'", new Token(Token::TYPE_STRING, 'hello', 1), ''),
-
-            array("'foo'bar", new Token(Token::TYPE_STRING, 'foo', 1), 'bar'),
-        );
+        return [
+            ['"hello"', new Token(Token::TYPE_STRING, 'hello', 1), ''],
+            ['"1"', new Token(Token::TYPE_STRING, '1', 1), ''],
+            ['" "', new Token(Token::TYPE_STRING, ' ', 1), ''],
+            ['""', new Token(Token::TYPE_STRING, '', 1), ''],
+            ["'hello'", new Token(Token::TYPE_STRING, 'hello', 1), ''],
+
+            ["'foo'bar", new Token(Token::TYPE_STRING, 'foo', 1), 'bar'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('hello'),
-            array('>'),
-            array('1'),
-            array(' '),
-        );
+        return [
+            ['hello'],
+            ['>'],
+            ['1'],
+            [' '],
+        ];
     }
 
     protected function generateHandler()
index f5f9e71dc228782051938ca231c5d61589419ef6..67509ef1354730bbf8e1bc1fc960c97f0d3fbdfa 100644 (file)
@@ -18,23 +18,23 @@ class WhitespaceHandlerTest extends AbstractHandlerTest
 {
     public function getHandleValueTestData()
     {
-        return array(
-            array(' ', new Token(Token::TYPE_WHITESPACE, ' ', 0), ''),
-            array("\n", new Token(Token::TYPE_WHITESPACE, "\n", 0), ''),
-            array("\t", new Token(Token::TYPE_WHITESPACE, "\t", 0), ''),
+        return [
+            [' ', new Token(Token::TYPE_WHITESPACE, ' ', 0), ''],
+            ["\n", new Token(Token::TYPE_WHITESPACE, "\n", 0), ''],
+            ["\t", new Token(Token::TYPE_WHITESPACE, "\t", 0), ''],
 
-            array(' foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), 'foo'),
-            array(' .foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), '.foo'),
-        );
+            [' foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), 'foo'],
+            [' .foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), '.foo'],
+        ];
     }
 
     public function getDontHandleValueTestData()
     {
-        return array(
-            array('>'),
-            array('1'),
-            array('a'),
-        );
+        return [
+            ['>'],
+            ['1'],
+            ['a'],
+        ];
     }
 
     protected function generateHandler()
index 53b35a95473cc03ed00f0bc6fab3be5b704c8373..de3509348c05158b3945fd87e8d106006c0d7d96 100644 (file)
@@ -77,7 +77,7 @@ class ParserTest extends TestCase
 
         /** @var FunctionNode $function */
         $function = $selectors[0]->getTree();
-        $this->assertEquals(array($a, $b), Parser::parseSeries($function->getArguments()));
+        $this->assertEquals([$a, $b], Parser::parseSeries($function->getArguments()));
     }
 
     /** @dataProvider getParseSeriesExceptionTestData */
@@ -95,156 +95,159 @@ class ParserTest extends TestCase
 
     public function getParserTestData()
     {
-        return array(
-            array('*', array('Element[*]')),
-            array('*|*', array('Element[*]')),
-            array('*|foo', array('Element[foo]')),
-            array('foo|*', array('Element[foo|*]')),
-            array('foo|bar', array('Element[foo|bar]')),
-            array('#foo#bar', array('Hash[Hash[Element[*]#foo]#bar]')),
-            array('div>.foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div> .foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div >.foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div > .foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array("div \n>  \t \t .foo", array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('td.foo,.bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo, .bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array("td.foo\t\r\n\f ,\t\r\n\f .bar", array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo,.bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo, .bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array("td.foo\t\r\n\f ,\t\r\n\f .bar", array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('div, td.foo, div.bar span', array('Element[div]', 'Class[Element[td].foo]', 'CombinedSelector[Class[Element[div].bar] <followed> Element[span]]')),
-            array('div > p', array('CombinedSelector[Element[div] > Element[p]]')),
-            array('td:first', array('Pseudo[Element[td]:first]')),
-            array('td :first', array('CombinedSelector[Element[td] <followed> Pseudo[Element[*]:first]]')),
-            array('a[name]', array('Attribute[Element[a][name]]')),
-            array("a[ name\t]", array('Attribute[Element[a][name]]')),
-            array('a [name]', array('CombinedSelector[Element[a] <followed> Attribute[Element[*][name]]]')),
-            array('a[rel="include"]', array("Attribute[Element[a][rel = 'include']]")),
-            array('a[rel = include]', array("Attribute[Element[a][rel = 'include']]")),
-            array("a[hreflang |= 'en']", array("Attribute[Element[a][hreflang |= 'en']]")),
-            array('a[hreflang|=en]', array("Attribute[Element[a][hreflang |= 'en']]")),
-            array('div:nth-child(10)', array("Function[Element[div]:nth-child(['10'])]")),
-            array(':nth-child(2n+2)', array("Function[Element[*]:nth-child(['2', 'n', '+2'])]")),
-            array('div:nth-of-type(10)', array("Function[Element[div]:nth-of-type(['10'])]")),
-            array('div div:nth-of-type(10) .aclass', array("CombinedSelector[CombinedSelector[Element[div] <followed> Function[Element[div]:nth-of-type(['10'])]] <followed> Class[Element[*].aclass]]")),
-            array('label:only', array('Pseudo[Element[label]:only]')),
-            array('a:lang(fr)', array("Function[Element[a]:lang(['fr'])]")),
-            array('div:contains("foo")', array("Function[Element[div]:contains(['foo'])]")),
-            array('div#foobar', array('Hash[Element[div]#foobar]')),
-            array('div:not(div.foo)', array('Negation[Element[div]:not(Class[Element[div].foo])]')),
-            array('td ~ th', array('CombinedSelector[Element[td] ~ Element[th]]')),
-            array('.foo[data-bar][data-baz=0]', array("Attribute[Attribute[Class[Element[*].foo][data-bar]][data-baz = '0']]")),
-        );
+        return [
+            ['*', ['Element[*]']],
+            ['*|*', ['Element[*]']],
+            ['*|foo', ['Element[foo]']],
+            ['foo|*', ['Element[foo|*]']],
+            ['foo|bar', ['Element[foo|bar]']],
+            ['#foo#bar', ['Hash[Hash[Element[*]#foo]#bar]']],
+            ['div>.foo', ['CombinedSelector[Element[div] > Class[Element[*].foo]]']],
+            ['div> .foo', ['CombinedSelector[Element[div] > Class[Element[*].foo]]']],
+            ['div >.foo', ['CombinedSelector[Element[div] > Class[Element[*].foo]]']],
+            ['div > .foo', ['CombinedSelector[Element[div] > Class[Element[*].foo]]']],
+            ["div \n>  \t \t .foo", ['CombinedSelector[Element[div] > Class[Element[*].foo]]']],
+            ['td.foo,.bar', ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ['td.foo, .bar', ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ["td.foo\t\r\n\f ,\t\r\n\f .bar", ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ['td.foo,.bar', ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ['td.foo, .bar', ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ["td.foo\t\r\n\f ,\t\r\n\f .bar", ['Class[Element[td].foo]', 'Class[Element[*].bar]']],
+            ['div, td.foo, div.bar span', ['Element[div]', 'Class[Element[td].foo]', 'CombinedSelector[Class[Element[div].bar] <followed> Element[span]]']],
+            ['div > p', ['CombinedSelector[Element[div] > Element[p]]']],
+            ['td:first', ['Pseudo[Element[td]:first]']],
+            ['td :first', ['CombinedSelector[Element[td] <followed> Pseudo[Element[*]:first]]']],
+            ['a[name]', ['Attribute[Element[a][name]]']],
+            ["a[ name\t]", ['Attribute[Element[a][name]]']],
+            ['a [name]', ['CombinedSelector[Element[a] <followed> Attribute[Element[*][name]]]']],
+            ['[name="foo"]', ["Attribute[Element[*][name = 'foo']]"]],
+            ["[name='foo[1]']", ["Attribute[Element[*][name = 'foo[1]']]"]],
+            ["[name='foo[0][bar]']", ["Attribute[Element[*][name = 'foo[0][bar]']]"]],
+            ['a[rel="include"]', ["Attribute[Element[a][rel = 'include']]"]],
+            ['a[rel = include]', ["Attribute[Element[a][rel = 'include']]"]],
+            ["a[hreflang |= 'en']", ["Attribute[Element[a][hreflang |= 'en']]"]],
+            ['a[hreflang|=en]', ["Attribute[Element[a][hreflang |= 'en']]"]],
+            ['div:nth-child(10)', ["Function[Element[div]:nth-child(['10'])]"]],
+            [':nth-child(2n+2)', ["Function[Element[*]:nth-child(['2', 'n', '+2'])]"]],
+            ['div:nth-of-type(10)', ["Function[Element[div]:nth-of-type(['10'])]"]],
+            ['div div:nth-of-type(10) .aclass', ["CombinedSelector[CombinedSelector[Element[div] <followed> Function[Element[div]:nth-of-type(['10'])]] <followed> Class[Element[*].aclass]]"]],
+            ['label:only', ['Pseudo[Element[label]:only]']],
+            ['a:lang(fr)', ["Function[Element[a]:lang(['fr'])]"]],
+            ['div:contains("foo")', ["Function[Element[div]:contains(['foo'])]"]],
+            ['div#foobar', ['Hash[Element[div]#foobar]']],
+            ['div:not(div.foo)', ['Negation[Element[div]:not(Class[Element[div].foo])]']],
+            ['td ~ th', ['CombinedSelector[Element[td] ~ Element[th]]']],
+            ['.foo[data-bar][data-baz=0]', ["Attribute[Attribute[Class[Element[*].foo][data-bar]][data-baz = '0']]"]],
+        ];
     }
 
     public function getParserExceptionTestData()
     {
-        return array(
-            array('attributes(href)/html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()),
-            array('attributes(href)', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()),
-            array('html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '/', 4))->getMessage()),
-            array(' ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 1))->getMessage()),
-            array('div, ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 5))->getMessage()),
-            array(' , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 1))->getMessage()),
-            array('p, , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 3))->getMessage()),
-            array('div > ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 6))->getMessage()),
-            array('  > div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '>', 2))->getMessage()),
-            array('foo|#bar', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_HASH, 'bar', 4))->getMessage()),
-            array('#.foo', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '#', 0))->getMessage()),
-            array('.#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()),
-            array(':#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()),
-            array('[*]', SyntaxErrorException::unexpectedToken('"|"', new Token(Token::TYPE_DELIMITER, ']', 2))->getMessage()),
-            array('[foo|]', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_DELIMITER, ']', 5))->getMessage()),
-            array('[#]', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_DELIMITER, '#', 1))->getMessage()),
-            array('[foo=#]', SyntaxErrorException::unexpectedToken('string or identifier', new Token(Token::TYPE_DELIMITER, '#', 5))->getMessage()),
-            array(':nth-child()', SyntaxErrorException::unexpectedToken('at least one argument', new Token(Token::TYPE_DELIMITER, ')', 11))->getMessage()),
-            array('[href]a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_IDENTIFIER, 'a', 6))->getMessage()),
-            array('[rel:stylesheet]', SyntaxErrorException::unexpectedToken('operator', new Token(Token::TYPE_DELIMITER, ':', 4))->getMessage()),
-            array('[rel=stylesheet', SyntaxErrorException::unexpectedToken('"]"', new Token(Token::TYPE_FILE_END, '', 15))->getMessage()),
-            array(':lang(fr', SyntaxErrorException::unexpectedToken('an argument', new Token(Token::TYPE_FILE_END, '', 8))->getMessage()),
-            array(':contains("foo', SyntaxErrorException::unclosedString(10)->getMessage()),
-            array('foo!', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '!', 3))->getMessage()),
-        );
+        return [
+            ['attributes(href)/html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()],
+            ['attributes(href)', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()],
+            ['html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '/', 4))->getMessage()],
+            [' ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 1))->getMessage()],
+            ['div, ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 5))->getMessage()],
+            [' , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 1))->getMessage()],
+            ['p, , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 3))->getMessage()],
+            ['div > ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 6))->getMessage()],
+            ['  > div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '>', 2))->getMessage()],
+            ['foo|#bar', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_HASH, 'bar', 4))->getMessage()],
+            ['#.foo', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '#', 0))->getMessage()],
+            ['.#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()],
+            [':#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()],
+            ['[*]', SyntaxErrorException::unexpectedToken('"|"', new Token(Token::TYPE_DELIMITER, ']', 2))->getMessage()],
+            ['[foo|]', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_DELIMITER, ']', 5))->getMessage()],
+            ['[#]', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_DELIMITER, '#', 1))->getMessage()],
+            ['[foo=#]', SyntaxErrorException::unexpectedToken('string or identifier', new Token(Token::TYPE_DELIMITER, '#', 5))->getMessage()],
+            [':nth-child()', SyntaxErrorException::unexpectedToken('at least one argument', new Token(Token::TYPE_DELIMITER, ')', 11))->getMessage()],
+            ['[href]a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_IDENTIFIER, 'a', 6))->getMessage()],
+            ['[rel:stylesheet]', SyntaxErrorException::unexpectedToken('operator', new Token(Token::TYPE_DELIMITER, ':', 4))->getMessage()],
+            ['[rel=stylesheet', SyntaxErrorException::unexpectedToken('"]"', new Token(Token::TYPE_FILE_END, '', 15))->getMessage()],
+            [':lang(fr', SyntaxErrorException::unexpectedToken('an argument', new Token(Token::TYPE_FILE_END, '', 8))->getMessage()],
+            [':contains("foo', SyntaxErrorException::unclosedString(10)->getMessage()],
+            ['foo!', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '!', 3))->getMessage()],
+        ];
     }
 
     public function getPseudoElementsTestData()
     {
-        return array(
-            array('foo', 'Element[foo]', ''),
-            array('*', 'Element[*]', ''),
-            array(':empty', 'Pseudo[Element[*]:empty]', ''),
-            array(':BEfore', 'Element[*]', 'before'),
-            array(':aftER', 'Element[*]', 'after'),
-            array(':First-Line', 'Element[*]', 'first-line'),
-            array(':First-Letter', 'Element[*]', 'first-letter'),
-            array('::befoRE', 'Element[*]', 'before'),
-            array('::AFter', 'Element[*]', 'after'),
-            array('::firsT-linE', 'Element[*]', 'first-line'),
-            array('::firsT-letteR', 'Element[*]', 'first-letter'),
-            array('::Selection', 'Element[*]', 'selection'),
-            array('foo:after', 'Element[foo]', 'after'),
-            array('foo::selection', 'Element[foo]', 'selection'),
-            array('lorem#ipsum ~ a#b.c[href]:empty::selection', 'CombinedSelector[Hash[Element[lorem]#ipsum] ~ Pseudo[Attribute[Class[Hash[Element[a]#b].c][href]]:empty]]', 'selection'),
-            array('video::-webkit-media-controls', 'Element[video]', '-webkit-media-controls'),
-        );
+        return [
+            ['foo', 'Element[foo]', ''],
+            ['*', 'Element[*]', ''],
+            [':empty', 'Pseudo[Element[*]:empty]', ''],
+            [':BEfore', 'Element[*]', 'before'],
+            [':aftER', 'Element[*]', 'after'],
+            [':First-Line', 'Element[*]', 'first-line'],
+            [':First-Letter', 'Element[*]', 'first-letter'],
+            ['::befoRE', 'Element[*]', 'before'],
+            ['::AFter', 'Element[*]', 'after'],
+            ['::firsT-linE', 'Element[*]', 'first-line'],
+            ['::firsT-letteR', 'Element[*]', 'first-letter'],
+            ['::Selection', 'Element[*]', 'selection'],
+            ['foo:after', 'Element[foo]', 'after'],
+            ['foo::selection', 'Element[foo]', 'selection'],
+            ['lorem#ipsum ~ a#b.c[href]:empty::selection', 'CombinedSelector[Hash[Element[lorem]#ipsum] ~ Pseudo[Attribute[Class[Hash[Element[a]#b].c][href]]:empty]]', 'selection'],
+            ['video::-webkit-media-controls', 'Element[video]', '-webkit-media-controls'],
+        ];
     }
 
     public function getSpecificityTestData()
     {
-        return array(
-            array('*', 0),
-            array(' foo', 1),
-            array(':empty ', 10),
-            array(':before', 1),
-            array('*:before', 1),
-            array(':nth-child(2)', 10),
-            array('.bar', 10),
-            array('[baz]', 10),
-            array('[baz="4"]', 10),
-            array('[baz^="4"]', 10),
-            array('#lipsum', 100),
-            array(':not(*)', 0),
-            array(':not(foo)', 1),
-            array(':not(.foo)', 10),
-            array(':not([foo])', 10),
-            array(':not(:empty)', 10),
-            array(':not(#foo)', 100),
-            array('foo:empty', 11),
-            array('foo:before', 2),
-            array('foo::before', 2),
-            array('foo:empty::before', 12),
-            array('#lorem + foo#ipsum:first-child > bar:first-line', 213),
-        );
+        return [
+            ['*', 0],
+            [' foo', 1],
+            [':empty ', 10],
+            [':before', 1],
+            ['*:before', 1],
+            [':nth-child(2)', 10],
+            ['.bar', 10],
+            ['[baz]', 10],
+            ['[baz="4"]', 10],
+            ['[baz^="4"]', 10],
+            ['#lipsum', 100],
+            [':not(*)', 0],
+            [':not(foo)', 1],
+            [':not(.foo)', 10],
+            [':not([foo])', 10],
+            [':not(:empty)', 10],
+            [':not(#foo)', 100],
+            ['foo:empty', 11],
+            ['foo:before', 2],
+            ['foo::before', 2],
+            ['foo:empty::before', 12],
+            ['#lorem + foo#ipsum:first-child > bar:first-line', 213],
+        ];
     }
 
     public function getParseSeriesTestData()
     {
-        return array(
-            array('1n+3', 1, 3),
-            array('1n +3', 1, 3),
-            array('1n + 3', 1, 3),
-            array('1n+ 3', 1, 3),
-            array('1n-3', 1, -3),
-            array('1n -3', 1, -3),
-            array('1n - 3', 1, -3),
-            array('1n- 3', 1, -3),
-            array('n-5', 1, -5),
-            array('odd', 2, 1),
-            array('even', 2, 0),
-            array('3n', 3, 0),
-            array('n', 1, 0),
-            array('+n', 1, 0),
-            array('-n', -1, 0),
-            array('5', 0, 5),
-        );
+        return [
+            ['1n+3', 1, 3],
+            ['1n +3', 1, 3],
+            ['1n + 3', 1, 3],
+            ['1n+ 3', 1, 3],
+            ['1n-3', 1, -3],
+            ['1n -3', 1, -3],
+            ['1n - 3', 1, -3],
+            ['1n- 3', 1, -3],
+            ['n-5', 1, -5],
+            ['odd', 2, 1],
+            ['even', 2, 0],
+            ['3n', 3, 0],
+            ['n', 1, 0],
+            ['+n', 1, 0],
+            ['-n', -1, 0],
+            ['5', 0, 5],
+        ];
     }
 
     public function getParseSeriesExceptionTestData()
     {
-        return array(
-            array('foo'),
-            array('n+'),
-        );
+        return [
+            ['foo'],
+            ['n+'],
+        ];
     }
 }
index 21eb60846240d0b538a056911d5734d2fecb9309..ff9ea909753cdcbbf0e537a66b7043b70f898751 100644 (file)
@@ -70,11 +70,11 @@ class ReaderTest extends TestCase
         $reader = new Reader('hello');
 
         $this->assertFalse($reader->findPattern('/world/'));
-        $this->assertEquals(array('hello', 'h'), $reader->findPattern('/^([a-z]).*/'));
+        $this->assertEquals(['hello', 'h'], $reader->findPattern('/^([a-z]).*/'));
 
         $this->assignPosition($reader, 2);
         $this->assertFalse($reader->findPattern('/^h.*/'));
-        $this->assertEquals(array('llo'), $reader->findPattern('/^llo$/'));
+        $this->assertEquals(['llo'], $reader->findPattern('/^llo$/'));
     }
 
     public function testMoveForward()
index 7e92f5baeed18c9898cfc24a7cfb2580eab05216..29d9d5f16b2401183ae557aea17dcbb369269815 100644 (file)
@@ -34,12 +34,12 @@ class ClassParserTest extends TestCase
 
     public function getParseTestData()
     {
-        return array(
-            array('.testclass', 'Class[Element[*].testclass]'),
-            array('testel.testclass', 'Class[Element[testel].testclass]'),
-            array('testns|.testclass', 'Class[Element[testns|*].testclass]'),
-            array('testns|*.testclass', 'Class[Element[testns|*].testclass]'),
-            array('testns|testel.testclass', 'Class[Element[testns|testel].testclass]'),
-        );
+        return [
+            ['.testclass', 'Class[Element[*].testclass]'],
+            ['testel.testclass', 'Class[Element[testel].testclass]'],
+            ['testns|.testclass', 'Class[Element[testns|*].testclass]'],
+            ['testns|*.testclass', 'Class[Element[testns|*].testclass]'],
+            ['testns|testel.testclass', 'Class[Element[testns|testel].testclass]'],
+        ];
     }
 }
index 05a730fde15a2083e2424944a42db850ac96b672..79cc2270324f6c07a2b0f3e988c07257b628ba59 100644 (file)
@@ -34,11 +34,11 @@ class ElementParserTest extends TestCase
 
     public function getParseTestData()
     {
-        return array(
-            array('*', 'Element[*]'),
-            array('testel', 'Element[testel]'),
-            array('testns|*', 'Element[testns|*]'),
-            array('testns|testel', 'Element[testns|testel]'),
-        );
+        return [
+            ['*', 'Element[*]'],
+            ['testel', 'Element[testel]'],
+            ['testns|*', 'Element[testns|*]'],
+            ['testns|testel', 'Element[testns|testel]'],
+        ];
     }
 }
index 82f555d9abf165de34568d80fe1239faa8c22a51..a7c79d69a547a0f8f49ab7622bda26e7994ae970 100644 (file)
@@ -34,12 +34,12 @@ class HashParserTest extends TestCase
 
     public function getParseTestData()
     {
-        return array(
-            array('#testid', 'Hash[Element[*]#testid]'),
-            array('testel#testid', 'Hash[Element[testel]#testid]'),
-            array('testns|#testid', 'Hash[Element[testns|*]#testid]'),
-            array('testns|*#testid', 'Hash[Element[testns|*]#testid]'),
-            array('testns|testel#testid', 'Hash[Element[testns|testel]#testid]'),
-        );
+        return [
+            ['#testid', 'Hash[Element[*]#testid]'],
+            ['testel#testid', 'Hash[Element[testel]#testid]'],
+            ['testns|#testid', 'Hash[Element[testns|*]#testid]'],
+            ['testns|*#testid', 'Hash[Element[testns|*]#testid]'],
+            ['testns|testel#testid', 'Hash[Element[testns|testel]#testid]'],
+        ];
     }
 }
index 610458297ecec7168893ddde268a2407d2aa00fb..a9ab29e2ad622a1245a2cbf1b14656dff3bf5fbd 100644 (file)
 namespace Symfony\Component\CssSelector\Tests\XPath;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\CssSelector\Node\ElementNode;
+use Symfony\Component\CssSelector\Node\FunctionNode;
+use Symfony\Component\CssSelector\Parser\Parser;
 use Symfony\Component\CssSelector\XPath\Extension\HtmlExtension;
 use Symfony\Component\CssSelector\XPath\Translator;
+use Symfony\Component\CssSelector\XPath\XPathExpr;
 
 class TranslatorTest extends TestCase
 {
@@ -31,6 +35,73 @@ class TranslatorTest extends TestCase
         $this->assertEquals($xpath, $translator->cssToXPath($css, ''));
     }
 
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testCssToXPathPseudoElement()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $translator->cssToXPath('e::first-line');
+    }
+
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testGetExtensionNotExistsExtension()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $translator->getExtension('fake');
+    }
+
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testAddCombinationNotExistsExtension()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $parser = new Parser();
+        $xpath = $parser->parse('*')[0];
+        $combinedXpath = $parser->parse('*')[0];
+        $translator->addCombination('fake', $xpath, $combinedXpath);
+    }
+
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testAddFunctionNotExistsFunction()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $xpath = new XPathExpr();
+        $function = new FunctionNode(new ElementNode(), 'fake');
+        $translator->addFunction($xpath, $function);
+    }
+
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testAddPseudoClassNotExistsClass()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $xpath = new XPathExpr();
+        $translator->addPseudoClass($xpath, 'fake');
+    }
+
+    /**
+     * @expectedException \Symfony\Component\CssSelector\Exception\ExpressionErrorException
+     */
+    public function testAddAttributeMatchingClassNotExistsClass()
+    {
+        $translator = new Translator();
+        $translator->registerExtension(new HtmlExtension($translator));
+        $xpath = new XPathExpr();
+        $translator->addAttributeMatching($xpath, '', '', '');
+    }
+
     /** @dataProvider getXmlLangTestData */
     public function testXmlLang($css, array $elementsId)
     {
@@ -80,248 +151,248 @@ class TranslatorTest extends TestCase
 
     public function getXpathLiteralTestData()
     {
-        return array(
-            array('foo', "'foo'"),
-            array("foo's bar", '"foo\'s bar"'),
-            array("foo's \"middle\" bar", 'concat(\'foo\', "\'", \'s "middle" bar\')'),
-            array("foo's 'middle' \"bar\"", 'concat(\'foo\', "\'", \'s \', "\'", \'middle\', "\'", \' "bar"\')'),
-        );
+        return [
+            ['foo', "'foo'"],
+            ["foo's bar", '"foo\'s bar"'],
+            ["foo's \"middle\" bar", 'concat(\'foo\', "\'", \'s "middle" bar\')'],
+            ["foo's 'middle' \"bar\"", 'concat(\'foo\', "\'", \'s \', "\'", \'middle\', "\'", \' "bar"\')'],
+        ];
     }
 
     public function getCssToXPathTestData()
     {
-        return array(
-            array('*', '*'),
-            array('e', 'e'),
-            array('*|e', 'e'),
-            array('e|f', 'e:f'),
-            array('e[foo]', 'e[@foo]'),
-            array('e[foo|bar]', 'e[@foo:bar]'),
-            array('e[foo="bar"]', "e[@foo = 'bar']"),
-            array('e[foo~="bar"]', "e[@foo and contains(concat(' ', normalize-space(@foo), ' '), ' bar ')]"),
-            array('e[foo^="bar"]', "e[@foo and starts-with(@foo, 'bar')]"),
-            array('e[foo$="bar"]', "e[@foo and substring(@foo, string-length(@foo)-2) = 'bar']"),
-            array('e[foo*="bar"]', "e[@foo and contains(@foo, 'bar')]"),
-            array('e[foo!="bar"]', "e[not(@foo) or @foo != 'bar']"),
-            array('e[foo!="bar"][foo!="baz"]', "e[(not(@foo) or @foo != 'bar') and (not(@foo) or @foo != 'baz')]"),
-            array('e[hreflang|="en"]', "e[@hreflang and (@hreflang = 'en' or starts-with(@hreflang, 'en-'))]"),
-            array('e:nth-child(1)', "*/*[(name() = 'e') and (position() = 1)]"),
-            array('e:nth-last-child(1)', "*/*[(name() = 'e') and (position() = last() - 0)]"),
-            array('e:nth-last-child(2n+2)', "*/*[(name() = 'e') and (last() - position() - 1 >= 0 and (last() - position() - 1) mod 2 = 0)]"),
-            array('e:nth-of-type(1)', '*/e[position() = 1]'),
-            array('e:nth-last-of-type(1)', '*/e[position() = last() - 0]'),
-            array('div e:nth-last-of-type(1) .aclass', "div/descendant-or-self::*/e[position() = last() - 0]/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' aclass ')]"),
-            array('e:first-child', "*/*[(name() = 'e') and (position() = 1)]"),
-            array('e:last-child', "*/*[(name() = 'e') and (position() = last())]"),
-            array('e:first-of-type', '*/e[position() = 1]'),
-            array('e:last-of-type', '*/e[position() = last()]'),
-            array('e:only-child', "*/*[(name() = 'e') and (last() = 1)]"),
-            array('e:only-of-type', 'e[last() = 1]'),
-            array('e:empty', 'e[not(*) and not(string-length())]'),
-            array('e:EmPTY', 'e[not(*) and not(string-length())]'),
-            array('e:root', 'e[not(parent::*)]'),
-            array('e:hover', 'e[0]'),
-            array('e:contains("foo")', "e[contains(string(.), 'foo')]"),
-            array('e:ConTains(foo)', "e[contains(string(.), 'foo')]"),
-            array('e.warning', "e[@class and contains(concat(' ', normalize-space(@class), ' '), ' warning ')]"),
-            array('e#myid', "e[@id = 'myid']"),
-            array('e:not(:nth-child(odd))', 'e[not(position() - 1 >= 0 and (position() - 1) mod 2 = 0)]'),
-            array('e:nOT(*)', 'e[0]'),
-            array('e f', 'e/descendant-or-self::*/f'),
-            array('e > f', 'e/f'),
-            array('e + f', "e/following-sibling::*[(name() = 'f') and (position() = 1)]"),
-            array('e ~ f', 'e/following-sibling::f'),
-            array('div#container p', "div[@id = 'container']/descendant-or-self::*/p"),
-        );
+        return [
+            ['*', '*'],
+            ['e', 'e'],
+            ['*|e', 'e'],
+            ['e|f', 'e:f'],
+            ['e[foo]', 'e[@foo]'],
+            ['e[foo|bar]', 'e[@foo:bar]'],
+            ['e[foo="bar"]', "e[@foo = 'bar']"],
+            ['e[foo~="bar"]', "e[@foo and contains(concat(' ', normalize-space(@foo), ' '), ' bar ')]"],
+            ['e[foo^="bar"]', "e[@foo and starts-with(@foo, 'bar')]"],
+            ['e[foo$="bar"]', "e[@foo and substring(@foo, string-length(@foo)-2) = 'bar']"],
+            ['e[foo*="bar"]', "e[@foo and contains(@foo, 'bar')]"],
+            ['e[foo!="bar"]', "e[not(@foo) or @foo != 'bar']"],
+            ['e[foo!="bar"][foo!="baz"]', "e[(not(@foo) or @foo != 'bar') and (not(@foo) or @foo != 'baz')]"],
+            ['e[hreflang|="en"]', "e[@hreflang and (@hreflang = 'en' or starts-with(@hreflang, 'en-'))]"],
+            ['e:nth-child(1)', "*/*[(name() = 'e') and (position() = 1)]"],
+            ['e:nth-last-child(1)', "*/*[(name() = 'e') and (position() = last() - 0)]"],
+            ['e:nth-last-child(2n+2)', "*/*[(name() = 'e') and (last() - position() - 1 >= 0 and (last() - position() - 1) mod 2 = 0)]"],
+            ['e:nth-of-type(1)', '*/e[position() = 1]'],
+            ['e:nth-last-of-type(1)', '*/e[position() = last() - 0]'],
+            ['div e:nth-last-of-type(1) .aclass', "div/descendant-or-self::*/e[position() = last() - 0]/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' aclass ')]"],
+            ['e:first-child', "*/*[(name() = 'e') and (position() = 1)]"],
+            ['e:last-child', "*/*[(name() = 'e') and (position() = last())]"],
+            ['e:first-of-type', '*/e[position() = 1]'],
+            ['e:last-of-type', '*/e[position() = last()]'],
+            ['e:only-child', "*/*[(name() = 'e') and (last() = 1)]"],
+            ['e:only-of-type', 'e[last() = 1]'],
+            ['e:empty', 'e[not(*) and not(string-length())]'],
+            ['e:EmPTY', 'e[not(*) and not(string-length())]'],
+            ['e:root', 'e[not(parent::*)]'],
+            ['e:hover', 'e[0]'],
+            ['e:contains("foo")', "e[contains(string(.), 'foo')]"],
+            ['e:ConTains(foo)', "e[contains(string(.), 'foo')]"],
+            ['e.warning', "e[@class and contains(concat(' ', normalize-space(@class), ' '), ' warning ')]"],
+            ['e#myid', "e[@id = 'myid']"],
+            ['e:not(:nth-child(odd))', 'e[not(position() - 1 >= 0 and (position() - 1) mod 2 = 0)]'],
+            ['e:nOT(*)', 'e[0]'],
+            ['e f', 'e/descendant-or-self::*/f'],
+            ['e > f', 'e/f'],
+            ['e + f', "e/following-sibling::*[(name() = 'f') and (position() = 1)]"],
+            ['e ~ f', 'e/following-sibling::f'],
+            ['div#container p', "div[@id = 'container']/descendant-or-self::*/p"],
+        ];
     }
 
     public function getXmlLangTestData()
     {
-        return array(
-            array(':lang("EN")', array('first', 'second', 'third', 'fourth')),
-            array(':lang("en-us")', array('second', 'fourth')),
-            array(':lang(en-nz)', array('third')),
-            array(':lang(fr)', array('fifth')),
-            array(':lang(ru)', array('sixth')),
-            array(":lang('ZH')", array('eighth')),
-            array(':lang(de) :lang(zh)', array('eighth')),
-            array(':lang(en), :lang(zh)', array('first', 'second', 'third', 'fourth', 'eighth')),
-            array(':lang(es)', array()),
-        );
+        return [
+            [':lang("EN")', ['first', 'second', 'third', 'fourth']],
+            [':lang("en-us")', ['second', 'fourth']],
+            [':lang(en-nz)', ['third']],
+            [':lang(fr)', ['fifth']],
+            [':lang(ru)', ['sixth']],
+            [":lang('ZH')", ['eighth']],
+            [':lang(de) :lang(zh)', ['eighth']],
+            [':lang(en), :lang(zh)', ['first', 'second', 'third', 'fourth', 'eighth']],
+            [':lang(es)', []],
+        ];
     }
 
     public function getHtmlIdsTestData()
     {
-        return array(
-            array('div', array('outer-div', 'li-div', 'foobar-div')),
-            array('DIV', array('outer-div', 'li-div', 'foobar-div')),  // case-insensitive in HTML
-            array('div div', array('li-div')),
-            array('div, div div', array('outer-div', 'li-div', 'foobar-div')),
-            array('a[name]', array('name-anchor')),
-            array('a[NAme]', array('name-anchor')), // case-insensitive in HTML:
-            array('a[rel]', array('tag-anchor', 'nofollow-anchor')),
-            array('a[rel="tag"]', array('tag-anchor')),
-            array('a[href*="localhost"]', array('tag-anchor')),
-            array('a[href*=""]', array()),
-            array('a[href^="http"]', array('tag-anchor', 'nofollow-anchor')),
-            array('a[href^="http:"]', array('tag-anchor')),
-            array('a[href^=""]', array()),
-            array('a[href$="org"]', array('nofollow-anchor')),
-            array('a[href$=""]', array()),
-            array('div[foobar~="bc"]', array('foobar-div')),
-            array('div[foobar~="cde"]', array('foobar-div')),
-            array('[foobar~="ab bc"]', array('foobar-div')),
-            array('[foobar~=""]', array()),
-            array('[foobar~=" \t"]', array()),
-            array('div[foobar~="cd"]', array()),
-            array('*[lang|="En"]', array('second-li')),
-            array('[lang|="En-us"]', array('second-li')),
+        return [
+            ['div', ['outer-div', 'li-div', 'foobar-div']],
+            ['DIV', ['outer-div', 'li-div', 'foobar-div']],  // case-insensitive in HTML
+            ['div div', ['li-div']],
+            ['div, div div', ['outer-div', 'li-div', 'foobar-div']],
+            ['a[name]', ['name-anchor']],
+            ['a[NAme]', ['name-anchor']], // case-insensitive in HTML:
+            ['a[rel]', ['tag-anchor', 'nofollow-anchor']],
+            ['a[rel="tag"]', ['tag-anchor']],
+            ['a[href*="localhost"]', ['tag-anchor']],
+            ['a[href*=""]', []],
+            ['a[href^="http"]', ['tag-anchor', 'nofollow-anchor']],
+            ['a[href^="http:"]', ['tag-anchor']],
+            ['a[href^=""]', []],
+            ['a[href$="org"]', ['nofollow-anchor']],
+            ['a[href$=""]', []],
+            ['div[foobar~="bc"]', ['foobar-div']],
+            ['div[foobar~="cde"]', ['foobar-div']],
+            ['[foobar~="ab bc"]', ['foobar-div']],
+            ['[foobar~=""]', []],
+            ['[foobar~=" \t"]', []],
+            ['div[foobar~="cd"]', []],
+            ['*[lang|="En"]', ['second-li']],
+            ['[lang|="En-us"]', ['second-li']],
             // Attribute values are case sensitive
-            array('*[lang|="en"]', array()),
-            array('[lang|="en-US"]', array()),
-            array('*[lang|="e"]', array()),
+            ['*[lang|="en"]', []],
+            ['[lang|="en-US"]', []],
+            ['*[lang|="e"]', []],
             // ... :lang() is not.
-            array(':lang("EN")', array('second-li', 'li-div')),
-            array('*:lang(en-US)', array('second-li', 'li-div')),
-            array(':lang("e")', array()),
-            array('li:nth-child(3)', array('third-li')),
-            array('li:nth-child(10)', array()),
-            array('li:nth-child(2n)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(even)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(2n+0)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(+2n+1)', array('first-li', 'third-li', 'fifth-li', 'seventh-li')),
-            array('li:nth-child(odd)', array('first-li', 'third-li', 'fifth-li', 'seventh-li')),
-            array('li:nth-child(2n+4)', array('fourth-li', 'sixth-li')),
-            array('li:nth-child(3n+1)', array('first-li', 'fourth-li', 'seventh-li')),
-            array('li:nth-child(n)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n-1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n+1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n+3)', array('third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(-n)', array()),
-            array('li:nth-child(-n-1)', array()),
-            array('li:nth-child(-n+1)', array('first-li')),
-            array('li:nth-child(-n+3)', array('first-li', 'second-li', 'third-li')),
-            array('li:nth-last-child(0)', array()),
-            array('li:nth-last-child(2n)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(even)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(2n+2)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(n)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n-1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n-3)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n+1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n+3)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li')),
-            array('li:nth-last-child(-n)', array()),
-            array('li:nth-last-child(-n-1)', array()),
-            array('li:nth-last-child(-n+1)', array('seventh-li')),
-            array('li:nth-last-child(-n+3)', array('fifth-li', 'sixth-li', 'seventh-li')),
-            array('ol:first-of-type', array('first-ol')),
-            array('ol:nth-child(1)', array('first-ol')),
-            array('ol:nth-of-type(2)', array('second-ol')),
-            array('ol:nth-last-of-type(1)', array('second-ol')),
-            array('span:only-child', array('foobar-span')),
-            array('li div:only-child', array('li-div')),
-            array('div *:only-child', array('li-div', 'foobar-span')),
-            array('p:only-of-type', array('paragraph')),
-            array('a:empty', array('name-anchor')),
-            array('a:EMpty', array('name-anchor')),
-            array('li:empty', array('third-li', 'fourth-li', 'fifth-li', 'sixth-li')),
-            array(':root', array('html')),
-            array('html:root', array('html')),
-            array('li:root', array()),
-            array('* :root', array()),
-            array('*:contains("link")', array('html', 'outer-div', 'tag-anchor', 'nofollow-anchor')),
-            array(':CONtains("link")', array('html', 'outer-div', 'tag-anchor', 'nofollow-anchor')),
-            array('*:contains("LInk")', array()),  // case sensitive
-            array('*:contains("e")', array('html', 'nil', 'outer-div', 'first-ol', 'first-li', 'paragraph', 'p-em')),
-            array('*:contains("E")', array()),  // case-sensitive
-            array('.a', array('first-ol')),
-            array('.b', array('first-ol')),
-            array('*.a', array('first-ol')),
-            array('ol.a', array('first-ol')),
-            array('.c', array('first-ol', 'third-li', 'fourth-li')),
-            array('*.c', array('first-ol', 'third-li', 'fourth-li')),
-            array('ol *.c', array('third-li', 'fourth-li')),
-            array('ol li.c', array('third-li', 'fourth-li')),
-            array('li ~ li.c', array('third-li', 'fourth-li')),
-            array('ol > li.c', array('third-li', 'fourth-li')),
-            array('#first-li', array('first-li')),
-            array('li#first-li', array('first-li')),
-            array('*#first-li', array('first-li')),
-            array('li div', array('li-div')),
-            array('li > div', array('li-div')),
-            array('div div', array('li-div')),
-            array('div > div', array()),
-            array('div>.c', array('first-ol')),
-            array('div > .c', array('first-ol')),
-            array('div + div', array('foobar-div')),
-            array('a ~ a', array('tag-anchor', 'nofollow-anchor')),
-            array('a[rel="tag"] ~ a', array('nofollow-anchor')),
-            array('ol#first-ol li:last-child', array('seventh-li')),
-            array('ol#first-ol *:last-child', array('li-div', 'seventh-li')),
-            array('#outer-div:first-child', array('outer-div')),
-            array('#outer-div :first-child', array('name-anchor', 'first-li', 'li-div', 'p-b', 'checkbox-fieldset-disabled', 'area-href')),
-            array('a[href]', array('tag-anchor', 'nofollow-anchor')),
-            array(':not(*)', array()),
-            array('a:not([href])', array('name-anchor')),
-            array('ol :Not(li[class])', array('first-li', 'second-li', 'li-div', 'fifth-li', 'sixth-li', 'seventh-li')),
+            [':lang("EN")', ['second-li', 'li-div']],
+            ['*:lang(en-US)', ['second-li', 'li-div']],
+            [':lang("e")', []],
+            ['li:nth-child(3)', ['third-li']],
+            ['li:nth-child(10)', []],
+            ['li:nth-child(2n)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-child(even)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-child(2n+0)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-child(+2n+1)', ['first-li', 'third-li', 'fifth-li', 'seventh-li']],
+            ['li:nth-child(odd)', ['first-li', 'third-li', 'fifth-li', 'seventh-li']],
+            ['li:nth-child(2n+4)', ['fourth-li', 'sixth-li']],
+            ['li:nth-child(3n+1)', ['first-li', 'fourth-li', 'seventh-li']],
+            ['li:nth-child(n)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-child(n-1)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-child(n+1)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-child(n+3)', ['third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-child(-n)', []],
+            ['li:nth-child(-n-1)', []],
+            ['li:nth-child(-n+1)', ['first-li']],
+            ['li:nth-child(-n+3)', ['first-li', 'second-li', 'third-li']],
+            ['li:nth-last-child(0)', []],
+            ['li:nth-last-child(2n)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-last-child(even)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-last-child(2n+2)', ['second-li', 'fourth-li', 'sixth-li']],
+            ['li:nth-last-child(n)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-last-child(n-1)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-last-child(n-3)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-last-child(n+1)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li']],
+            ['li:nth-last-child(n+3)', ['first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li']],
+            ['li:nth-last-child(-n)', []],
+            ['li:nth-last-child(-n-1)', []],
+            ['li:nth-last-child(-n+1)', ['seventh-li']],
+            ['li:nth-last-child(-n+3)', ['fifth-li', 'sixth-li', 'seventh-li']],
+            ['ol:first-of-type', ['first-ol']],
+            ['ol:nth-child(1)', ['first-ol']],
+            ['ol:nth-of-type(2)', ['second-ol']],
+            ['ol:nth-last-of-type(1)', ['second-ol']],
+            ['span:only-child', ['foobar-span']],
+            ['li div:only-child', ['li-div']],
+            ['div *:only-child', ['li-div', 'foobar-span']],
+            ['p:only-of-type', ['paragraph']],
+            ['a:empty', ['name-anchor']],
+            ['a:EMpty', ['name-anchor']],
+            ['li:empty', ['third-li', 'fourth-li', 'fifth-li', 'sixth-li']],
+            [':root', ['html']],
+            ['html:root', ['html']],
+            ['li:root', []],
+            ['* :root', []],
+            ['*:contains("link")', ['html', 'outer-div', 'tag-anchor', 'nofollow-anchor']],
+            [':CONtains("link")', ['html', 'outer-div', 'tag-anchor', 'nofollow-anchor']],
+            ['*:contains("LInk")', []],  // case sensitive
+            ['*:contains("e")', ['html', 'nil', 'outer-div', 'first-ol', 'first-li', 'paragraph', 'p-em']],
+            ['*:contains("E")', []],  // case-sensitive
+            ['.a', ['first-ol']],
+            ['.b', ['first-ol']],
+            ['*.a', ['first-ol']],
+            ['ol.a', ['first-ol']],
+            ['.c', ['first-ol', 'third-li', 'fourth-li']],
+            ['*.c', ['first-ol', 'third-li', 'fourth-li']],
+            ['ol *.c', ['third-li', 'fourth-li']],
+            ['ol li.c', ['third-li', 'fourth-li']],
+            ['li ~ li.c', ['third-li', 'fourth-li']],
+            ['ol > li.c', ['third-li', 'fourth-li']],
+            ['#first-li', ['first-li']],
+            ['li#first-li', ['first-li']],
+            ['*#first-li', ['first-li']],
+            ['li div', ['li-div']],
+            ['li > div', ['li-div']],
+            ['div div', ['li-div']],
+            ['div > div', []],
+            ['div>.c', ['first-ol']],
+            ['div > .c', ['first-ol']],
+            ['div + div', ['foobar-div']],
+            ['a ~ a', ['tag-anchor', 'nofollow-anchor']],
+            ['a[rel="tag"] ~ a', ['nofollow-anchor']],
+            ['ol#first-ol li:last-child', ['seventh-li']],
+            ['ol#first-ol *:last-child', ['li-div', 'seventh-li']],
+            ['#outer-div:first-child', ['outer-div']],
+            ['#outer-div :first-child', ['name-anchor', 'first-li', 'li-div', 'p-b', 'checkbox-fieldset-disabled', 'area-href']],
+            ['a[href]', ['tag-anchor', 'nofollow-anchor']],
+            [':not(*)', []],
+            ['a:not([href])', ['name-anchor']],
+            ['ol :Not(li[class])', ['first-li', 'second-li', 'li-div', 'fifth-li', 'sixth-li', 'seventh-li']],
             // HTML-specific
-            array(':link', array('link-href', 'tag-anchor', 'nofollow-anchor', 'area-href')),
-            array(':visited', array()),
-            array(':enabled', array('link-href', 'tag-anchor', 'nofollow-anchor', 'checkbox-unchecked', 'text-checked', 'checkbox-checked', 'area-href')),
-            array(':disabled', array('checkbox-disabled', 'checkbox-disabled-checked', 'fieldset', 'checkbox-fieldset-disabled')),
-            array(':checked', array('checkbox-checked', 'checkbox-disabled-checked')),
-        );
+            [':link', ['link-href', 'tag-anchor', 'nofollow-anchor', 'area-href']],
+            [':visited', []],
+            [':enabled', ['link-href', 'tag-anchor', 'nofollow-anchor', 'checkbox-unchecked', 'text-checked', 'checkbox-checked', 'area-href']],
+            [':disabled', ['checkbox-disabled', 'checkbox-disabled-checked', 'fieldset', 'checkbox-fieldset-disabled']],
+            [':checked', ['checkbox-checked', 'checkbox-disabled-checked']],
+        ];
     }
 
     public function getHtmlShakespearTestData()
     {
-        return array(
-            array('*', 246),
-            array('div:contains(CELIA)', 26),
-            array('div:only-child', 22), // ?
-            array('div:nth-child(even)', 106),
-            array('div:nth-child(2n)', 106),
-            array('div:nth-child(odd)', 137),
-            array('div:nth-child(2n+1)', 137),
-            array('div:nth-child(n)', 243),
-            array('div:last-child', 53),
-            array('div:first-child', 51),
-            array('div > div', 242),
-            array('div + div', 190),
-            array('div ~ div', 190),
-            array('body', 1),
-            array('body div', 243),
-            array('div', 243),
-            array('div div', 242),
-            array('div div div', 241),
-            array('div, div, div', 243),
-            array('div, a, span', 243),
-            array('.dialog', 51),
-            array('div.dialog', 51),
-            array('div .dialog', 51),
-            array('div.character, div.dialog', 99),
-            array('div.direction.dialog', 0),
-            array('div.dialog.direction', 0),
-            array('div.dialog.scene', 1),
-            array('div.scene.scene', 1),
-            array('div.scene .scene', 0),
-            array('div.direction .dialog ', 0),
-            array('div .dialog .direction', 4),
-            array('div.dialog .dialog .direction', 4),
-            array('#speech5', 1),
-            array('div#speech5', 1),
-            array('div #speech5', 1),
-            array('div.scene div.dialog', 49),
-            array('div#scene1 div.dialog div', 142),
-            array('#scene1 #speech1', 1),
-            array('div[class]', 103),
-            array('div[class=dialog]', 50),
-            array('div[class^=dia]', 51),
-            array('div[class$=log]', 50),
-            array('div[class*=sce]', 1),
-            array('div[class|=dialog]', 50), // ? Seems right
-            array('div[class!=madeup]', 243), // ? Seems right
-            array('div[class~=dialog]', 51), // ? Seems right
-        );
+        return [
+            ['*', 246],
+            ['div:contains(CELIA)', 26],
+            ['div:only-child', 22], // ?
+            ['div:nth-child(even)', 106],
+            ['div:nth-child(2n)', 106],
+            ['div:nth-child(odd)', 137],
+            ['div:nth-child(2n+1)', 137],
+            ['div:nth-child(n)', 243],
+            ['div:last-child', 53],
+            ['div:first-child', 51],
+            ['div > div', 242],
+            ['div + div', 190],
+            ['div ~ div', 190],
+            ['body', 1],
+            ['body div', 243],
+            ['div', 243],
+            ['div div', 242],
+            ['div div div', 241],
+            ['div, div, div', 243],
+            ['div, a, span', 243],
+            ['.dialog', 51],
+            ['div.dialog', 51],
+            ['div .dialog', 51],
+            ['div.character, div.dialog', 99],
+            ['div.direction.dialog', 0],
+            ['div.dialog.direction', 0],
+            ['div.dialog.scene', 1],
+            ['div.scene.scene', 1],
+            ['div.scene .scene', 0],
+            ['div.direction .dialog ', 0],
+            ['div .dialog .direction', 4],
+            ['div.dialog .dialog .direction', 4],
+            ['#speech5', 1],
+            ['div#speech5', 1],
+            ['div #speech5', 1],
+            ['div.scene div.dialog', 49],
+            ['div#scene1 div.dialog div', 142],
+            ['#scene1 #speech1', 1],
+            ['div[class]', 103],
+            ['div[class=dialog]', 50],
+            ['div[class^=dia]', 51],
+            ['div[class$=log]', 50],
+            ['div[class*=sce]', 1],
+            ['div[class|=dialog]', 50], // ? Seems right
+            ['div[class!=madeup]', 243], // ? Seems right
+            ['div[class~=dialog]', 51], // ? Seems right
+        ];
     }
 }
index 026ac06c79f21a657f80bc00ade72fe8ed1a2e2a..1dce1eddff2c9195e4306a151fc3b4d83c7289bc 100644 (file)
@@ -28,7 +28,7 @@ abstract class AbstractExtension implements ExtensionInterface
      */
     public function getNodeTranslators()
     {
-        return array();
+        return [];
     }
 
     /**
@@ -36,7 +36,7 @@ abstract class AbstractExtension implements ExtensionInterface
      */
     public function getCombinationTranslators()
     {
-        return array();
+        return [];
     }
 
     /**
@@ -44,7 +44,7 @@ abstract class AbstractExtension implements ExtensionInterface
      */
     public function getFunctionTranslators()
     {
-        return array();
+        return [];
     }
 
     /**
@@ -52,7 +52,7 @@ abstract class AbstractExtension implements ExtensionInterface
      */
     public function getPseudoClassTranslators()
     {
-        return array();
+        return [];
     }
 
     /**
@@ -60,6 +60,6 @@ abstract class AbstractExtension implements ExtensionInterface
      */
     public function getAttributeMatchingTranslators()
     {
-        return array();
+        return [];
     }
 }
index 2078dca61da10535ce48f32b5f168cf9a1f2149f..0571b3b7651ed0084d751644ca409d1c8ed406f8 100644 (file)
@@ -31,16 +31,16 @@ class AttributeMatchingExtension extends AbstractExtension
      */
     public function getAttributeMatchingTranslators()
     {
-        return array(
-            'exists' => array($this, 'translateExists'),
-            '=' => array($this, 'translateEquals'),
-            '~=' => array($this, 'translateIncludes'),
-            '|=' => array($this, 'translateDashMatch'),
-            '^=' => array($this, 'translatePrefixMatch'),
-            '$=' => array($this, 'translateSuffixMatch'),
-            '*=' => array($this, 'translateSubstringMatch'),
-            '!=' => array($this, 'translateDifferent'),
-        );
+        return [
+            'exists' => [$this, 'translateExists'],
+            '=' => [$this, 'translateEquals'],
+            '~=' => [$this, 'translateIncludes'],
+            '|=' => [$this, 'translateDashMatch'],
+            '^=' => [$this, 'translatePrefixMatch'],
+            '$=' => [$this, 'translateSuffixMatch'],
+            '*=' => [$this, 'translateSubstringMatch'],
+            '!=' => [$this, 'translateDifferent'],
+        ];
     }
 
     /**
index 0c9cc0320c3c2dcfc4a7e4090bc637380a732531..d962dc5ab2743d8a83c0ca68ef662928f05dcb4f 100644 (file)
@@ -30,12 +30,12 @@ class CombinationExtension extends AbstractExtension
      */
     public function getCombinationTranslators()
     {
-        return array(
-            ' ' => array($this, 'translateDescendant'),
-            '>' => array($this, 'translateChild'),
-            '+' => array($this, 'translateDirectAdjacent'),
-            '~' => array($this, 'translateIndirectAdjacent'),
-        );
+        return [
+            ' ' => [$this, 'translateDescendant'],
+            '>' => [$this, 'translateChild'],
+            '+' => [$this, 'translateDirectAdjacent'],
+            '~' => [$this, 'translateIndirectAdjacent'],
+        ];
     }
 
     /**
index 4d34d0ef2401b2929a1d5228478ce48f8eca6101..a8e0b69f1276690e0a8e9e0874e5d52c316143e5 100644 (file)
@@ -35,14 +35,14 @@ class FunctionExtension extends AbstractExtension
      */
     public function getFunctionTranslators()
     {
-        return array(
-            'nth-child' => array($this, 'translateNthChild'),
-            'nth-last-child' => array($this, 'translateNthLastChild'),
-            'nth-of-type' => array($this, 'translateNthOfType'),
-            'nth-last-of-type' => array($this, 'translateNthLastOfType'),
-            'contains' => array($this, 'translateContains'),
-            'lang' => array($this, 'translateLang'),
-        );
+        return [
+            'nth-child' => [$this, 'translateNthChild'],
+            'nth-last-child' => [$this, 'translateNthLastChild'],
+            'nth-of-type' => [$this, 'translateNthOfType'],
+            'nth-last-of-type' => [$this, 'translateNthLastOfType'],
+            'contains' => [$this, 'translateContains'],
+            'lang' => [$this, 'translateLang'],
+        ];
     }
 
     /**
@@ -93,7 +93,7 @@ class FunctionExtension extends AbstractExtension
             $expr .= ' - '.$b;
         }
 
-        $conditions = array(sprintf('%s %s 0', $expr, $sign));
+        $conditions = [sprintf('%s %s 0', $expr, $sign)];
 
         if (1 !== $a && -1 !== $a) {
             $conditions[] = sprintf('(%s) mod %d = 0', $expr, $a);
index cd8e0d5fd86774f17d66fbe175f3cf0de59677d9..99c1166c0172c4ffd0af68fe208616dd7f898eb5 100644 (file)
@@ -41,16 +41,16 @@ class HtmlExtension extends AbstractExtension
      */
     public function getPseudoClassTranslators()
     {
-        return array(
-            'checked' => array($this, 'translateChecked'),
-            'link' => array($this, 'translateLink'),
-            'disabled' => array($this, 'translateDisabled'),
-            'enabled' => array($this, 'translateEnabled'),
-            'selected' => array($this, 'translateSelected'),
-            'invalid' => array($this, 'translateInvalid'),
-            'hover' => array($this, 'translateHover'),
-            'visited' => array($this, 'translateVisited'),
-        );
+        return [
+            'checked' => [$this, 'translateChecked'],
+            'link' => [$this, 'translateLink'],
+            'disabled' => [$this, 'translateDisabled'],
+            'enabled' => [$this, 'translateEnabled'],
+            'selected' => [$this, 'translateSelected'],
+            'invalid' => [$this, 'translateInvalid'],
+            'hover' => [$this, 'translateHover'],
+            'visited' => [$this, 'translateVisited'],
+        ];
     }
 
     /**
@@ -58,9 +58,9 @@ class HtmlExtension extends AbstractExtension
      */
     public function getFunctionTranslators()
     {
-        return array(
-            'lang' => array($this, 'translateLang'),
-        );
+        return [
+            'lang' => [$this, 'translateLang'],
+        ];
     }
 
     /**
index 715d9611a8267cbb5df811e34da411f0c04392ab..de222af349af2a4b0ef4347f96b9cf9fa2a870e3 100644 (file)
@@ -75,17 +75,17 @@ class NodeExtension extends AbstractExtension
      */
     public function getNodeTranslators()
     {
-        return array(
-            'Selector' => array($this, 'translateSelector'),
-            'CombinedSelector' => array($this, 'translateCombinedSelector'),
-            'Negation' => array($this, 'translateNegation'),
-            'Function' => array($this, 'translateFunction'),
-            'Pseudo' => array($this, 'translatePseudo'),
-            'Attribute' => array($this, 'translateAttribute'),
-            'Class' => array($this, 'translateClass'),
-            'Hash' => array($this, 'translateHash'),
-            'Element' => array($this, 'translateElement'),
-        );
+        return [
+            'Selector' => [$this, 'translateSelector'],
+            'CombinedSelector' => [$this, 'translateCombinedSelector'],
+            'Negation' => [$this, 'translateNegation'],
+            'Function' => [$this, 'translateFunction'],
+            'Pseudo' => [$this, 'translatePseudo'],
+            'Attribute' => [$this, 'translateAttribute'],
+            'Class' => [$this, 'translateClass'],
+            'Hash' => [$this, 'translateHash'],
+            'Element' => [$this, 'translateElement'],
+        ];
     }
 
     /**
index 378dfb7de17736700131d27cc3b88964f6252ffb..27fe47f9a56fb3a926ae57cc8d48da09f2957db4 100644 (file)
@@ -31,16 +31,16 @@ class PseudoClassExtension extends AbstractExtension
      */
     public function getPseudoClassTranslators()
     {
-        return array(
-            'root' => array($this, 'translateRoot'),
-            'first-child' => array($this, 'translateFirstChild'),
-            'last-child' => array($this, 'translateLastChild'),
-            'first-of-type' => array($this, 'translateFirstOfType'),
-            'last-of-type' => array($this, 'translateLastOfType'),
-            'only-child' => array($this, 'translateOnlyChild'),
-            'only-of-type' => array($this, 'translateOnlyOfType'),
-            'empty' => array($this, 'translateEmpty'),
-        );
+        return [
+            'root' => [$this, 'translateRoot'],
+            'first-child' => [$this, 'translateFirstChild'],
+            'last-child' => [$this, 'translateLastChild'],
+            'first-of-type' => [$this, 'translateFirstOfType'],
+            'last-of-type' => [$this, 'translateLastOfType'],
+            'only-child' => [$this, 'translateOnlyChild'],
+            'only-of-type' => [$this, 'translateOnlyOfType'],
+            'empty' => [$this, 'translateEmpty'],
+        ];
     }
 
     /**
index f8585a057daba595f17ffd6d191740f429b79719..d078126772e92b58bc8318de2ccbd4e7a1b8a3f4 100644 (file)
@@ -35,18 +35,18 @@ class Translator implements TranslatorInterface
     /**
      * @var ParserInterface[]
      */
-    private $shortcutParsers = array();
+    private $shortcutParsers = [];
 
     /**
      * @var Extension\ExtensionInterface[]
      */
-    private $extensions = array();
+    private $extensions = [];
 
-    private $nodeTranslators = array();
-    private $combinationTranslators = array();
-    private $functionTranslators = array();
-    private $pseudoClassTranslators = array();
-    private $attributeMatchingTranslators = array();
+    private $nodeTranslators = [];
+    private $combinationTranslators = [];
+    private $functionTranslators = [];
+    private $pseudoClassTranslators = [];
+    private $attributeMatchingTranslators = [];
 
     public function __construct(ParserInterface $parser = null)
     {
@@ -77,7 +77,7 @@ class Translator implements TranslatorInterface
         }
 
         $string = $element;
-        $parts = array();
+        $parts = [];
         while (true) {
             if (false !== $pos = strpos($string, "'")) {
                 $parts[] = sprintf("'%s'", substr($string, 0, $pos));
index 24fa32c2e9b27aef3eac523f0042b8ab9ba81944..4cd8bdd3007da4d62985ec9e5ca81a1e18ae34d1 100644 (file)
@@ -1,4 +1,4 @@
-Copyright (c) 2015-2018 Fabien Potencier
+Copyright (c) 2015-2019 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index 50ea12f1bbb09226c9ee9abc9c3c33d8655af2b2..0bce08782ea6c655bcbbcd27ea58fe92f9249197 100644 (file)
@@ -28,7 +28,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.9-dev"
+            "dev-master": "1.11-dev"
         }
     }
 }