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