X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fpsy%2Fpsysh%2Ftest%2FCodeCleanerTest.php;fp=vendor%2Fpsy%2Fpsysh%2Ftest%2FCodeCleanerTest.php;h=e00b0678e2ab45e36e2537e02229035666d9fa33;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=0000000000000000000000000000000000000000;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/vendor/psy/psysh/test/CodeCleanerTest.php b/vendor/psy/psysh/test/CodeCleanerTest.php new file mode 100644 index 000000000..e00b0678e --- /dev/null +++ b/vendor/psy/psysh/test/CodeCleanerTest.php @@ -0,0 +1,129 @@ +assertSame($expected, $cc->clean($lines, $requireSemicolons)); + } + + public function semicolonCodeProvider() + { + return [ + [['true'], false, 'return true;'], + [['true;'], false, 'return true;'], + [['true;'], true, 'return true;'], + [['true'], true, false], + + [['echo "foo";', 'true'], true, false], + + [['echo "foo";', 'true'], false, "echo \"foo\";\nreturn true;"], + ]; + } + + /** + * @dataProvider unclosedStatementsProvider + */ + public function testUnclosedStatements(array $lines, $isUnclosed) + { + $cc = new CodeCleaner(); + $res = $cc->clean($lines); + + if ($isUnclosed) { + $this->assertFalse($res); + } else { + $this->assertNotFalse($res); + } + } + + public function unclosedStatementsProvider() + { + return [ + [['echo "'], true], + [['echo \''], true], + [['if (1) {'], true], + + [['echo ""'], false], + [["echo ''"], false], + [['if (1) {}'], false], + + [['// closed comment'], false], + [['function foo() { /**'], true], + + [['var_dump(1, 2,'], true], + [['var_dump(1, 2,', '3)'], false], + ]; + } + + /** + * @dataProvider moreUnclosedStatementsProvider + */ + public function testMoreUnclosedStatements(array $lines) + { + if (defined('HHVM_VERSION')) { + $this->markTestSkipped('HHVM not supported.'); + } + + $cc = new CodeCleaner(); + $res = $cc->clean($lines); + + $this->assertFalse($res); + } + + public function moreUnclosedStatementsProvider() + { + return [ + [["\$content = <<clean([$code]); + } + + public function invalidStatementsProvider() + { + // n.b. We used to check that `var_dump(1,2,)` failed, but PHP Parser + // 4.x backported trailing comma function calls from PHP 7.3 for free! + // so we're not going to spend too much time worrying about it :) + + return [ + ['function "what'], + ["function 'what"], + ['echo }'], + ['echo {'], + ['if (1) }'], + ['echo """'], + ["echo '''"], + ['$foo "bar'], + ['$foo \'bar'], + ]; + } +}