Chris@0: setPass(new ValidFunctionNamePass()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider getInvalidFunctions Chris@0: * @expectedException \Psy\Exception\FatalErrorException Chris@0: */ Chris@0: public function testProcessInvalidFunctionCallsAndDeclarations($code) Chris@0: { Chris@0: $stmts = $this->parse($code); Chris@0: $this->traverse($stmts); Chris@0: } Chris@0: Chris@0: public function getInvalidFunctions() Chris@0: { Chris@0: return array( Chris@0: // function declarations Chris@0: array('function array_merge() {}'), Chris@0: array('function Array_Merge() {}'), Chris@0: array(' Chris@0: function psy_test_codecleaner_validfunctionnamepass_alpha() {} Chris@0: function psy_test_codecleaner_validfunctionnamepass_alpha() {} Chris@0: '), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function beta() {} Chris@0: } Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function beta() {} Chris@0: } Chris@0: '), Chris@0: Chris@0: // function calls Chris@0: array('psy_test_codecleaner_validfunctionnamepass_gamma()'), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: delta(); Chris@0: } Chris@0: '), Chris@0: Chris@0: // recursion Chris@0: array('function a() { a(); } function a() {}'), Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider getValidFunctions Chris@0: */ Chris@0: public function testProcessValidFunctionCallsAndDeclarations($code) Chris@0: { Chris@0: $stmts = $this->parse($code); Chris@0: $this->traverse($stmts); Chris@12: Chris@12: // @todo a better thing to assert here? Chris@12: $this->assertTrue(true); Chris@0: } Chris@0: Chris@0: public function getValidFunctions() Chris@0: { Chris@0: return array( Chris@0: array('function psy_test_codecleaner_validfunctionnamepass_epsilon() {}'), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function zeta() {} Chris@0: } Chris@0: '), Chris@0: array(' Chris@0: namespace { Chris@0: function psy_test_codecleaner_validfunctionnamepass_eta() {} Chris@0: } Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function psy_test_codecleaner_validfunctionnamepass_eta() {} Chris@0: } Chris@0: '), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function psy_test_codecleaner_validfunctionnamepass_eta() {} Chris@0: } Chris@0: namespace { Chris@0: function psy_test_codecleaner_validfunctionnamepass_eta() {} Chris@0: } Chris@0: '), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function array_merge() {} Chris@0: } Chris@0: '), Chris@0: Chris@0: // function calls Chris@0: array('array_merge();'), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function theta() {} Chris@0: } Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: theta(); Chris@0: } Chris@0: '), Chris@0: // closures Chris@0: array('$test = function(){};$test()'), Chris@0: array(' Chris@0: namespace Psy\\Test\\CodeCleaner\\ValidFunctionNamePass { Chris@0: function theta() {} Chris@0: } Chris@0: namespace { Chris@0: Psy\\Test\\CodeCleaner\\ValidFunctionNamePass\\theta(); Chris@0: } Chris@0: '), Chris@0: Chris@0: // recursion Chris@0: array('function a() { a(); }'), Chris@0: Chris@0: // conditionally defined functions Chris@0: array(' Chris@0: function a() {} Chris@0: if (false) { Chris@0: function a() {} Chris@0: } Chris@0: '), Chris@0: array(' Chris@0: function a() {} Chris@0: if (true) { Chris@0: function a() {} Chris@0: } else if (false) { Chris@0: function a() {} Chris@0: } else { Chris@0: function a() {} Chris@0: } Chris@0: '), Chris@0: // ewww Chris@0: array(' Chris@0: function a() {} Chris@0: if (true): Chris@0: function a() {} Chris@0: elseif (false): Chris@0: function a() {} Chris@0: else: Chris@0: function a() {} Chris@0: endif; Chris@0: '), Chris@0: array(' Chris@0: function a() {} Chris@0: while (false) { function a() {} } Chris@0: '), Chris@0: array(' Chris@0: function a() {} Chris@0: do { function a() {} } while (false); Chris@0: '), Chris@0: array(' Chris@0: function a() {} Chris@0: switch (1) { Chris@0: case 0: Chris@0: function a() {} Chris@0: break; Chris@0: case 1: Chris@0: function a() {} Chris@0: break; Chris@0: case 2: Chris@0: function a() {} Chris@0: break; Chris@0: } Chris@0: '), Chris@0: ); Chris@0: } Chris@0: }