$method($parser5->parse($code))); } catch (Error $e) { $output5 = null; $this->assertEquals('php7', $mode); } try { $output7 = canonicalize($prettyPrinter->$method($parser7->parse($code))); } catch (Error $e) { $output7 = null; $this->assertEquals('php5', $mode); } if ('php5' === $mode) { $this->assertSame($expected, $output5, $name); $this->assertNotSame($expected, $output7, $name); } else if ('php7' === $mode) { $this->assertSame($expected, $output7, $name); $this->assertNotSame($expected, $output5, $name); } else { $this->assertSame($expected, $output5, $name); $this->assertSame($expected, $output7, $name); } } /** * @dataProvider provideTestPrettyPrint * @covers PhpParser\PrettyPrinter\Standard */ public function testPrettyPrint($name, $code, $expected, $mode) { $this->doTestPrettyPrintMethod('prettyPrint', $name, $code, $expected, $mode); } /** * @dataProvider provideTestPrettyPrintFile * @covers PhpParser\PrettyPrinter\Standard */ public function testPrettyPrintFile($name, $code, $expected, $mode) { $this->doTestPrettyPrintMethod('prettyPrintFile', $name, $code, $expected, $mode); } public function provideTestPrettyPrint() { return $this->getTests(__DIR__ . '/../code/prettyPrinter', 'test'); } public function provideTestPrettyPrintFile() { return $this->getTests(__DIR__ . '/../code/prettyPrinter', 'file-test'); } public function testPrettyPrintExpr() { $prettyPrinter = new Standard; $expr = new Expr\BinaryOp\Mul( new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b')), new Expr\Variable('c') ); $this->assertEquals('($a + $b) * $c', $prettyPrinter->prettyPrintExpr($expr)); $expr = new Expr\Closure(array( 'stmts' => array(new Stmt\Return_(new String_("a\nb"))) )); $this->assertEquals("function () {\n return 'a\nb';\n}", $prettyPrinter->prettyPrintExpr($expr)); } }