comparison vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
comparison
equal deleted inserted replaced
12:7a779792577d 13:5fb285c0d0e3
1 <?php 1 <?php declare(strict_types=1);
2 2
3 namespace PhpParser\Lexer; 3 namespace PhpParser\Lexer;
4 4
5 use PhpParser\LexerTest; 5 use PhpParser\LexerTest;
6 use PhpParser\Parser\Tokens; 6 use PhpParser\Parser\Tokens;
7 7
8 require_once __DIR__ . '/../LexerTest.php'; 8 require_once __DIR__ . '/../LexerTest.php';
9 9
10 class EmulativeTest extends LexerTest 10 class EmulativeTest extends LexerTest
11 { 11 {
12 protected function getLexer(array $options = array()) { 12 protected function getLexer(array $options = []) {
13 return new Emulative($options); 13 return new Emulative($options);
14 } 14 }
15 15
16 /** 16 /**
17 * @dataProvider provideTestReplaceKeywords 17 * @dataProvider provideTestReplaceKeywords
35 $this->assertSame(Tokens::T_STRING, $lexer->getNextToken()); 35 $this->assertSame(Tokens::T_STRING, $lexer->getNextToken());
36 $this->assertSame(0, $lexer->getNextToken()); 36 $this->assertSame(0, $lexer->getNextToken());
37 } 37 }
38 38
39 public function provideTestReplaceKeywords() { 39 public function provideTestReplaceKeywords() {
40 return array( 40 return [
41 // PHP 5.5 41 // PHP 5.5
42 array('finally', Tokens::T_FINALLY), 42 ['finally', Tokens::T_FINALLY],
43 array('yield', Tokens::T_YIELD), 43 ['yield', Tokens::T_YIELD],
44 44
45 // PHP 5.4 45 // PHP 5.4
46 array('callable', Tokens::T_CALLABLE), 46 ['callable', Tokens::T_CALLABLE],
47 array('insteadof', Tokens::T_INSTEADOF), 47 ['insteadof', Tokens::T_INSTEADOF],
48 array('trait', Tokens::T_TRAIT), 48 ['trait', Tokens::T_TRAIT],
49 array('__TRAIT__', Tokens::T_TRAIT_C), 49 ['__TRAIT__', Tokens::T_TRAIT_C],
50 50
51 // PHP 5.3 51 // PHP 5.3
52 array('__DIR__', Tokens::T_DIR), 52 ['__DIR__', Tokens::T_DIR],
53 array('goto', Tokens::T_GOTO), 53 ['goto', Tokens::T_GOTO],
54 array('namespace', Tokens::T_NAMESPACE), 54 ['namespace', Tokens::T_NAMESPACE],
55 array('__NAMESPACE__', Tokens::T_NS_C), 55 ['__NAMESPACE__', Tokens::T_NS_C],
56 ); 56 ];
57 } 57 }
58 58
59 /** 59 /**
60 * @dataProvider provideTestLexNewFeatures 60 * @dataProvider provideTestLexNewFeatures
61 */ 61 */
84 $this->assertSame($stringifiedToken, $text); 84 $this->assertSame($stringifiedToken, $text);
85 $this->assertSame(0, $lexer->getNextToken()); 85 $this->assertSame(0, $lexer->getNextToken());
86 } 86 }
87 87
88 public function provideTestLexNewFeatures() { 88 public function provideTestLexNewFeatures() {
89 return array( 89 return [
90 array('yield from', array( 90 ['yield from', [
91 array(Tokens::T_YIELD_FROM, 'yield from'), 91 [Tokens::T_YIELD_FROM, 'yield from'],
92 )), 92 ]],
93 array("yield\r\nfrom", array( 93 ["yield\r\nfrom", [
94 array(Tokens::T_YIELD_FROM, "yield\r\nfrom"), 94 [Tokens::T_YIELD_FROM, "yield\r\nfrom"],
95 )), 95 ]],
96 array('...', array( 96 ['...', [
97 array(Tokens::T_ELLIPSIS, '...'), 97 [Tokens::T_ELLIPSIS, '...'],
98 )), 98 ]],
99 array('**', array( 99 ['**', [
100 array(Tokens::T_POW, '**'), 100 [Tokens::T_POW, '**'],
101 )), 101 ]],
102 array('**=', array( 102 ['**=', [
103 array(Tokens::T_POW_EQUAL, '**='), 103 [Tokens::T_POW_EQUAL, '**='],
104 )), 104 ]],
105 array('??', array( 105 ['??', [
106 array(Tokens::T_COALESCE, '??'), 106 [Tokens::T_COALESCE, '??'],
107 )), 107 ]],
108 array('<=>', array( 108 ['<=>', [
109 array(Tokens::T_SPACESHIP, '<=>'), 109 [Tokens::T_SPACESHIP, '<=>'],
110 )), 110 ]],
111 array('0b1010110', array( 111 ['0b1010110', [
112 array(Tokens::T_LNUMBER, '0b1010110'), 112 [Tokens::T_LNUMBER, '0b1010110'],
113 )), 113 ]],
114 array('0b1011010101001010110101010010101011010101010101101011001110111100', array( 114 ['0b1011010101001010110101010010101011010101010101101011001110111100', [
115 array(Tokens::T_DNUMBER, '0b1011010101001010110101010010101011010101010101101011001110111100'), 115 [Tokens::T_DNUMBER, '0b1011010101001010110101010010101011010101010101101011001110111100'],
116 )), 116 ]],
117 array('\\', array( 117 ['\\', [
118 array(Tokens::T_NS_SEPARATOR, '\\'), 118 [Tokens::T_NS_SEPARATOR, '\\'],
119 )), 119 ]],
120 array("<<<'NOWDOC'\nNOWDOC;\n", array( 120 ["<<<'NOWDOC'\nNOWDOC;\n", [
121 array(Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"), 121 [Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"],
122 array(Tokens::T_END_HEREDOC, 'NOWDOC'), 122 [Tokens::T_END_HEREDOC, 'NOWDOC'],
123 array(ord(';'), ';'), 123 [ord(';'), ';'],
124 )), 124 ]],
125 array("<<<'NOWDOC'\nFoobar\nNOWDOC;\n", array( 125 ["<<<'NOWDOC'\nFoobar\nNOWDOC;\n", [
126 array(Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"), 126 [Tokens::T_START_HEREDOC, "<<<'NOWDOC'\n"],
127 array(Tokens::T_ENCAPSED_AND_WHITESPACE, "Foobar\n"), 127 [Tokens::T_ENCAPSED_AND_WHITESPACE, "Foobar\n"],
128 array(Tokens::T_END_HEREDOC, 'NOWDOC'), 128 [Tokens::T_END_HEREDOC, 'NOWDOC'],
129 array(ord(';'), ';'), 129 [ord(';'), ';'],
130 )), 130 ]],
131 ); 131 ];
132 } 132 }
133 } 133 }