Chris@13: setPass(new PassableByReferencePass()); Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidStatements Chris@13: * @expectedException \Psy\Exception\FatalErrorException Chris@13: */ Chris@13: public function testProcessStatementFails($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: public function invalidStatements() Chris@13: { Chris@13: return [ Chris@13: ['array_pop(array())'], Chris@13: ['array_pop(array($foo))'], Chris@13: ['array_shift(array())'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validStatements Chris@13: */ Chris@13: public function testProcessStatementPasses($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: $this->assertTrue(true); Chris@13: } Chris@13: Chris@13: public function validStatements() Chris@13: { Chris@13: return [ Chris@13: ['array_pop(json_decode("[]"))'], Chris@13: ['array_pop($foo)'], Chris@13: ['array_pop($foo->bar)'], Chris@13: ['array_pop($foo::baz)'], Chris@13: ['array_pop(Foo::qux)'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validArrayMultisort Chris@13: */ Chris@13: public function testArrayMultisort($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: $this->assertTrue(true); Chris@13: } Chris@13: Chris@13: public function validArrayMultisort() Chris@13: { Chris@13: return [ Chris@13: ['array_multisort($a)'], Chris@13: ['array_multisort($a, $b)'], Chris@13: ['array_multisort($a, SORT_NATURAL, $b)'], Chris@13: ['array_multisort($a, SORT_NATURAL | SORT_FLAG_CASE, $b)'], Chris@13: ['array_multisort($a, SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE, $b)'], Chris@13: ['array_multisort($a, SORT_NATURAL | SORT_FLAG_CASE, SORT_ASC, $b)'], Chris@13: ['array_multisort($a, $b, SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE)'], Chris@13: ['array_multisort($a, SORT_NATURAL | SORT_FLAG_CASE, $b, SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE)'], Chris@13: ['array_multisort($a, 1, $b)'], Chris@13: ['array_multisort($a, 1 + 2, $b)'], Chris@13: ['array_multisort($a, getMultisortFlags(), $b)'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidArrayMultisort Chris@13: * @expectedException \Psy\Exception\FatalErrorException Chris@13: */ Chris@13: public function testInvalidArrayMultisort($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: public function invalidArrayMultisort() Chris@13: { Chris@13: return [ Chris@13: ['array_multisort(1)'], Chris@13: ['array_multisort(array(1, 2, 3))'], Chris@13: ['array_multisort($a, SORT_NATURAL, SORT_ASC, SORT_NATURAL, $b)'], Chris@13: ]; Chris@13: } Chris@13: }