X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fpsy%2Fpsysh%2Ftest%2FCodeCleaner%2FUseStatementPassTest.php;h=aedfd499d2a811b05977ce4d98d80d6de25a0b70;hp=a54dae238f30df94341ffdbff006daea261d89ce;hb=419f97be044f1aebd0713921ee604841127e9e84;hpb=052617e40b525f8b817d84c29b1c04951f427069 diff --git a/vendor/psy/psysh/test/CodeCleaner/UseStatementPassTest.php b/vendor/psy/psysh/test/CodeCleaner/UseStatementPassTest.php index a54dae238..aedfd499d 100644 --- a/vendor/psy/psysh/test/CodeCleaner/UseStatementPassTest.php +++ b/vendor/psy/psysh/test/CodeCleaner/UseStatementPassTest.php @@ -55,6 +55,48 @@ class UseStatementPassTest extends CodeCleanerTestCase "namespace Foo;\nuse Bar;\n\$baz = new Bar\\Baz();", "namespace Foo;\n\n\$baz = new \\Bar\\Baz();", ], + [ + "namespace Foo;\n\nuse \\StdClass as S;\n\$std = new S();\nnamespace Foo;\n\n\$std = new S();", + "namespace Foo;\n\n\$std = new \\StdClass();\nnamespace Foo;\n\n\$std = new \\StdClass();", + ], + [ + "namespace Foo;\n\nuse \\StdClass as S;\n\$std = new S();\nnamespace Bar;\n\n\$std = new S();", + "namespace Foo;\n\n\$std = new \\StdClass();\nnamespace Bar;\n\n\$std = new S();", + ], + [ + "use Foo\\Bar as fb, Qux as Q;\n\$baz = new fb\\Baz();\n\$qux = new Q();", + "\$baz = new \\Foo\\Bar\\Baz();\n\$qux = new \\Qux();", + ], + ]; + } + + /** + * @dataProvider groupUseStatements + */ + public function testGroupUseProcess($from, $to) + { + $this->assertProcessesAs($from, $to); + } + + public function groupUseStatements() + { + if (version_compare(PHP_VERSION, '7.0', '<')) { + $this->markTestSkipped(); + } + + return [ + [ + "use Foo\\{Bar, Baz, Qux as Q};\n\$bar = new Bar();\n\$baz = new Baz();\n\$qux = new Q();", + "\$bar = new \\Foo\\Bar();\n\$baz = new \\Foo\\Baz();\n\$qux = new \\Foo\\Qux();", + ], + [ + "use X\\{Foo, Bar as B};\n\$foo = new Foo();\n\$baz = new B\\Baz();", + "\$foo = new \\X\\Foo();\n\$baz = new \\X\\Bar\\Baz();", + ], + [ + "use X\\{Foo, Bar as B};\n\$foo = new Foo();\n\$bar = new Bar();\n\$baz = new B\\Baz();", + "\$foo = new \\X\\Foo();\n\$bar = new Bar();\n\$baz = new \\X\\Bar\\Baz();", + ], ]; } }