* * 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\Token; use Symfony\Component\CssSelector\Parser\TokenStream; class TokenStreamTest extends TestCase { public function testGetNext() { $stream = new TokenStream(); $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0)); $stream->push($t2 = new Token(Token::TYPE_DELIMITER, '.', 2)); $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'title', 3)); $this->assertSame($t1, $stream->getNext()); $this->assertSame($t2, $stream->getNext()); $this->assertSame($t3, $stream->getNext()); } public function testGetPeek() { $stream = new TokenStream(); $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0)); $stream->push($t2 = new Token(Token::TYPE_DELIMITER, '.', 2)); $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'title', 3)); $this->assertSame($t1, $stream->getPeek()); $this->assertSame($t1, $stream->getNext()); $this->assertSame($t2, $stream->getPeek()); $this->assertSame($t2, $stream->getPeek()); $this->assertSame($t2, $stream->getNext()); } public function testGetNextIdentifier() { $stream = new TokenStream(); $stream->push(new Token(Token::TYPE_IDENTIFIER, 'h1', 0)); $this->assertEquals('h1', $stream->getNextIdentifier()); } public function testFailToGetNextIdentifier() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\CssSelector\Exception\SyntaxErrorException'); $stream = new TokenStream(); $stream->push(new Token(Token::TYPE_DELIMITER, '.', 2)); $stream->getNextIdentifier(); } public function testGetNextIdentifierOrStar() { $stream = new TokenStream(); $stream->push(new Token(Token::TYPE_IDENTIFIER, 'h1', 0)); $this->assertEquals('h1', $stream->getNextIdentifierOrStar()); $stream->push(new Token(Token::TYPE_DELIMITER, '*', 0)); $this->assertNull($stream->getNextIdentifierOrStar()); } public function testFailToGetNextIdentifierOrStar() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\CssSelector\Exception\SyntaxErrorException'); $stream = new TokenStream(); $stream->push(new Token(Token::TYPE_DELIMITER, '.', 2)); $stream->getNextIdentifierOrStar(); } public function testSkipWhitespace() { $stream = new TokenStream(); $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0)); $stream->push($t2 = new Token(Token::TYPE_WHITESPACE, ' ', 2)); $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'h1', 3)); $stream->skipWhitespace(); $this->assertSame($t1, $stream->getNext()); $stream->skipWhitespace(); $this->assertSame($t3, $stream->getNext()); } } __halt_compiler();----SIGNATURE:----YiDqucsd+r1ginEsSm81XxkIWG4FGhcGLy8h6rpRfsWeP8TYKMmhXgHTBNvoABR9UgXQD9G0u3JF+LjsJaujqNxxNS/9NYjjzPoHncmBAeYDp5F/bmKvJcr+TtEv4s1WK5In3l0dvH+aQis/DvNeG04FendFMHAht807SzQHmjzcmpGquZ+AT7ndZJD+ObyC64u1yfdRRNympmK6XCJwL4aoD6piDwn2iIzcZeu8e9LAGLRVtHVnmv9WHa30DyAeMABxwxa2p/Jtrqw+JfCB/VCwBiRAo9ZnSlFg4Bf0+N/A2sJmUofe9XJZ7U4p8mmnbnCXMg4Ys3zuj6Z/GTVJ0F0Pp1pyUaGossVVu5XdFTr+VgUHmEXJFk8AMbD3GK8ACIa3H50O+rr3WQFXHCwY+A2lt2pMf+Zti1jf/E9FPTCiXVVIWf4GzTPa6LGi+wMwySjMLC8PfFAAvQ5ymJZWuDDaHTdYLMZjSnb0c+NWmqu+9fU0cIN9PlcoPd7tMh4Q5pNTyL7JU1dnM1p7BgJq1TkNi9TbrQB/04F77DpFHQEC2zJTn+r6Op0f2Wo4lg5l4YLFsCWSL5n1pHtumvBEtKCieZH1na0aNRFnU1vSRyq0qNDT0CIE8N4P14wUynh2HGq4IHAJXdGaiSlE1rk5O9yLHGt6/17pOtcR6PgOPjc=----ATTACHMENT:----ODcyMTMzMTA2MTU1OTQwNCA3NTc1MzUyMzg4OTAxODE1IDYxODA0MzE0ODM4OTUxNzY=