2018-04-17 23:58:51 +05:30
|
|
|
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
namespace Ely\CS\Test\Fixer\Whitespace;
|
|
|
|
|
|
|
|
use Ely\CS\Fixer\Whitespace\BlankLineBeforeReturnFixer;
|
2022-09-20 05:07:57 +05:30
|
|
|
use PhpCsFixer\AbstractFixer;
|
2018-04-17 23:58:51 +05:30
|
|
|
use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
|
|
|
|
use PhpCsFixer\WhitespacesFixerConfig;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Original file copied from:
|
|
|
|
* @url https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/5c5de791ab/tests/Fixer/Whitespace/BlankLineBeforeStatementFixerTest.php
|
|
|
|
*
|
|
|
|
* @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
|
|
|
|
* @author Andreas Möller <am@localheinz.com>
|
|
|
|
* @author SpacePossum
|
|
|
|
*
|
|
|
|
* @internal
|
|
|
|
*
|
|
|
|
* @property BlankLineBeforeReturnFixer $fixer
|
|
|
|
*
|
|
|
|
* @covers \Ely\CS\Fixer\Whitespace\BlankLineBeforeReturnFixer
|
|
|
|
*/
|
|
|
|
final class BlankLineBeforeReturnFixerTest extends AbstractFixerTestCase {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider provideFixCases
|
|
|
|
*/
|
2022-09-20 05:07:57 +05:30
|
|
|
public function testFix(string $expected, ?string $input = null): void {
|
2018-04-17 23:58:51 +05:30
|
|
|
$this->doTest($expected, $input);
|
|
|
|
}
|
|
|
|
|
2022-09-20 05:07:57 +05:30
|
|
|
public function provideFixCases(): iterable {
|
|
|
|
yield [
|
2019-02-23 04:35:20 +05:30
|
|
|
'$a = $a;
|
2018-04-17 23:58:51 +05:30
|
|
|
return $a;
|
|
|
|
',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
$a = $a;
|
|
|
|
|
|
|
|
return $a;',
|
|
|
|
'<?php
|
|
|
|
$a = $a; return $a;',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
$b = $b;
|
|
|
|
|
|
|
|
return $b;',
|
|
|
|
'<?php
|
|
|
|
$b = $b;return $b;',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
$c = $c;
|
|
|
|
|
|
|
|
return $c;',
|
|
|
|
'<?php
|
|
|
|
$c = $c;
|
|
|
|
return $c;',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
$d = $d;
|
|
|
|
|
|
|
|
return $d;',
|
|
|
|
'<?php
|
|
|
|
$d = $d;
|
|
|
|
return $d;',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true) {
|
|
|
|
return 1;
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true)
|
|
|
|
return 1;
|
|
|
|
',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true) {
|
|
|
|
return 1;
|
|
|
|
} else {
|
|
|
|
return 2;
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true)
|
|
|
|
return 1;
|
|
|
|
else
|
|
|
|
return 2;
|
|
|
|
',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true) {
|
|
|
|
return 1;
|
|
|
|
} elseif (false) {
|
|
|
|
return 2;
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
if (true)
|
|
|
|
return 1;
|
|
|
|
elseif (false)
|
|
|
|
return 2;
|
|
|
|
',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
throw new Exception("return true;");',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo()
|
|
|
|
{
|
|
|
|
// comment
|
|
|
|
return "foo";
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo()
|
|
|
|
{
|
|
|
|
// comment
|
|
|
|
|
|
|
|
return "bar";
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo()
|
|
|
|
{
|
|
|
|
// comment
|
|
|
|
return "bar";
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo() {
|
|
|
|
$a = "a";
|
|
|
|
$b = "b";
|
|
|
|
|
|
|
|
return $a . $b;
|
|
|
|
}',
|
|
|
|
'<?php
|
|
|
|
function foo() {
|
|
|
|
$a = "a";
|
|
|
|
$b = "b";
|
|
|
|
return $a . $b;
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo() {
|
|
|
|
$b = "b";
|
|
|
|
return $a . $b;
|
|
|
|
}',
|
|
|
|
];
|
2022-09-20 05:07:57 +05:30
|
|
|
yield [
|
2018-04-17 23:58:51 +05:30
|
|
|
'<?php
|
|
|
|
function foo() {
|
|
|
|
$a = "a";
|
|
|
|
|
|
|
|
return $a . "hello";
|
|
|
|
}
|
|
|
|
|
|
|
|
function bar() {
|
|
|
|
$b = "b";
|
|
|
|
return $b . "hello";
|
|
|
|
}
|
|
|
|
',
|
|
|
|
];
|
2023-03-22 23:12:23 +05:30
|
|
|
yield [
|
|
|
|
'<?php
|
|
|
|
if ($condition) {
|
|
|
|
$a = "Interpolation {$var}.";
|
|
|
|
return true;
|
|
|
|
}',
|
|
|
|
];
|
|
|
|
yield [
|
|
|
|
'<?php
|
|
|
|
if ($condition) {
|
|
|
|
$a = "Deprecated interpolation ${var}.";
|
|
|
|
return true;
|
|
|
|
}',
|
|
|
|
];
|
2018-04-17 23:58:51 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider provideMessyWhitespacesCases
|
|
|
|
*/
|
2022-09-20 05:07:57 +05:30
|
|
|
public function testMessyWhitespaces(string $expected, ?string $input = null): void {
|
2018-04-17 23:58:51 +05:30
|
|
|
$this->fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
|
|
|
|
|
|
|
|
$this->doTest($expected, $input);
|
|
|
|
}
|
|
|
|
|
2022-09-20 05:07:57 +05:30
|
|
|
public function provideMessyWhitespacesCases(): iterable {
|
|
|
|
yield [
|
|
|
|
"<?php\r\n\$a = \$a;\r\n\r\nreturn \$a;",
|
|
|
|
"<?php\r\n\$a = \$a; return \$a;",
|
|
|
|
];
|
|
|
|
yield [
|
|
|
|
"<?php\r\n\$b = \$b;\r\n\r\nreturn \$b;",
|
|
|
|
"<?php\r\n\$b = \$b;return \$b;",
|
|
|
|
];
|
|
|
|
yield [
|
|
|
|
"<?php\r\n\$c = \$c;\r\n\r\nreturn \$c;",
|
|
|
|
"<?php\r\n\$c = \$c;\r\nreturn \$c;",
|
2018-04-17 23:58:51 +05:30
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2022-09-20 05:07:57 +05:30
|
|
|
protected function createFixer(): AbstractFixer {
|
2018-04-17 23:58:51 +05:30
|
|
|
return new BlankLineBeforeReturnFixer();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|