123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?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\ValidFunctionNamePass;
- class ValidFunctionNamePassTest extends CodeCleanerTestCase
- {
- public function setUp()
- {
- $this->setPass(new ValidFunctionNamePass());
- }
- /**
- * @dataProvider getInvalidFunctions
- * @expectedException \Psy\Exception\FatalErrorException
- */
- public function testProcessInvalidFunctionCallsAndDeclarations($code)
- {
- $stmts = $this->parse($code);
- $this->traverse($stmts);
- }
- public function getInvalidFunctions()
- {
- return array(
- // function declarations
- array('function array_merge() {}'),
- array('function Array_Merge() {}'),
- array('
- function psy_test_codecleaner_validfunctionnamepass_alpha() {}
- function psy_test_codecleaner_validfunctionnamepass_alpha() {}
- '),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function beta() {}
- }
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function beta() {}
- }
- '),
- // function calls
- array('psy_test_codecleaner_validfunctionnamepass_gamma()'),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- delta();
- }
- '),
- // recursion
- array('function a() { a(); } function a() {}'),
- );
- }
- /**
- * @dataProvider getValidFunctions
- */
- public function testProcessValidFunctionCallsAndDeclarations($code)
- {
- $stmts = $this->parse($code);
- $this->traverse($stmts);
- }
- public function getValidFunctions()
- {
- return array(
- array('function psy_test_codecleaner_validfunctionnamepass_epsilon() {}'),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function zeta() {}
- }
- '),
- array('
- namespace {
- function psy_test_codecleaner_validfunctionnamepass_eta() {}
- }
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function psy_test_codecleaner_validfunctionnamepass_eta() {}
- }
- '),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function psy_test_codecleaner_validfunctionnamepass_eta() {}
- }
- namespace {
- function psy_test_codecleaner_validfunctionnamepass_eta() {}
- }
- '),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function array_merge() {}
- }
- '),
- // function calls
- array('array_merge();'),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function theta() {}
- }
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- theta();
- }
- '),
- // closures
- array('$test = function(){};$test()'),
- array('
- namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass {
- function theta() {}
- }
- namespace {
- Psy\\Test\\CodeCleaner\\ValidFunctionNamePass\\theta();
- }
- '),
- // recursion
- array('function a() { a(); }'),
- );
- }
- }
|