AbstractHandlerTest.php in Zircon Profile 8
File
vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php
View source
<?php
namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
use Symfony\Component\CssSelector\Parser\Reader;
use Symfony\Component\CssSelector\Parser\Token;
use Symfony\Component\CssSelector\Parser\TokenStream;
abstract class AbstractHandlerTest extends \PHPUnit_Framework_TestCase {
public function testHandleValue($value, Token $expectedToken, $remainingContent) {
$reader = new Reader($value);
$stream = new TokenStream();
$this
->assertTrue($this
->generateHandler()
->handle($reader, $stream));
$this
->assertEquals($expectedToken, $stream
->getNext());
$this
->assertRemainingContent($reader, $remainingContent);
}
public function testDontHandleValue($value) {
$reader = new Reader($value);
$stream = new TokenStream();
$this
->assertFalse($this
->generateHandler()
->handle($reader, $stream));
$this
->assertStreamEmpty($stream);
$this
->assertRemainingContent($reader, $value);
}
public abstract function getHandleValueTestData();
public abstract function getDontHandleValueTestData();
protected abstract function generateHandler();
protected function assertStreamEmpty(TokenStream $stream) {
$property = new \ReflectionProperty($stream, 'tokens');
$property
->setAccessible(true);
$this
->assertEquals(array(), $property
->getValue($stream));
}
protected function assertRemainingContent(Reader $reader, $remainingContent) {
if ('' === $remainingContent) {
$this
->assertEquals(0, $reader
->getRemainingLength());
$this
->assertTrue($reader
->isEOF());
}
else {
$this
->assertEquals(strlen($remainingContent), $reader
->getRemainingLength());
$this
->assertEquals(0, $reader
->getOffset($remainingContent));
}
}
}