update v 1.0.7.5
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PhpParser\NodeTraverser;
|
||||
use Psy\CodeCleaner\AbstractClassPass;
|
||||
|
||||
class AbstractClassPassTest extends CodeCleanerTestCase
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PhpParser\NodeTraverser;
|
||||
use Psy\CodeCleaner\AssignThisVariablePass;
|
||||
|
||||
class AssignThisVariablePassTest extends CodeCleanerTestCase
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PhpParser\NodeTraverser;
|
||||
use Psy\CodeCleaner\CallTimePassByReferencePass;
|
||||
|
||||
class CallTimePassByReferencePassTest extends CodeCleanerTestCase
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PhpParser\NodeTraverser;
|
||||
use Psy\CodeCleaner\CalledClassPass;
|
||||
|
||||
class CalledClassPassTest extends CodeCleanerTestCase
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,12 +11,12 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_Lexer as Lexer;
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PHPParser_Parser as Parser;
|
||||
use PHPParser_PrettyPrinter_Default as Printer;
|
||||
use PhpParser\NodeTraverser;
|
||||
use PhpParser\Parser;
|
||||
use PhpParser\PrettyPrinter\Standard as Printer;
|
||||
use Psy\CodeCleaner\CodeCleanerPass;
|
||||
use Psy\Exception\ParseErrorException;
|
||||
use Psy\ParserFactory;
|
||||
|
||||
class CodeCleanerTestCase extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
@@ -39,7 +39,7 @@ class CodeCleanerTestCase extends \PHPUnit_Framework_TestCase
|
||||
$code = $prefix . $code;
|
||||
try {
|
||||
return $this->getParser()->parse($code);
|
||||
} catch (\PHPParser_Error $e) {
|
||||
} catch (\PhpParser\Error $e) {
|
||||
if (!$this->parseErrorIsEOF($e)) {
|
||||
throw ParseErrorException::fromParseError($e);
|
||||
}
|
||||
@@ -47,7 +47,7 @@ class CodeCleanerTestCase extends \PHPUnit_Framework_TestCase
|
||||
try {
|
||||
// Unexpected EOF, try again with an implicit semicolon
|
||||
return $this->getParser()->parse($code . ';');
|
||||
} catch (\PHPParser_Error $e) {
|
||||
} catch (\PhpParser\Error $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,8 @@ class CodeCleanerTestCase extends \PHPUnit_Framework_TestCase
|
||||
private function getParser()
|
||||
{
|
||||
if (!isset($this->parser)) {
|
||||
$this->parser = new Parser(new Lexer());
|
||||
$parserFactory = new ParserFactory();
|
||||
$this->parser = $parserFactory->createParser();
|
||||
}
|
||||
|
||||
return $this->parser;
|
||||
@@ -88,10 +89,10 @@ class CodeCleanerTestCase extends \PHPUnit_Framework_TestCase
|
||||
return $this->printer;
|
||||
}
|
||||
|
||||
private function parseErrorIsEOF(\PHPParser_Error $e)
|
||||
private function parseErrorIsEOF(\PhpParser\Error $e)
|
||||
{
|
||||
$msg = $e->getRawMessage();
|
||||
|
||||
return ($msg === "Unexpected token EOF") || (strpos($msg, "Syntax error, unexpected EOF") !== false);
|
||||
return ($msg === 'Unexpected token EOF') || (strpos($msg, 'Syntax error, unexpected EOF') !== false);
|
||||
}
|
||||
}
|
||||
|
||||
51
vendor/psy/psysh/test/Psy/Test/CodeCleaner/ExitPassTest.php
vendored
Normal file
51
vendor/psy/psysh/test/Psy/Test/CodeCleaner/ExitPassTest.php
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use Psy\CodeCleaner\ExitPass;
|
||||
|
||||
class ExitPassTest extends CodeCleanerTestCase
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $expectedExceptionString = "throw new Psy\\Exception\\BreakException('Goodbye.');";
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->setPass(new ExitPass());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProviderExitStatement
|
||||
*/
|
||||
public function testExitStatement($from, $to)
|
||||
{
|
||||
$this->assertProcessesAs($from, $to);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testExitStatement.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function dataProviderExitStatement()
|
||||
{
|
||||
return array(
|
||||
array('exit;', $this->expectedExceptionString),
|
||||
array('exit();', $this->expectedExceptionString),
|
||||
array('die;', $this->expectedExceptionString),
|
||||
array('if (true) { exit; }', "if (true) {\n $this->expectedExceptionString\n}"),
|
||||
array('if (false) { exit; }', "if (false) {\n $this->expectedExceptionString\n}"),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use PHPParser_NodeTraverser as NodeTraverser;
|
||||
use PhpParser\NodeTraverser;
|
||||
use Psy\CodeCleaner\FunctionReturnInWriteContextPass;
|
||||
use Psy\Exception\FatalErrorException;
|
||||
|
||||
@@ -53,7 +53,10 @@ class FunctionReturnInWriteContextPassTest extends CodeCleanerTestCase
|
||||
$this->fail();
|
||||
} catch (FatalErrorException $e) {
|
||||
if (version_compare(PHP_VERSION, '5.5', '>=')) {
|
||||
$this->assertContains('Cannot use isset() on the result of a function call (you can use "null !== func()" instead)', $e->getMessage());
|
||||
$this->assertContains(
|
||||
'Cannot use isset() on the result of a function call (you can use "null !== func()" instead)',
|
||||
$e->getMessage()
|
||||
);
|
||||
} else {
|
||||
$this->assertContains("Can't use function return value in write context", $e->getMessage());
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -33,6 +33,7 @@ class ImplicitReturnPassTest extends CodeCleanerTestCase
|
||||
return array(
|
||||
array('4', 'return 4;'),
|
||||
array('foo()', 'return foo();'),
|
||||
array('exit()', 'die;'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -33,7 +33,7 @@ class MagicConstantsPassTest extends CodeCleanerTestCase
|
||||
return array(
|
||||
array('__DIR__;', 'getcwd();'),
|
||||
array('__FILE__;', "'';"),
|
||||
array('___FILE___;', "___FILE___;"),
|
||||
array('___FILE___;', '___FILE___;'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
||||
53
vendor/psy/psysh/test/Psy/Test/CodeCleaner/StrictTypesPassTest.php
vendored
Normal file
53
vendor/psy/psysh/test/Psy/Test/CodeCleaner/StrictTypesPassTest.php
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Psy\Test\CodeCleaner;
|
||||
|
||||
use Psy\CodeCleaner\StrictTypesPass;
|
||||
|
||||
class StrictTypesPassTest extends CodeCleanerTestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
if (version_compare(PHP_VERSION, '7.0', '<')) {
|
||||
$this->markTestSkipped();
|
||||
}
|
||||
|
||||
$this->setPass(new StrictTypesPass());
|
||||
}
|
||||
|
||||
public function testProcess()
|
||||
{
|
||||
$this->assertProcessesAs('declare(strict_types=1)', 'declare (strict_types=1);');
|
||||
$this->assertProcessesAs('null', "declare (strict_types=1);\nnull;");
|
||||
$this->assertProcessesAs('declare(strict_types=0)', 'declare (strict_types=0);');
|
||||
$this->assertProcessesAs('null', 'null;');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider invalidDeclarations
|
||||
* @expectedException \Psy\Exception\FatalErrorException
|
||||
*/
|
||||
public function testInvalidDeclarations($declaration)
|
||||
{
|
||||
$stmts = $this->parse($declaration);
|
||||
$this->traverser->traverse($stmts);
|
||||
}
|
||||
|
||||
public function invalidDeclarations()
|
||||
{
|
||||
return array(
|
||||
array('declare(strict_types=-1)'),
|
||||
array('declare(strict_types=2)'),
|
||||
array('declare(strict_types="foo")'),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -33,7 +33,7 @@ class UseStatementPassTest extends CodeCleanerTestCase
|
||||
return array(
|
||||
array(
|
||||
"use StdClass as NotSoStd;\n\$std = new NotSoStd();",
|
||||
"\$std = new \\StdClass();",
|
||||
'$std = new \\StdClass();',
|
||||
),
|
||||
array(
|
||||
"namespace Foo;\n\nuse StdClass as S;\n\$std = new S();",
|
||||
@@ -45,7 +45,7 @@ class UseStatementPassTest extends CodeCleanerTestCase
|
||||
),
|
||||
array(
|
||||
"use Foo\\Bar as fb;\n\$baz = new fb\\Baz();",
|
||||
"\$baz = new \\Foo\\Bar\\Baz();",
|
||||
'$baz = new \\Foo\\Bar\\Baz();',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -53,49 +53,49 @@ class ValidClassNamePassTest extends CodeCleanerTestCase
|
||||
array('trait stdClass {}', true),
|
||||
|
||||
// collisions inside the same code snippet
|
||||
array("
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
trait Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
", true),
|
||||
array("
|
||||
', true),
|
||||
array('
|
||||
trait Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
", true),
|
||||
array("
|
||||
', true),
|
||||
array('
|
||||
trait Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
interface Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
", true),
|
||||
array("
|
||||
', true),
|
||||
array('
|
||||
interface Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
trait Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
", true),
|
||||
array("
|
||||
', true),
|
||||
array('
|
||||
interface Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
interface Psy_Test_CodeCleaner_ValidClassNamePass_Alpha {}
|
||||
"),
|
||||
'),
|
||||
|
||||
// namespaced collisions
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner {
|
||||
class ValidClassNamePassTest {}
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Beta {}
|
||||
}
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Beta {}
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// extends and implements
|
||||
array('class ValidClassNamePassTest extends NotAClass {}'),
|
||||
@@ -107,11 +107,11 @@ class ValidClassNamePassTest extends CodeCleanerTestCase
|
||||
|
||||
// class instantiations
|
||||
array('new Psy_Test_CodeCleaner_ValidClassNamePass_Gamma();'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
new Psy_Test_CodeCleaner_ValidClassNamePass_Delta();
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// class constant fetch
|
||||
array('Psy\\Test\\CodeCleaner\\ValidClassNamePass\\NotAClass::FOO'),
|
||||
@@ -133,53 +133,147 @@ class ValidClassNamePassTest extends CodeCleanerTestCase
|
||||
|
||||
public function getValid()
|
||||
{
|
||||
return array(
|
||||
$valid = array(
|
||||
// class declarations
|
||||
array('class Psy_Test_CodeCleaner_ValidClassNamePass_Epsilon {}'),
|
||||
array('namespace Psy\Test\CodeCleaner\ValidClassNamePass; class Zeta {}'),
|
||||
array("
|
||||
array('
|
||||
namespace { class Psy_Test_CodeCleaner_ValidClassNamePass_Eta {}; }
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_Eta {}
|
||||
}
|
||||
"),
|
||||
'),
|
||||
array('namespace Psy\Test\CodeCleaner\ValidClassNamePass { class stdClass {} }'),
|
||||
|
||||
// class instantiations
|
||||
array('new stdClass();'),
|
||||
array('new stdClass();'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Theta {}
|
||||
}
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
new Theta();
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Iota {}
|
||||
new Iota();
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidClassNamePass {
|
||||
class Kappa {}
|
||||
}
|
||||
namespace {
|
||||
new \\Psy\\Test\\CodeCleaner\\ValidClassNamePass\\Kappa();
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// Class constant fetch (ValidConstantPassTest validates the actual constant)
|
||||
array('class A {} A::FOO'),
|
||||
array('$a = new DateTime; $a::ATOM'),
|
||||
array('interface A { const B = 1; } A::B'),
|
||||
|
||||
// static call
|
||||
array('DateTime::createFromFormat()'),
|
||||
array('DateTime::$someMethod()'),
|
||||
array('Psy\Test\CodeCleaner\Fixtures\ClassWithStatic::doStuff()'),
|
||||
array('Psy\Test\CodeCleaner\Fixtures\ClassWithCallStatic::doStuff()'),
|
||||
|
||||
// Allow `self` and `static` as class names.
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new self();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new SELF();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new self;
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new static();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new Static();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function getInstance() {
|
||||
return new static;
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function foo() {
|
||||
return parent::bar();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function foo() {
|
||||
return self::bar();
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('
|
||||
class Psy_Test_CodeCleaner_ValidClassNamePass_ClassWithStatic {
|
||||
public static function foo() {
|
||||
return static::bar();
|
||||
}
|
||||
}
|
||||
'),
|
||||
|
||||
array('class A { static function b() { return new A; } }'),
|
||||
array('
|
||||
class A {
|
||||
const B = 123;
|
||||
function c() {
|
||||
return A::B;
|
||||
}
|
||||
}
|
||||
'),
|
||||
array('class A {} class B { function c() { return new A; } }'),
|
||||
);
|
||||
|
||||
// Ugh. There's gotta be a better way to test for this.
|
||||
if (class_exists('PhpParser\ParserFactory')) {
|
||||
// PHP 7.0 anonymous classes, only supported by PHP Parser v2.x
|
||||
$valid[] = array('$obj = new class() {}');
|
||||
}
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.5', '>=')) {
|
||||
$valid[] = array('interface A {} A::class');
|
||||
$valid[] = array('interface A {} A::CLASS');
|
||||
$valid[] = array('class A {} A::class');
|
||||
$valid[] = array('class A {} A::CLASS');
|
||||
$valid[] = array('A::class');
|
||||
$valid[] = array('A::CLASS');
|
||||
}
|
||||
|
||||
return $valid;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -59,6 +59,8 @@ class ValidConstantPassTest extends CodeCleanerTestCase
|
||||
array('NotAClass::FOO'),
|
||||
array('DateTime::ATOM'),
|
||||
array('$a = new DateTime; $a::ATOM'),
|
||||
array('DateTime::class'),
|
||||
array('$a = new DateTime; $a::class'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2014 Justin Hileman
|
||||
* (c) 2012-2015 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
@@ -36,26 +36,29 @@ class ValidFunctionNamePassTest extends CodeCleanerTestCase
|
||||
// function declarations
|
||||
array('function array_merge() {}'),
|
||||
array('function Array_Merge() {}'),
|
||||
array("
|
||||
array('
|
||||
function psy_test_codecleaner_validfunctionnamepass_alpha() {}
|
||||
function psy_test_codecleaner_validfunctionnamepass_alpha() {}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function beta() {}
|
||||
}
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function beta() {}
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// function calls
|
||||
array('psy_test_codecleaner_validfunctionnamepass_gamma()'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
delta();
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// recursion
|
||||
array('function a() { a(); } function a() {}'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -72,53 +75,56 @@ class ValidFunctionNamePassTest extends CodeCleanerTestCase
|
||||
{
|
||||
return array(
|
||||
array('function psy_test_codecleaner_validfunctionnamepass_epsilon() {}'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function zeta() {}
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace {
|
||||
function psy_test_codecleaner_validfunctionnamepass_eta() {}
|
||||
}
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function psy_test_codecleaner_validfunctionnamepass_eta() {}
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function psy_test_codecleaner_validfunctionnamepass_eta() {}
|
||||
}
|
||||
namespace {
|
||||
function psy_test_codecleaner_validfunctionnamepass_eta() {}
|
||||
}
|
||||
"),
|
||||
array("
|
||||
'),
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function array_merge() {}
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// function calls
|
||||
array('array_merge();'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function theta() {}
|
||||
}
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
theta();
|
||||
}
|
||||
"),
|
||||
'),
|
||||
// closures
|
||||
array('$test = function(){};$test()'),
|
||||
array("
|
||||
array('
|
||||
namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
|
||||
function theta() {}
|
||||
}
|
||||
namespace {
|
||||
Psy\\Test\\CodeCleaner\\ValidFunctionNamePass\\theta();
|
||||
}
|
||||
"),
|
||||
'),
|
||||
|
||||
// recursion
|
||||
array('function a() { a(); }'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user