This commit is contained in:
Torsten 2018-08-07 10:42:11 +02:00
parent 98419bd18d
commit 8a69e45efa
4919 changed files with 28311 additions and 224136 deletions

0
pfosten/vendor/symfony/css-selector/.gitignore vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/CHANGELOG.md vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/CssSelectorConverter.php vendored Executable file → Normal file
View file

View file

View file

View file

0
pfosten/vendor/symfony/css-selector/Exception/ParseException.php vendored Executable file → Normal file
View file

View file

2
pfosten/vendor/symfony/css-selector/LICENSE vendored Executable file → Normal file
View file

@ -1,4 +1,4 @@
Copyright (c) 2004-2017 Fabien Potencier
Copyright (c) 2004-2018 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

2
pfosten/vendor/symfony/css-selector/Node/AbstractNode.php vendored Executable file → Normal file
View file

@ -34,7 +34,7 @@ abstract class AbstractNode implements NodeInterface
public function getNodeName()
{
if (null === $this->nodeName) {
$this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', get_called_class());
$this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', \get_called_class());
}
return $this->nodeName;

19
pfosten/vendor/symfony/css-selector/Node/AttributeNode.php vendored Executable file → Normal file
View file

@ -23,29 +23,10 @@ namespace Symfony\Component\CssSelector\Node;
*/
class AttributeNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $namespace;
/**
* @var string
*/
private $attribute;
/**
* @var string
*/
private $operator;
/**
* @var string
*/
private $value;
/**

7
pfosten/vendor/symfony/css-selector/Node/ClassNode.php vendored Executable file → Normal file
View file

@ -23,14 +23,7 @@ namespace Symfony\Component\CssSelector\Node;
*/
class ClassNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $name;
/**

11
pfosten/vendor/symfony/css-selector/Node/CombinedSelectorNode.php vendored Executable file → Normal file
View file

@ -23,19 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class CombinedSelectorNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $combinator;
/**
* @var NodeInterface
*/
private $subSelector;
/**

7
pfosten/vendor/symfony/css-selector/Node/ElementNode.php vendored Executable file → Normal file
View file

@ -23,14 +23,7 @@ namespace Symfony\Component\CssSelector\Node;
*/
class ElementNode extends AbstractNode
{
/**
* @var string|null
*/
private $namespace;
/**
* @var string|null
*/
private $element;
/**

11
pfosten/vendor/symfony/css-selector/Node/FunctionNode.php vendored Executable file → Normal file
View file

@ -25,19 +25,8 @@ use Symfony\Component\CssSelector\Parser\Token;
*/
class FunctionNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $name;
/**
* @var Token[]
*/
private $arguments;
/**

7
pfosten/vendor/symfony/css-selector/Node/HashNode.php vendored Executable file → Normal file
View file

@ -23,14 +23,7 @@ namespace Symfony\Component\CssSelector\Node;
*/
class HashNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $id;
/**

11
pfosten/vendor/symfony/css-selector/Node/NegationNode.php vendored Executable file → Normal file
View file

@ -23,20 +23,9 @@ namespace Symfony\Component\CssSelector\Node;
*/
class NegationNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var NodeInterface
*/
private $subSelector;
/**
* @param NodeInterface $selector
* @param NodeInterface $subSelector
*/
public function __construct(NodeInterface $selector, NodeInterface $subSelector)
{
$this->selector = $selector;

0
pfosten/vendor/symfony/css-selector/Node/NodeInterface.php vendored Executable file → Normal file
View file

7
pfosten/vendor/symfony/css-selector/Node/PseudoNode.php vendored Executable file → Normal file
View file

@ -23,14 +23,7 @@ namespace Symfony\Component\CssSelector\Node;
*/
class PseudoNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $selector;
/**
* @var string
*/
private $identifier;
/**

7
pfosten/vendor/symfony/css-selector/Node/SelectorNode.php vendored Executable file → Normal file
View file

@ -23,14 +23,7 @@ namespace Symfony\Component\CssSelector\Node;
*/
class SelectorNode extends AbstractNode
{
/**
* @var NodeInterface
*/
private $tree;
/**
* @var null|string
*/
private $pseudoElement;
/**

21
pfosten/vendor/symfony/css-selector/Node/Specificity.php vendored Executable file → Normal file
View file

@ -29,24 +29,11 @@ class Specificity
const B_FACTOR = 10;
const C_FACTOR = 1;
/**
* @var int
*/
private $a;
/**
* @var int
*/
private $b;
/**
* @var int
*/
private $c;
/**
* Constructor.
*
* @param int $a
* @param int $b
* @param int $c
@ -59,11 +46,9 @@ class Specificity
}
/**
* @param Specificity $specificity
*
* @return self
*/
public function plus(Specificity $specificity)
public function plus(self $specificity)
{
return new self($this->a + $specificity->a, $this->b + $specificity->b, $this->c + $specificity->c);
}
@ -82,11 +67,9 @@ class Specificity
* Returns -1 if the object specificity is lower than the argument,
* 0 if they are equal, and 1 if the argument is lower.
*
* @param Specificity $specificity
*
* @return int
*/
public function compareTo(Specificity $specificity)
public function compareTo(self $specificity)
{
if ($this->a !== $specificity->a) {
return $this->a > $specificity->a ? 1 : -1;

View file

View file

@ -27,9 +27,6 @@ use Symfony\Component\CssSelector\Parser\TokenStream;
interface HandlerInterface
{
/**
* @param Reader $reader
* @param TokenStream $stream
*
* @return bool
*/
public function handle(Reader $reader, TokenStream $stream);

15
pfosten/vendor/symfony/css-selector/Parser/Handler/HashHandler.php vendored Executable file → Normal file
View file

@ -13,9 +13,9 @@ namespace Symfony\Component\CssSelector\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Reader;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\TokenStream;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\TokenStream;
/**
* CSS selector comment handler.
@ -29,20 +29,9 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
*/
class HashHandler implements HandlerInterface
{
/**
* @var TokenizerPatterns
*/
private $patterns;
/**
* @var TokenizerEscaping
*/
private $escaping;
/**
* @param TokenizerPatterns $patterns
* @param TokenizerEscaping $escaping
*/
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
$this->patterns = $patterns;
@ -62,7 +51,7 @@ class HashHandler implements HandlerInterface
$value = $this->escaping->escapeUnicode($match[1]);
$stream->push(new Token(Token::TYPE_HASH, $value, $reader->getPosition()));
$reader->moveForward(strlen($match[0]));
$reader->moveForward(\strlen($match[0]));
return true;
}

View file

@ -13,9 +13,9 @@ namespace Symfony\Component\CssSelector\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Reader;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\TokenStream;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\TokenStream;
/**
* CSS selector comment handler.
@ -29,20 +29,9 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
*/
class IdentifierHandler implements HandlerInterface
{
/**
* @var TokenizerPatterns
*/
private $patterns;
/**
* @var TokenizerEscaping
*/
private $escaping;
/**
* @param TokenizerPatterns $patterns
* @param TokenizerEscaping $escaping
*/
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
$this->patterns = $patterns;
@ -62,7 +51,7 @@ class IdentifierHandler implements HandlerInterface
$value = $this->escaping->escapeUnicode($match[0]);
$stream->push(new Token(Token::TYPE_IDENTIFIER, $value, $reader->getPosition()));
$reader->moveForward(strlen($match[0]));
$reader->moveForward(\strlen($match[0]));
return true;
}

10
pfosten/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php vendored Executable file → Normal file
View file

@ -13,8 +13,8 @@ namespace Symfony\Component\CssSelector\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Reader;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\TokenStream;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\TokenStream;
/**
* CSS selector comment handler.
@ -28,14 +28,8 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
*/
class NumberHandler implements HandlerInterface
{
/**
* @var TokenizerPatterns
*/
private $patterns;
/**
* @param TokenizerPatterns $patterns
*/
public function __construct(TokenizerPatterns $patterns)
{
$this->patterns = $patterns;
@ -53,7 +47,7 @@ class NumberHandler implements HandlerInterface
}
$stream->push(new Token(Token::TYPE_NUMBER, $match[0], $reader->getPosition()));
$reader->moveForward(strlen($match[0]));
$reader->moveForward(\strlen($match[0]));
return true;
}

21
pfosten/vendor/symfony/css-selector/Parser/Handler/StringHandler.php vendored Executable file → Normal file
View file

@ -15,9 +15,9 @@ use Symfony\Component\CssSelector\Exception\InternalErrorException;
use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
use Symfony\Component\CssSelector\Parser\Reader;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\TokenStream;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\TokenStream;
/**
* CSS selector comment handler.
@ -31,20 +31,9 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
*/
class StringHandler implements HandlerInterface
{
/**
* @var TokenizerPatterns
*/
private $patterns;
/**
* @var TokenizerEscaping
*/
private $escaping;
/**
* @param TokenizerPatterns $patterns
* @param TokenizerEscaping $escaping
*/
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
$this->patterns = $patterns;
@ -58,7 +47,7 @@ class StringHandler implements HandlerInterface
{
$quote = $reader->getSubstring(1);
if (!in_array($quote, array("'", '"'))) {
if (!\in_array($quote, array("'", '"'))) {
return false;
}
@ -70,18 +59,18 @@ class StringHandler implements HandlerInterface
}
// check unclosed strings
if (strlen($match[0]) === $reader->getRemainingLength()) {
if (\strlen($match[0]) === $reader->getRemainingLength()) {
throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
}
// check quotes pairs validity
if ($quote !== $reader->getSubstring(1, strlen($match[0]))) {
if ($quote !== $reader->getSubstring(1, \strlen($match[0]))) {
throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
}
$string = $this->escaping->escapeUnicodeAndNewLine($match[0]);
$stream->push(new Token(Token::TYPE_STRING, $string, $reader->getPosition()));
$reader->moveForward(strlen($match[0]) + 1);
$reader->moveForward(\strlen($match[0]) + 1);
return true;
}

View file

@ -39,7 +39,7 @@ class WhitespaceHandler implements HandlerInterface
}
$stream->push(new Token(Token::TYPE_WHITESPACE, $match[0], $reader->getPosition()));
$reader->moveForward(strlen($match[0]));
$reader->moveForward(\strlen($match[0]));
return true;
}

23
pfosten/vendor/symfony/css-selector/Parser/Parser.php vendored Executable file → Normal file
View file

@ -27,16 +27,8 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\Tokenizer;
*/
class Parser implements ParserInterface
{
/**
* @var Tokenizer
*/
private $tokenizer;
/**
* Constructor.
*
* @param null|Tokenizer $tokenizer
*/
public function __construct(Tokenizer $tokenizer = null)
{
$this->tokenizer = $tokenizer ?: new Tokenizer();
@ -105,8 +97,6 @@ class Parser implements ParserInterface
/**
* Parses selector nodes.
*
* @param TokenStream $stream
*
* @return array
*/
private function parseSelectorList(TokenStream $stream)
@ -131,8 +121,6 @@ class Parser implements ParserInterface
/**
* Parses next selector or combined node.
*
* @param TokenStream $stream
*
* @return Node\SelectorNode
*
* @throws SyntaxErrorException
@ -181,7 +169,7 @@ class Parser implements ParserInterface
{
$stream->skipWhitespace();
$selectorStart = count($stream->getUsed());
$selectorStart = \count($stream->getUsed());
$result = $this->parseElementNode($stream);
$pseudoElement = null;
@ -218,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), array('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;
@ -284,7 +272,7 @@ class Parser implements ParserInterface
}
}
if (count($stream->getUsed()) === $selectorStart) {
if (\count($stream->getUsed()) === $selectorStart) {
throw SyntaxErrorException::unexpectedToken('selector', $stream->getPeek());
}
@ -294,8 +282,6 @@ class Parser implements ParserInterface
/**
* Parses next element node.
*
* @param TokenStream $stream
*
* @return Node\ElementNode
*/
private function parseElementNode(TokenStream $stream)
@ -327,9 +313,6 @@ class Parser implements ParserInterface
/**
* Parses next attribute node.
*
* @param Node\NodeInterface $selector
* @param TokenStream $stream
*
* @return Node\AttributeNode
*
* @throws SyntaxErrorException

0
pfosten/vendor/symfony/css-selector/Parser/ParserInterface.php vendored Executable file → Normal file
View file

13
pfosten/vendor/symfony/css-selector/Parser/Reader.php vendored Executable file → Normal file
View file

@ -23,19 +23,8 @@ namespace Symfony\Component\CssSelector\Parser;
*/
class Reader
{
/**
* @var string
*/
private $source;
/**
* @var int
*/
private $length;
/**
* @var int
*/
private $position = 0;
/**
@ -44,7 +33,7 @@ class Reader
public function __construct($source)
{
$this->source = $source;
$this->length = strlen($source);
$this->length = \strlen($source);
}
/**

0
pfosten/vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php vendored Executable file → Normal file
View file

View file

View file

@ -37,7 +37,7 @@ class EmptyStringParser implements ParserInterface
public function parse($source)
{
// Matches an empty string
if ($source == '') {
if ('' == $source) {
return array(new SelectorNode(new ElementNode(null, '*')));
}

0
pfosten/vendor/symfony/css-selector/Parser/Shortcut/HashParser.php vendored Executable file → Normal file
View file

15
pfosten/vendor/symfony/css-selector/Parser/Token.php vendored Executable file → Normal file
View file

@ -31,19 +31,8 @@ class Token
const TYPE_NUMBER = 'number';
const TYPE_STRING = 'string';
/**
* @var int
*/
private $type;
/**
* @var string
*/
private $value;
/**
* @var int
*/
private $position;
/**
@ -91,8 +80,6 @@ class Token
}
/**
* @param array $values
*
* @return bool
*/
public function isDelimiter(array $values = array())
@ -105,7 +92,7 @@ class Token
return true;
}
return in_array($this->value, $values);
return \in_array($this->value, $values);
}
/**

11
pfosten/vendor/symfony/css-selector/Parser/TokenStream.php vendored Executable file → Normal file
View file

@ -31,11 +31,6 @@ class TokenStream
*/
private $tokens = array();
/**
* @var bool
*/
private $frozen = false;
/**
* @var Token[]
*/
@ -49,7 +44,7 @@ class TokenStream
/**
* @var Token|null
*/
private $peeked = null;
private $peeked;
/**
* @var bool
@ -59,8 +54,6 @@ class TokenStream
/**
* Pushes a token.
*
* @param Token $token
*
* @return $this
*/
public function push(Token $token)
@ -77,8 +70,6 @@ class TokenStream
*/
public function freeze()
{
$this->frozen = true;
return $this;
}

5
pfosten/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php vendored Executable file → Normal file
View file

@ -33,9 +33,6 @@ class Tokenizer
*/
private $handlers;
/**
* Constructor.
*/
public function __construct()
{
$patterns = new TokenizerPatterns();
@ -54,8 +51,6 @@ class Tokenizer
/**
* Tokenize selector source code.
*
* @param Reader $reader
*
* @return TokenStream
*/
public function tokenize(Reader $reader)

View file

@ -23,14 +23,8 @@ namespace Symfony\Component\CssSelector\Parser\Tokenizer;
*/
class TokenizerEscaping
{
/**
* @var TokenizerPatterns
*/
private $patterns;
/**
* @param TokenizerPatterns $patterns
*/
public function __construct(TokenizerPatterns $patterns)
{
$this->patterns = $patterns;
@ -71,13 +65,13 @@ class TokenizerEscaping
$c = hexdec($match[1]);
if (0x80 > $c %= 0x200000) {
return chr($c);
return \chr($c);
}
if (0x800 > $c) {
return chr(0xC0 | $c >> 6).chr(0x80 | $c & 0x3F);
return \chr(0xC0 | $c >> 6).\chr(0x80 | $c & 0x3F);
}
if (0x10000 > $c) {
return chr(0xE0 | $c >> 12).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F);
return \chr(0xE0 | $c >> 12).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F);
}
}, $value);
}

View file

@ -23,69 +23,19 @@ namespace Symfony\Component\CssSelector\Parser\Tokenizer;
*/
class TokenizerPatterns
{
/**
* @var string
*/
private $unicodeEscapePattern;
/**
* @var string
*/
private $simpleEscapePattern;
/**
* @var string
*/
private $newLineEscapePattern;
/**
* @var string
*/
private $escapePattern;
/**
* @var string
*/
private $stringEscapePattern;
/**
* @var string
*/
private $nonAsciiPattern;
/**
* @var string
*/
private $nmCharPattern;
/**
* @var string
*/
private $nmStartPattern;
/**
* @var string
*/
private $identifierPattern;
/**
* @var string
*/
private $hashPattern;
/**
* @var string
*/
private $numberPattern;
/**
* @var string
*/
private $quotedStringPattern;
/**
* Constructor.
*/
public function __construct()
{
$this->unicodeEscapePattern = '\\\\([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?';
@ -96,7 +46,7 @@ class TokenizerPatterns
$this->nonAsciiPattern = '[^\x00-\x7F]';
$this->nmCharPattern = '[_a-z0-9-]|'.$this->escapePattern.'|'.$this->nonAsciiPattern;
$this->nmStartPattern = '[_a-z]|'.$this->escapePattern.'|'.$this->nonAsciiPattern;
$this->identifierPattern = '(?:'.$this->nmStartPattern.')(?:'.$this->nmCharPattern.')*';
$this->identifierPattern = '-?(?:'.$this->nmStartPattern.')(?:'.$this->nmCharPattern.')*';
$this->hashPattern = '#((?:'.$this->nmCharPattern.')+)';
$this->numberPattern = '[+-]?(?:[0-9]*\.[0-9]+|[0-9]+)';
$this->quotedStringPattern = '([^\n\r\f%s]|'.$this->stringEscapePattern.')*';

0
pfosten/vendor/symfony/css-selector/README.md vendored Executable file → Normal file
View file

View file

@ -59,7 +59,7 @@ class CssSelectorConverterTest extends TestCase
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: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 ')]"),

0
pfosten/vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php vendored Executable file → Normal file
View file

View file

0
pfosten/vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php vendored Executable file → Normal file
View file

View file

0
pfosten/vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php vendored Executable file → Normal file
View file

2
pfosten/vendor/symfony/css-selector/Tests/Node/HashNodeTest.php vendored Executable file → Normal file
View file

@ -11,8 +11,8 @@
namespace Symfony\Component\CssSelector\Tests\Node;
use Symfony\Component\CssSelector\Node\HashNode;
use Symfony\Component\CssSelector\Node\ElementNode;
use Symfony\Component\CssSelector\Node\HashNode;
class HashNodeTest extends AbstractNodeTest
{

2
pfosten/vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php vendored Executable file → Normal file
View file

@ -12,8 +12,8 @@
namespace Symfony\Component\CssSelector\Tests\Node;
use Symfony\Component\CssSelector\Node\ClassNode;
use Symfony\Component\CssSelector\Node\NegationNode;
use Symfony\Component\CssSelector\Node\ElementNode;
use Symfony\Component\CssSelector\Node\NegationNode;
class NegationNodeTest extends AbstractNodeTest
{

0
pfosten/vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/Tests/Node/SpecificityTest.php vendored Executable file → Normal file
View file

View file

@ -63,7 +63,7 @@ abstract class AbstractHandlerTest extends TestCase
$this->assertEquals(0, $reader->getRemainingLength());
$this->assertTrue($reader->isEOF());
} else {
$this->assertEquals(strlen($remainingContent), $reader->getRemainingLength());
$this->assertEquals(\strlen($remainingContent), $reader->getRemainingLength());
$this->assertEquals(0, $reader->getOffset($remainingContent));
}
}

View file

View file

@ -13,8 +13,8 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Handler\HashHandler;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
class HashHandlerTest extends AbstractHandlerTest
{

View file

@ -13,8 +13,8 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Handler\IdentifierHandler;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
class IdentifierHandlerTest extends AbstractHandlerTest
{

View file

View file

@ -13,8 +13,8 @@ namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Handler\StringHandler;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
class StringHandlerTest extends AbstractHandlerTest
{

View file

1
pfosten/vendor/symfony/css-selector/Tests/Parser/ParserTest.php vendored Executable file → Normal file
View file

@ -186,6 +186,7 @@ class ParserTest extends TestCase
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'),
);
}

0
pfosten/vendor/symfony/css-selector/Tests/Parser/ReaderTest.php vendored Executable file → Normal file
View file

View file

View file

View file

View file

View file

0
pfosten/vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html vendored Executable file → Normal file
View file

0
pfosten/vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml vendored Executable file → Normal file
View file

View file

24
pfosten/vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php vendored Executable file → Normal file
View file

@ -37,9 +37,9 @@ class TranslatorTest extends TestCase
$translator = new Translator();
$document = new \SimpleXMLElement(file_get_contents(__DIR__.'/Fixtures/lang.xml'));
$elements = $document->xpath($translator->cssToXPath($css));
$this->assertEquals(count($elementsId), count($elements));
$this->assertCount(\count($elementsId), $elements);
foreach ($elements as $element) {
$this->assertTrue(in_array($element->attributes()->id, $elementsId));
$this->assertTrue(\in_array($element->attributes()->id, $elementsId));
}
}
@ -54,10 +54,10 @@ class TranslatorTest extends TestCase
$document->loadHTMLFile(__DIR__.'/Fixtures/ids.html');
$document = simplexml_import_dom($document);
$elements = $document->xpath($translator->cssToXPath($css));
$this->assertCount(count($elementsId), $elementsId);
$this->assertCount(\count($elementsId), $elementsId);
foreach ($elements as $element) {
if (null !== $element->attributes()->id) {
$this->assertTrue(in_array($element->attributes()->id, $elementsId));
$this->assertTrue(\in_array($element->attributes()->id, $elementsId));
}
}
libxml_clear_errors();
@ -102,18 +102,20 @@ class TranslatorTest extends TestCase
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-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-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-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())]'),
@ -127,7 +129,7 @@ class TranslatorTest extends TestCase
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::*[(name() = 'f') and (position() = 1)]"),
array('e ~ f', 'e/following-sibling::f'),
array('div#container p', "div[@id = 'container']/descendant-or-self::*/p"),
);

View file

View file

@ -128,7 +128,7 @@ class AttributeMatchingExtension extends AbstractExtension
return $xpath->addCondition($value ? sprintf(
'%1$s and substring(%1$s, string-length(%1$s)-%2$s) = %3$s',
$attribute,
strlen($value) - 1,
\strlen($value) - 1,
Translator::getXpathLiteral($value)
) : '0');
}

View file

@ -39,9 +39,6 @@ class CombinationExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param XPathExpr $combinedXpath
*
* @return XPathExpr
*/
public function translateDescendant(XPathExpr $xpath, XPathExpr $combinedXpath)
@ -50,9 +47,6 @@ class CombinationExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param XPathExpr $combinedXpath
*
* @return XPathExpr
*/
public function translateChild(XPathExpr $xpath, XPathExpr $combinedXpath)
@ -61,9 +55,6 @@ class CombinationExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param XPathExpr $combinedXpath
*
* @return XPathExpr
*/
public function translateDirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath)
@ -75,9 +66,6 @@ class CombinationExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param XPathExpr $combinedXpath
*
* @return XPathExpr
*/
public function translateIndirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath)

View file

View file

@ -111,9 +111,6 @@ class FunctionExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*/
public function translateNthLastChild(XPathExpr $xpath, FunctionNode $function)
@ -122,9 +119,6 @@ class FunctionExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*/
public function translateNthOfType(XPathExpr $xpath, FunctionNode $function)
@ -133,9 +127,6 @@ class FunctionExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -150,9 +141,6 @@ class FunctionExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -176,9 +164,6 @@ class FunctionExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*
* @throws ExpressionErrorException

24
pfosten/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php vendored Executable file → Normal file
View file

@ -28,11 +28,6 @@ use Symfony\Component\CssSelector\XPath\XPathExpr;
*/
class HtmlExtension extends AbstractExtension
{
/**
* Constructor.
*
* @param Translator $translator
*/
public function __construct(Translator $translator)
{
$translator
@ -69,8 +64,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateChecked(XPathExpr $xpath)
@ -83,8 +76,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateLink(XPathExpr $xpath)
@ -93,8 +84,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateDisabled(XPathExpr $xpath)
@ -124,8 +113,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateEnabled(XPathExpr $xpath)
@ -162,9 +149,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -191,8 +175,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateSelected(XPathExpr $xpath)
@ -201,8 +183,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateInvalid(XPathExpr $xpath)
@ -211,8 +191,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateHover(XPathExpr $xpath)
@ -221,8 +199,6 @@ class HtmlExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateVisited(XPathExpr $xpath)

31
pfosten/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php vendored Executable file → Normal file
View file

@ -31,14 +31,9 @@ class NodeExtension extends AbstractExtension
const ATTRIBUTE_NAME_IN_LOWER_CASE = 2;
const ATTRIBUTE_VALUE_IN_LOWER_CASE = 4;
/**
* @var int
*/
private $flags;
/**
* Constructor.
*
* @param int $flags
*/
public function __construct($flags = 0)
@ -94,9 +89,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\SelectorNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateSelector(Node\SelectorNode $node, Translator $translator)
@ -105,9 +97,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\CombinedSelectorNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateCombinedSelector(Node\CombinedSelectorNode $node, Translator $translator)
@ -116,9 +105,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\NegationNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateNegation(Node\NegationNode $node, Translator $translator)
@ -135,9 +121,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\FunctionNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateFunction(Node\FunctionNode $node, Translator $translator)
@ -148,9 +131,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\PseudoNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translatePseudo(Node\PseudoNode $node, Translator $translator)
@ -161,9 +141,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\AttributeNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateAttribute(Node\AttributeNode $node, Translator $translator)
@ -192,9 +169,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\ClassNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateClass(Node\ClassNode $node, Translator $translator)
@ -205,9 +179,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\HashNode $node
* @param Translator $translator
*
* @return XPathExpr
*/
public function translateHash(Node\HashNode $node, Translator $translator)
@ -218,8 +189,6 @@ class NodeExtension extends AbstractExtension
}
/**
* @param Node\ElementNode $node
*
* @return XPathExpr
*/
public function translateElement(Node\ElementNode $node)

View file

@ -44,8 +44,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateRoot(XPathExpr $xpath)
@ -54,8 +52,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateFirstChild(XPathExpr $xpath)
@ -67,8 +63,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateLastChild(XPathExpr $xpath)
@ -80,8 +74,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -98,8 +90,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -116,8 +106,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateOnlyChild(XPathExpr $xpath)
@ -129,8 +117,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -145,8 +131,6 @@ class PseudoClassExtension extends AbstractExtension
}
/**
* @param XPathExpr $xpath
*
* @return XPathExpr
*/
public function translateEmpty(XPathExpr $xpath)

43
pfosten/vendor/symfony/css-selector/XPath/Translator.php vendored Executable file → Normal file
View file

@ -30,9 +30,6 @@ use Symfony\Component\CssSelector\Parser\ParserInterface;
*/
class Translator implements TranslatorInterface
{
/**
* @var ParserInterface
*/
private $mainParser;
/**
@ -41,33 +38,14 @@ class Translator implements TranslatorInterface
private $shortcutParsers = array();
/**
* @var Extension\ExtensionInterface
* @var Extension\ExtensionInterface[]
*/
private $extensions = array();
/**
* @var array
*/
private $nodeTranslators = array();
/**
* @var array
*/
private $combinationTranslators = array();
/**
* @var array
*/
private $functionTranslators = array();
/**
* @var array
*/
private $pseudoClassTranslators = array();
/**
* @var array
*/
private $attributeMatchingTranslators = array();
public function __construct(ParserInterface $parser = null)
@ -144,8 +122,6 @@ class Translator implements TranslatorInterface
/**
* Registers an extension.
*
* @param Extension\ExtensionInterface $extension
*
* @return $this
*/
public function registerExtension(Extension\ExtensionInterface $extension)
@ -180,8 +156,6 @@ class Translator implements TranslatorInterface
/**
* Registers a shortcut parser.
*
* @param ParserInterface $shortcut
*
* @return $this
*/
public function registerParserShortcut(ParserInterface $shortcut)
@ -192,8 +166,6 @@ class Translator implements TranslatorInterface
}
/**
* @param NodeInterface $node
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -204,7 +176,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Node "%s" not supported.', $node->getNodeName()));
}
return call_user_func($this->nodeTranslators[$node->getNodeName()], $node, $this);
return \call_user_func($this->nodeTranslators[$node->getNodeName()], $node, $this);
}
/**
@ -222,13 +194,10 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Combiner "%s" not supported.', $combiner));
}
return call_user_func($this->combinationTranslators[$combiner], $this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath));
return \call_user_func($this->combinationTranslators[$combiner], $this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath));
}
/**
* @param XPathExpr $xpath
* @param FunctionNode $function
*
* @return XPathExpr
*
* @throws ExpressionErrorException
@ -239,7 +208,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Function "%s" not supported.', $function->getName()));
}
return call_user_func($this->functionTranslators[$function->getName()], $xpath, $function);
return \call_user_func($this->functionTranslators[$function->getName()], $xpath, $function);
}
/**
@ -256,7 +225,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Pseudo-class "%s" not supported.', $pseudoClass));
}
return call_user_func($this->pseudoClassTranslators[$pseudoClass], $xpath);
return \call_user_func($this->pseudoClassTranslators[$pseudoClass], $xpath);
}
/**
@ -275,7 +244,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Attribute matcher operator "%s" not supported.', $operator));
}
return call_user_func($this->attributeMatchingTranslators[$operator], $xpath, $attribute, $value);
return \call_user_func($this->attributeMatchingTranslators[$operator], $xpath, $attribute, $value);
}
/**

0
pfosten/vendor/symfony/css-selector/XPath/TranslatorInterface.php vendored Executable file → Normal file
View file

17
pfosten/vendor/symfony/css-selector/XPath/XPathExpr.php vendored Executable file → Normal file
View file

@ -23,19 +23,8 @@ namespace Symfony\Component\CssSelector\XPath;
*/
class XPathExpr
{
/**
* @var string
*/
private $path;
/**
* @var string
*/
private $element;
/**
* @var string
*/
private $condition;
/**
@ -64,13 +53,11 @@ class XPathExpr
}
/**
* @param $condition
*
* @return $this
*/
public function addCondition($condition)
{
$this->condition = $this->condition ? sprintf('%s and (%s)', $this->condition, $condition) : $condition;
$this->condition = $this->condition ? sprintf('(%s) and (%s)', $this->condition, $condition) : $condition;
return $this;
}
@ -114,7 +101,7 @@ class XPathExpr
*
* @return $this
*/
public function join($combiner, XPathExpr $expr)
public function join($combiner, self $expr)
{
$path = $this->__toString().$combiner;

4
pfosten/vendor/symfony/css-selector/composer.json vendored Executable file → Normal file
View file

@ -20,7 +20,7 @@
}
],
"require": {
"php": ">=5.5.9"
"php": "^5.5.9|>=7.0.8"
},
"autoload": {
"psr-4": { "Symfony\\Component\\CssSelector\\": "" },
@ -31,7 +31,7 @@
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"dev-master": "3.3-dev"
"dev-master": "3.4-dev"
}
}
}

0
pfosten/vendor/symfony/css-selector/phpunit.xml.dist vendored Executable file → Normal file
View file