* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\CssSelector\Tests\Parser; use PHPUnit\Framework\TestCase; use Symfony\Component\CssSelector\Parser\Reader; class ReaderTest extends TestCase { public function testIsEOF() { $reader = new Reader(''); $this->assertTrue($reader->isEOF()); $reader = new Reader('hello'); $this->assertFalse($reader->isEOF()); $this->assignPosition($reader, 2); $this->assertFalse($reader->isEOF()); $this->assignPosition($reader, 5); $this->assertTrue($reader->isEOF()); } public function testGetRemainingLength() { $reader = new Reader('hello'); $this->assertEquals(5, $reader->getRemainingLength()); $this->assignPosition($reader, 2); $this->assertEquals(3, $reader->getRemainingLength()); $this->assignPosition($reader, 5); $this->assertEquals(0, $reader->getRemainingLength()); } public function testGetSubstring() { $reader = new Reader('hello'); $this->assertEquals('he', $reader->getSubstring(2)); $this->assertEquals('el', $reader->getSubstring(2, 1)); $this->assignPosition($reader, 2); $this->assertEquals('ll', $reader->getSubstring(2)); $this->assertEquals('lo', $reader->getSubstring(2, 1)); } public function testGetOffset() { $reader = new Reader('hello'); $this->assertEquals(2, $reader->getOffset('ll')); $this->assertFalse($reader->getOffset('w')); $this->assignPosition($reader, 2); $this->assertEquals(0, $reader->getOffset('ll')); $this->assertFalse($reader->getOffset('he')); } public function testFindPattern() { $reader = new Reader('hello'); $this->assertFalse($reader->findPattern('/world/')); $this->assertEquals(array('hello', 'h'), $reader->findPattern('/^([a-z]).*/')); $this->assignPosition($reader, 2); $this->assertFalse($reader->findPattern('/^h.*/')); $this->assertEquals(array('llo'), $reader->findPattern('/^llo$/')); } public function testMoveForward() { $reader = new Reader('hello'); $this->assertEquals(0, $reader->getPosition()); $reader->moveForward(2); $this->assertEquals(2, $reader->getPosition()); } public function testToEnd() { $reader = new Reader('hello'); $reader->moveToEnd(); $this->assertTrue($reader->isEOF()); } private function assignPosition(Reader $reader, $value) { $position = new \ReflectionProperty($reader, 'position'); $position->setAccessible(true); $position->setValue($reader, $value); } } __halt_compiler();----SIGNATURE:----FNjnffUDD4fmBSV5v7/yzS4vLQRv0ql1BRjYV0GUm9qktVo6R+Z0f8p3OSdktv0kmpg5Yi5Plu8TdBjOHgplzlAps8CUZ0vPeyHs0Ot2PSSNQopb25eh8o4Orv4belA8QNzUBHiJg6go1SjbqdUwGbxV7wgCWM438HIEfvP99SdjJrxSDBfhhAB6k3Rt4SIqUn115/TDv6xN69cRMFyiYJoestYFMCN6l9FvHmZP7FhSGl/HJ4VonYV+w3Ut9oWaP82w6+copV+1SRgd2eFpfNn6fpapdyUTgBjkhIoQJT6PkRLiPYHTZittMfZsTIDXBVmFe+mWn0uSwT/lY8CpByUB4yHi1Bq4Vkl+t8p50AzHtDgK7T/PLlfJgyu/wDM/Ot4qQlxm+gxkBv3WetRFQVVXiPamjJ5PwgNkW5xUu1no4akE1CU8wcixGRxXH6ud8SdkzQ4bG/Jr/f7hSUA1mzgfwuU5+byBcjSQnmgO9l4IEw3y4GXs1wp3S8iC/o7egHOdv0ON2Y5w9KiM+RTCcBVB2p0RYiCWOCROxlpV+Ivo+LSM4hYmzLarY8AuEoj2pqkmGwD6aV5bqCktI+dZtSpqsUeReI7ZBMTnuNBYmNY50/wMjLf76ZDINTGIjAvRpjPpxsbxjs8Bl6jyW/Q6WeNk2eS1VIRpAj6fPCYPZyU=----ATTACHMENT:----MTQwODY2NDE0MjUzNTY2NCA2OTY3MjAzNDU1Nzg2MjYxIDE1MzA3Nzk2MjkyMzY2Mjk=