home
/
zktecojo
/
public_html
/
vendor
/
nikic
/
php-parser
/
test
/
PHPParser
/
Tests
/
Lexer
➕ New
📤 Upload
✎ Editing:
EmulativeTest.php
← Back
<?php class PHPParser_Tests_Lexer_EmulativeTest extends PHPUnit_Framework_TestCase { /** @var PHPParser_Lexer_Emulative */ protected $lexer; protected function setUp() { $this->lexer = new PHPParser_Lexer_Emulative; } /** * @dataProvider provideTestReplaceKeywords */ public function testReplaceKeywords($keyword, $expectedToken) { $this->lexer->startLexing('<?php ' . $keyword); $this->assertEquals($expectedToken, $this->lexer->getNextToken()); $this->assertEquals(0, $this->lexer->getNextToken()); } /** * @dataProvider provideTestReplaceKeywords */ public function testNoReplaceKeywordsAfterObjectOperator($keyword) { $this->lexer->startLexing('<?php ->' . $keyword); $this->assertEquals(PHPParser_Parser::T_OBJECT_OPERATOR, $this->lexer->getNextToken()); $this->assertEquals(PHPParser_Parser::T_STRING, $this->lexer->getNextToken()); $this->assertEquals(0, $this->lexer->getNextToken()); } public function provideTestReplaceKeywords() { return array( // PHP 5.5 array('finally', PHPParser_Parser::T_FINALLY), array('yield', PHPParser_Parser::T_YIELD), // PHP 5.4 array('callable', PHPParser_Parser::T_CALLABLE), array('insteadof', PHPParser_Parser::T_INSTEADOF), array('trait', PHPParser_Parser::T_TRAIT), array('__TRAIT__', PHPParser_Parser::T_TRAIT_C), // PHP 5.3 array('__DIR__', PHPParser_Parser::T_DIR), array('goto', PHPParser_Parser::T_GOTO), array('namespace', PHPParser_Parser::T_NAMESPACE), array('__NAMESPACE__', PHPParser_Parser::T_NS_C), ); } /** * @dataProvider provideTestLexNewFeatures */ public function testLexNewFeatures($code, array $expectedTokens) { $this->lexer->startLexing('<?php ' . $code); foreach ($expectedTokens as $expectedToken) { list($expectedTokenType, $expectedTokenText) = $expectedToken; $this->assertEquals($expectedTokenType, $this->lexer->getNextToken($text)); $this->assertEquals($expectedTokenText, $text); } $this->assertEquals(0, $this->lexer->getNextToken()); } /** * @dataProvider provideTestLexNewFeatures */ public function testLeaveStuffAloneInStrings($code) { $stringifiedToken = '"' . addcslashes($code, '"\\') . '"'; $this->lexer->startLexing('<?php ' . $stringifiedToken); $this->assertEquals(PHPParser_Parser::T_CONSTANT_ENCAPSED_STRING, $this->lexer->getNextToken($text)); $this->assertEquals($stringifiedToken, $text); $this->assertEquals(0, $this->lexer->getNextToken()); } public function provideTestLexNewFeatures() { return array( array('0b1010110', array( array(PHPParser_Parser::T_LNUMBER, '0b1010110'), )), array('0b1011010101001010110101010010101011010101010101101011001110111100', array( array(PHPParser_Parser::T_DNUMBER, '0b1011010101001010110101010010101011010101010101101011001110111100'), )), array('\\', array( array(PHPParser_Parser::T_NS_SEPARATOR, '\\'), )), array("<<<'NOWDOC'\nNOWDOC;\n", array( array(PHPParser_Parser::T_START_HEREDOC, "<<<'NOWDOC'\n"), array(PHPParser_Parser::T_END_HEREDOC, 'NOWDOC'), array(ord(';'), ';'), )), array("<<<'NOWDOC'\nFoobar\nNOWDOC;\n", array( array(PHPParser_Parser::T_START_HEREDOC, "<<<'NOWDOC'\n"), array(PHPParser_Parser::T_ENCAPSED_AND_WHITESPACE, "Foobar\n"), array(PHPParser_Parser::T_END_HEREDOC, 'NOWDOC'), array(ord(';'), ';'), )), ); } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel