mirror of
https://github.com/elyby/php-code-style.git
synced 2025-05-31 14:12:05 +05:30
First implementation
This commit is contained in:
319
tests/Fixer/Operator/NewWithBracesFixerTest.php
Normal file
319
tests/Fixer/Operator/NewWithBracesFixerTest.php
Normal file
@@ -0,0 +1,319 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Ely\CS\Test\Fixer\Operator;
|
||||
|
||||
use Ely\CS\Fixer\Operator\NewWithBracesFixer;
|
||||
use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
|
||||
|
||||
/**
|
||||
* Original file copied from:
|
||||
* @url https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/5c5de791ab/tests/Fixer/Operator/NewWithBracesFixerTest.php
|
||||
*
|
||||
* @covers \Ely\CS\Fixer\Operator\NewWithBracesFixer
|
||||
*/
|
||||
class NewWithBracesFixerTest extends AbstractFixerTestCase {
|
||||
|
||||
private static $removeForAnonymousClasses = ['remove_for_anonymous_classes' => true];
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
*
|
||||
* @dataProvider provideFixCases
|
||||
*/
|
||||
public function testFix($expected, $input = null) {
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
*
|
||||
* @dataProvider provideFix70Cases
|
||||
* @requires PHP 7.0
|
||||
*/
|
||||
public function testFix70($expected, $input = null, array $configuration = null) {
|
||||
if ($configuration !== null) {
|
||||
$this->fixer->configure($configuration);
|
||||
}
|
||||
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideFixCases() {
|
||||
return [
|
||||
[
|
||||
'<?php class A { public function B(){ $static = new static(new \SplFileInfo(__FILE__)); }}',
|
||||
],
|
||||
[
|
||||
'<?php $static = new self(new \SplFileInfo(__FILE__));',
|
||||
],
|
||||
[
|
||||
'<?php $x = new X/**/ /**/ /**//**//**/ /**//**/ (/**/ /**/ /**//**//**/ /**//**/)/**/ /**/ /**//**//**/ /**//**/;/**/ /**/ /**//**//**/ /**//**/',
|
||||
],
|
||||
[
|
||||
'<?php $x = new X();',
|
||||
'<?php $x = new X;',
|
||||
],
|
||||
[
|
||||
'<?php $y = new Y() ;',
|
||||
'<?php $y = new Y ;',
|
||||
],
|
||||
[
|
||||
'<?php $x = new Z() /**/;//',
|
||||
'<?php $x = new Z /**/;//',
|
||||
],
|
||||
[
|
||||
'<?php $foo = new $foo();',
|
||||
'<?php $foo = new $foo;',
|
||||
],
|
||||
[
|
||||
'<?php $xyz = new X(new Y(new Z()));',
|
||||
'<?php $xyz = new X(new Y(new Z));',
|
||||
],
|
||||
[
|
||||
'<?php $foo = (new $bar())->foo;',
|
||||
'<?php $foo = (new $bar)->foo;',
|
||||
],
|
||||
[
|
||||
'<?php $foo = (new $bar((new Foo())->bar))->foo;',
|
||||
'<?php $foo = (new $bar((new Foo)->bar))->foo;',
|
||||
],
|
||||
[
|
||||
'<?php $self = new self();',
|
||||
'<?php $self = new self;',
|
||||
],
|
||||
[
|
||||
'<?php $static = new static();',
|
||||
'<?php $static = new static;',
|
||||
],
|
||||
[
|
||||
'<?php $a = array( "key" => new DateTime(), );',
|
||||
'<?php $a = array( "key" => new DateTime, );',
|
||||
],
|
||||
[
|
||||
'<?php $a = array( "key" => new DateTime() );',
|
||||
'<?php $a = array( "key" => new DateTime );',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[$c]();',
|
||||
'<?php $a = new $b[$c];',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[$c[$d ? foo() : bar("bar[...]") - 1]]();',
|
||||
'<?php $a = new $b[$c[$d ? foo() : bar("bar[...]") - 1]];',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[\'class\']();',
|
||||
'<?php $a = new $b[\'class\'];',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[\'class\'] ($foo[\'bar\']);',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[\'class\'] () ;',
|
||||
],
|
||||
[
|
||||
'<?php $a = new $b[$c] ($hello[$world]) ;',
|
||||
],
|
||||
[
|
||||
"<?php \$a = new \$b['class']()\r\n\t ;",
|
||||
"<?php \$a = new \$b['class']\r\n\t ;",
|
||||
],
|
||||
[
|
||||
'<?php $a = $b ? new DateTime() : $b;',
|
||||
'<?php $a = $b ? new DateTime : $b;',
|
||||
],
|
||||
[
|
||||
'<?php new self::$adapters[$name]["adapter"]();',
|
||||
'<?php new self::$adapters[$name]["adapter"];',
|
||||
],
|
||||
[
|
||||
'<?php $a = new \Exception()?> <?php echo 1;',
|
||||
'<?php $a = new \Exception?> <?php echo 1;',
|
||||
],
|
||||
[
|
||||
'<?php $b = new \StdClass() /**/?>',
|
||||
'<?php $b = new \StdClass /**/?>',
|
||||
],
|
||||
[
|
||||
'<?php $a = new Foo() instanceof Foo;',
|
||||
'<?php $a = new Foo instanceof Foo;',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new Foo() + 1;
|
||||
$a = new Foo() - 1;
|
||||
$a = new Foo() * 1;
|
||||
$a = new Foo() / 1;
|
||||
$a = new Foo() % 1;
|
||||
',
|
||||
'<?php
|
||||
$a = new Foo + 1;
|
||||
$a = new Foo - 1;
|
||||
$a = new Foo * 1;
|
||||
$a = new Foo / 1;
|
||||
$a = new Foo % 1;
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new Foo() & 1;
|
||||
$a = new Foo() | 1;
|
||||
$a = new Foo() ^ 1;
|
||||
$a = new Foo() << 1;
|
||||
$a = new Foo() >> 1;
|
||||
',
|
||||
'<?php
|
||||
$a = new Foo & 1;
|
||||
$a = new Foo | 1;
|
||||
$a = new Foo ^ 1;
|
||||
$a = new Foo << 1;
|
||||
$a = new Foo >> 1;
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new Foo() and 1;
|
||||
$a = new Foo() or 1;
|
||||
$a = new Foo() xor 1;
|
||||
$a = new Foo() && 1;
|
||||
$a = new Foo() || 1;
|
||||
',
|
||||
'<?php
|
||||
$a = new Foo and 1;
|
||||
$a = new Foo or 1;
|
||||
$a = new Foo xor 1;
|
||||
$a = new Foo && 1;
|
||||
$a = new Foo || 1;
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
if (new DateTime() > $this->startDate) {}
|
||||
if (new DateTime() >= $this->startDate) {}
|
||||
if (new DateTime() < $this->startDate) {}
|
||||
if (new DateTime() <= $this->startDate) {}
|
||||
if (new DateTime() == $this->startDate) {}
|
||||
if (new DateTime() != $this->startDate) {}
|
||||
if (new DateTime() <> $this->startDate) {}
|
||||
if (new DateTime() === $this->startDate) {}
|
||||
if (new DateTime() !== $this->startDate) {}
|
||||
',
|
||||
'<?php
|
||||
if (new DateTime > $this->startDate) {}
|
||||
if (new DateTime >= $this->startDate) {}
|
||||
if (new DateTime < $this->startDate) {}
|
||||
if (new DateTime <= $this->startDate) {}
|
||||
if (new DateTime == $this->startDate) {}
|
||||
if (new DateTime != $this->startDate) {}
|
||||
if (new DateTime <> $this->startDate) {}
|
||||
if (new DateTime === $this->startDate) {}
|
||||
if (new DateTime !== $this->startDate) {}
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php $a = new \stdClass() ? $b : $c;',
|
||||
'<?php $a = new \stdClass ? $b : $c;',
|
||||
],
|
||||
[
|
||||
'<?php foreach (new Collection() as $x) {}',
|
||||
'<?php foreach (new Collection as $x) {}',
|
||||
],
|
||||
[
|
||||
'<?php $a = [(string) new Foo() => 1];',
|
||||
'<?php $a = [(string) new Foo => 1];',
|
||||
],
|
||||
[
|
||||
'<?php $a = [ "key" => new DateTime(), ];',
|
||||
'<?php $a = [ "key" => new DateTime, ];',
|
||||
],
|
||||
[
|
||||
'<?php $a = [ "key" => new DateTime() ];',
|
||||
'<?php $a = [ "key" => new DateTime ];',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new Foo() ** 1;
|
||||
',
|
||||
'<?php
|
||||
$a = new Foo ** 1;
|
||||
',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function provideFix70Cases() {
|
||||
return [
|
||||
[
|
||||
'<?php
|
||||
$a = new Foo() <=> 1;
|
||||
',
|
||||
'<?php
|
||||
$a = new Foo <=> 1;
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new class() {use SomeTrait;};
|
||||
$a = new class() implements Foo{};
|
||||
$a = new class() /**/ extends Bar1{};
|
||||
$a = new class() extends Bar2 implements Foo{};
|
||||
$a = new class() extends Bar3 implements Foo, Foo2{};
|
||||
$a = new class() {}?>
|
||||
',
|
||||
'<?php
|
||||
$a = new class {use SomeTrait;};
|
||||
$a = new class implements Foo{};
|
||||
$a = new class /**/ extends Bar1{};
|
||||
$a = new class extends Bar2 implements Foo{};
|
||||
$a = new class extends Bar3 implements Foo, Foo2{};
|
||||
$a = new class {}?>
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
class A {
|
||||
public function B() {
|
||||
$static = new static(new class(){});
|
||||
}
|
||||
}
|
||||
',
|
||||
'<?php
|
||||
class A {
|
||||
public function B() {
|
||||
$static = new static(new class{});
|
||||
}
|
||||
}
|
||||
',
|
||||
],
|
||||
[
|
||||
'<?php
|
||||
$a = new class {use SomeTrait;};
|
||||
$a = new class implements Foo{};
|
||||
$a = new class /**/ extends Bar1{};
|
||||
$a = new class extends Bar2 implements Foo{};
|
||||
$a = new class extends Bar3 implements Foo, Foo2{};
|
||||
$a = new class {};
|
||||
$a = new class {};
|
||||
',
|
||||
'<?php
|
||||
$a = new class() {use SomeTrait;};
|
||||
$a = new class() implements Foo{};
|
||||
$a = new class() /**/ extends Bar1{};
|
||||
$a = new class() extends Bar2 implements Foo{};
|
||||
$a = new class() extends Bar3 implements Foo, Foo2{};
|
||||
$a = new class() {};
|
||||
$a = new class( ) {};
|
||||
',
|
||||
self::$removeForAnonymousClasses,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
protected function createFixer() {
|
||||
return new NewWithBracesFixer();
|
||||
}
|
||||
|
||||
}
|
364
tests/Fixer/Whitespace/BlankLineAroundClassBodyFixerTest.php
Normal file
364
tests/Fixer/Whitespace/BlankLineAroundClassBodyFixerTest.php
Normal file
@@ -0,0 +1,364 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Ely\CS\Test\Fixer\Whitespace;
|
||||
|
||||
use Ely\CS\Fixer\Whitespace\BlankLineAroundClassBodyFixer;
|
||||
use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
|
||||
use PhpCsFixer\WhitespacesFixerConfig;
|
||||
|
||||
/**
|
||||
* @author ErickSkrauch <erickskrauch@ely.by>
|
||||
*
|
||||
* @covers \Ely\CS\Fixer\Whitespace\BlankLineAroundClassBodyFixer
|
||||
*/
|
||||
final class BlankLineAroundClassBodyFixerTest extends AbstractFixerTestCase {
|
||||
|
||||
private static $configurationDoNotApplyForAnonymousClasses = ['apply_to_anonymous_classes' => false];
|
||||
|
||||
private static $configurationTwoEmptyLines = ['blank_lines_count' => 2];
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
* @param null|array $configuration
|
||||
*
|
||||
* @dataProvider provideFixCases
|
||||
*/
|
||||
public function testFix($expected, $input = null, array $configuration = null) {
|
||||
if (null !== $configuration) {
|
||||
$this->fixer->configure($configuration);
|
||||
}
|
||||
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
* @param array $configuration
|
||||
*
|
||||
* @dataProvider provideAnonymousClassesCases
|
||||
* @requires PHP 7.0
|
||||
*/
|
||||
public function testFixAnonymousClasses($expected, $input = null, array $configuration = null) {
|
||||
if (null !== $configuration) {
|
||||
$this->fixer->configure($configuration);
|
||||
}
|
||||
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideFixCases() {
|
||||
$cases = [];
|
||||
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
|
||||
/**
|
||||
* Also blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
/**
|
||||
* Also blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
|
||||
/**
|
||||
* Too many whitespaces
|
||||
*/
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Too many whitespaces
|
||||
*/
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
|
||||
|
||||
}',
|
||||
];
|
||||
|
||||
$cases[] = [
|
||||
'<?php
|
||||
interface Good
|
||||
{
|
||||
|
||||
/**
|
||||
* Also blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod();
|
||||
|
||||
}',
|
||||
'<?php
|
||||
interface Good
|
||||
{
|
||||
/**
|
||||
* Also blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod();
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
trait Good
|
||||
{
|
||||
|
||||
/**
|
||||
* Also no blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod() {}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
trait Good
|
||||
{
|
||||
/**
|
||||
* Also no blank line before DocBlock
|
||||
*/
|
||||
public function firstMethod() {}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo\bar;
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo\bar;
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo\bar;
|
||||
use Foo\baz;
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo\bar;
|
||||
use Foo\baz;
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo, Bar {
|
||||
Bar::smallTalk insteadof A;
|
||||
Foo::bigTalk insteadof B;
|
||||
}
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
use Foo, Bar {
|
||||
Bar::smallTalk insteadof A;
|
||||
Foo::bigTalk insteadof B;
|
||||
}
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
|
||||
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
|
||||
}',
|
||||
'<?php
|
||||
class Good
|
||||
{
|
||||
public function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
}',
|
||||
self::$configurationTwoEmptyLines,
|
||||
];
|
||||
|
||||
// check if some fancy whitespaces aren't modified
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Good
|
||||
{public
|
||||
|
||||
|
||||
|
||||
function firstMethod()
|
||||
{
|
||||
//code here
|
||||
}
|
||||
|
||||
}',
|
||||
];
|
||||
|
||||
return $cases;
|
||||
}
|
||||
|
||||
public function provideAnonymousClassesCases() {
|
||||
$cases = [];
|
||||
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$class = new class extends \Foo {
|
||||
|
||||
public $field;
|
||||
|
||||
public function firstMethod() {}
|
||||
|
||||
};',
|
||||
'<?php
|
||||
$class = new class extends \Foo {
|
||||
public $field;
|
||||
|
||||
public function firstMethod() {}
|
||||
};',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$class = new class extends \Foo {
|
||||
public $field;
|
||||
|
||||
public function firstMethod() {}
|
||||
};',
|
||||
'<?php
|
||||
$class = new class extends \Foo {
|
||||
|
||||
public $field;
|
||||
|
||||
public function firstMethod() {}
|
||||
|
||||
};',
|
||||
self::$configurationDoNotApplyForAnonymousClasses,
|
||||
];
|
||||
|
||||
return $cases;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
*
|
||||
* @dataProvider provideMessyWhitespacesCases
|
||||
*/
|
||||
public function testMessyWhitespaces($expected, $input = null) {
|
||||
/** @var \PhpCsFixer\Fixer\WhitespacesAwareFixerInterface $fixer */
|
||||
$fixer = $this->fixer;
|
||||
$fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
|
||||
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideMessyWhitespacesCases() {
|
||||
return [
|
||||
[
|
||||
"<?php\nclass Foo\n{\r\n\r\n public function bar() {}\r\n\r\n}",
|
||||
"<?php\nclass Foo\n{\n public function bar() {}\n}",
|
||||
],
|
||||
[
|
||||
"<?php\nclass Foo\n{\r\n\r\n public function bar() {}\r\n\r\n}",
|
||||
"<?php\nclass Foo\n{\r\n\r\n\n\n public function bar() {}\n\n\n\n}",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
protected function createFixer() {
|
||||
return new BlankLineAroundClassBodyFixer();
|
||||
}
|
||||
|
||||
}
|
223
tests/Fixer/Whitespace/BlankLineBeforeReturnFixerTest.php
Normal file
223
tests/Fixer/Whitespace/BlankLineBeforeReturnFixerTest.php
Normal file
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Ely\CS\Test\Fixer\Whitespace;
|
||||
|
||||
use Ely\CS\Fixer\Whitespace\BlankLineBeforeReturnFixer;
|
||||
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 {
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
*
|
||||
* @dataProvider provideFixCases
|
||||
*/
|
||||
public function testFix($expected, $input = null) {
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideFixCases() {
|
||||
$cases = [];
|
||||
$cases[] = [
|
||||
'$a = $a;
|
||||
return $a;
|
||||
',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$a = $a;
|
||||
|
||||
return $a;',
|
||||
'<?php
|
||||
$a = $a; return $a;',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$b = $b;
|
||||
|
||||
return $b;',
|
||||
'<?php
|
||||
$b = $b;return $b;',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$c = $c;
|
||||
|
||||
return $c;',
|
||||
'<?php
|
||||
$c = $c;
|
||||
return $c;',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$d = $d;
|
||||
|
||||
return $d;',
|
||||
'<?php
|
||||
$d = $d;
|
||||
return $d;',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true) {
|
||||
return 1;
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true)
|
||||
return 1;
|
||||
',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true) {
|
||||
return 1;
|
||||
} else {
|
||||
return 2;
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true)
|
||||
return 1;
|
||||
else
|
||||
return 2;
|
||||
',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true) {
|
||||
return 1;
|
||||
} elseif (false) {
|
||||
return 2;
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
if (true)
|
||||
return 1;
|
||||
elseif (false)
|
||||
return 2;
|
||||
',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
throw new Exception("return true;");',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo()
|
||||
{
|
||||
// comment
|
||||
return "foo";
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo()
|
||||
{
|
||||
// comment
|
||||
|
||||
return "bar";
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo()
|
||||
{
|
||||
// comment
|
||||
return "bar";
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo() {
|
||||
$a = "a";
|
||||
$b = "b";
|
||||
|
||||
return $a . $b;
|
||||
}',
|
||||
'<?php
|
||||
function foo() {
|
||||
$a = "a";
|
||||
$b = "b";
|
||||
return $a . $b;
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo() {
|
||||
$b = "b";
|
||||
return $a . $b;
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
function foo() {
|
||||
$a = "a";
|
||||
|
||||
return $a . "hello";
|
||||
}
|
||||
|
||||
function bar() {
|
||||
$b = "b";
|
||||
return $b . "hello";
|
||||
}
|
||||
',
|
||||
];
|
||||
|
||||
return $cases;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param null|string $input
|
||||
*
|
||||
* @dataProvider provideMessyWhitespacesCases
|
||||
*/
|
||||
public function testMessyWhitespaces($expected, $input = null) {
|
||||
$this->fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
|
||||
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideMessyWhitespacesCases() {
|
||||
return [
|
||||
[
|
||||
"<?php\r\n\$a = \$a;\r\n\r\nreturn \$a;",
|
||||
"<?php\r\n\$a = \$a; return \$a;",
|
||||
],
|
||||
[
|
||||
"<?php\r\n\$b = \$b;\r\n\r\nreturn \$b;",
|
||||
"<?php\r\n\$b = \$b;return \$b;",
|
||||
],
|
||||
[
|
||||
"<?php\r\n\$c = \$c;\r\n\r\nreturn \$c;",
|
||||
"<?php\r\n\$c = \$c;\r\nreturn \$c;",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
protected function createFixer() {
|
||||
return new BlankLineBeforeReturnFixer();
|
||||
}
|
||||
|
||||
}
|
370
tests/Fixer/Whitespace/LineBreakAfterStatementsFixerTest.php
Normal file
370
tests/Fixer/Whitespace/LineBreakAfterStatementsFixerTest.php
Normal file
@@ -0,0 +1,370 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Ely\CS\Test\Fixer\Whitespace;
|
||||
|
||||
use Ely\CS\Fixer\Whitespace\LineBreakAfterStatementsFixer;
|
||||
use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
|
||||
|
||||
/**
|
||||
* @covers \Ely\CS\Fixer\Whitespace\LineBreakAfterStatementsFixer
|
||||
*
|
||||
* @author ErickSkrauch <erickskrauch@ely.by>
|
||||
*/
|
||||
class LineBreakAfterStatementsFixerTest extends AbstractFixerTestCase {
|
||||
|
||||
/**
|
||||
* @param string $expected
|
||||
* @param string $input
|
||||
*
|
||||
* @dataProvider provideFixCases
|
||||
*/
|
||||
public function testFix(string $expected, $input = null) {
|
||||
$this->doTest($expected, $input);
|
||||
}
|
||||
|
||||
public function provideFixCases() {
|
||||
$cases = [];
|
||||
|
||||
// Simple cases
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} else {
|
||||
// another code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} else {
|
||||
// another code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
foreach (["foo", "bar"] as $str) {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
foreach (["foo", "bar"] as $str) {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
while ($i < 10) {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
while ($i < 10) {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
do {
|
||||
// code
|
||||
} while ($i < 10);
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
do {
|
||||
// code
|
||||
} while ($i < 10);
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
switch ("str") {
|
||||
case "a":
|
||||
break;
|
||||
case "b":
|
||||
break;
|
||||
default:
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
switch ("str") {
|
||||
case "a":
|
||||
break;
|
||||
case "b":
|
||||
break;
|
||||
default:
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
// Extended cases
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} else if ("a" === "c") {
|
||||
// code
|
||||
} else if ("a" === "d") {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} else if ("a" === "c") {
|
||||
// code
|
||||
} else if ("a" === "d") {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} elseif ("a" === "c") {
|
||||
// code
|
||||
} elseif ("a" === "d") {
|
||||
// code
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
if ("a" === "b") {
|
||||
// code
|
||||
} elseif ("a" === "c") {
|
||||
// code
|
||||
} elseif ("a" === "d") {
|
||||
// code
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
foreach (["foo", "bar"] as $str) {
|
||||
if ($str === "foo") {
|
||||
// code
|
||||
}
|
||||
}
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function bar()
|
||||
{
|
||||
foreach (["foo", "bar"] as $str) {
|
||||
if ($str === "foo") {
|
||||
// code
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
switch ("str") {
|
||||
case "a": {
|
||||
break;
|
||||
}
|
||||
case "b": {
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// code
|
||||
}
|
||||
}
|
||||
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
'<?php
|
||||
class Foo
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
switch ("str") {
|
||||
case "a": {
|
||||
break;
|
||||
}
|
||||
case "b": {
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// code
|
||||
}
|
||||
}
|
||||
$a = "next statement";
|
||||
}
|
||||
}',
|
||||
];
|
||||
$cases[] = [
|
||||
'<?php
|
||||
$a = "prev statement";
|
||||
foreach ($coordinates as $coordinate) {
|
||||
[$x, $y] = explode(\',\', $coordinate);
|
||||
}
|
||||
',
|
||||
];
|
||||
|
||||
return $cases;
|
||||
}
|
||||
|
||||
protected function createFixer() {
|
||||
return new LineBreakAfterStatementsFixer();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user