First commit
This commit is contained in:
commit
c6e2478c40
13918 changed files with 2303184 additions and 0 deletions
94
vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php
vendored
Normal file
94
vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php
vendored
Normal file
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
namespace PhpParser\Parser;
|
||||
|
||||
use PhpParser\Error;
|
||||
use PhpParser\Lexer;
|
||||
use PhpParser\Node\Expr;
|
||||
use PhpParser\Node\Scalar\LNumber;
|
||||
use PhpParser\Node\Stmt;
|
||||
use PhpParser\ParserTest;
|
||||
|
||||
require_once __DIR__ . '/../ParserTest.php';
|
||||
|
||||
class MultipleTest extends ParserTest {
|
||||
// This provider is for the generic parser tests, just pick an arbitrary order here
|
||||
protected function getParser(Lexer $lexer) {
|
||||
return new Multiple([new Php5($lexer), new Php7($lexer)]);
|
||||
}
|
||||
|
||||
private function getPrefer7() {
|
||||
$lexer = new Lexer(['usedAttributes' => []]);
|
||||
return new Multiple([new Php7($lexer), new Php5($lexer)]);
|
||||
}
|
||||
|
||||
private function getPrefer5() {
|
||||
$lexer = new Lexer(['usedAttributes' => []]);
|
||||
return new Multiple([new Php5($lexer), new Php7($lexer)]);
|
||||
}
|
||||
|
||||
/** @dataProvider provideTestParse */
|
||||
public function testParse($code, Multiple $parser, $expected) {
|
||||
$this->assertEquals($expected, $parser->parse($code));
|
||||
}
|
||||
|
||||
public function provideTestParse() {
|
||||
return [
|
||||
[
|
||||
// PHP 7 only code
|
||||
'<?php class Test { function function() {} }',
|
||||
$this->getPrefer5(),
|
||||
[
|
||||
new Stmt\Class_('Test', ['stmts' => [
|
||||
new Stmt\ClassMethod('function')
|
||||
]]),
|
||||
]
|
||||
],
|
||||
[
|
||||
// PHP 5 only code
|
||||
'<?php global $$a->b;',
|
||||
$this->getPrefer7(),
|
||||
[
|
||||
new Stmt\Global_([
|
||||
new Expr\Variable(new Expr\PropertyFetch(new Expr\Variable('a'), 'b'))
|
||||
])
|
||||
]
|
||||
],
|
||||
[
|
||||
// Different meaning (PHP 5)
|
||||
'<?php $$a[0];',
|
||||
$this->getPrefer5(),
|
||||
[
|
||||
new Expr\Variable(
|
||||
new Expr\ArrayDimFetch(new Expr\Variable('a'), LNumber::fromString('0'))
|
||||
)
|
||||
]
|
||||
],
|
||||
[
|
||||
// Different meaning (PHP 7)
|
||||
'<?php $$a[0];',
|
||||
$this->getPrefer7(),
|
||||
[
|
||||
new Expr\ArrayDimFetch(
|
||||
new Expr\Variable(new Expr\Variable('a')), LNumber::fromString('0')
|
||||
)
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function testThrownError() {
|
||||
$this->setExpectedException('PhpParser\Error', 'FAIL A');
|
||||
|
||||
$parserA = $this->getMockBuilder('PhpParser\Parser')->getMock();
|
||||
$parserA->expects($this->at(0))
|
||||
->method('parse')->will($this->throwException(new Error('FAIL A')));
|
||||
|
||||
$parserB = $this->getMockBuilder('PhpParser\Parser')->getMock();
|
||||
$parserB->expects($this->at(0))
|
||||
->method('parse')->will($this->throwException(new Error('FAIL B')));
|
||||
|
||||
$parser = new Multiple([$parserA, $parserB]);
|
||||
$parser->parse('dummy');
|
||||
}
|
||||
}
|
14
vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php
vendored
Normal file
14
vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace PhpParser\Parser;
|
||||
|
||||
use PhpParser\Lexer;
|
||||
use PhpParser\ParserTest;
|
||||
|
||||
require_once __DIR__ . '/../ParserTest.php';
|
||||
|
||||
class Php5Test extends ParserTest {
|
||||
protected function getParser(Lexer $lexer) {
|
||||
return new Php5($lexer);
|
||||
}
|
||||
}
|
14
vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php
vendored
Normal file
14
vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace PhpParser\Parser;
|
||||
|
||||
use PhpParser\Lexer;
|
||||
use PhpParser\ParserTest;
|
||||
|
||||
require_once __DIR__ . '/../ParserTest.php';
|
||||
|
||||
class Php7Test extends ParserTest {
|
||||
protected function getParser(Lexer $lexer) {
|
||||
return new Php7($lexer);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue