123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 |
- <?php
- declare(strict_types=1);
- /*
- * This file is part of PHP CS Fixer.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- * Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace PhpCsFixer\Tests\Fixer\Whitespace;
- use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
- use PhpCsFixer\WhitespacesFixerConfig;
- /**
- * @author Vladimir Boliev <voff.web@gmail.com>
- *
- * @internal
- *
- * @covers \PhpCsFixer\Fixer\Whitespace\MethodChainingIndentationFixer
- *
- * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\Whitespace\MethodChainingIndentationFixer>
- */
- final class MethodChainingIndentationFixerTest extends AbstractFixerTestCase
- {
- /**
- * @dataProvider provideFixCases
- */
- public function testFix(string $expected, ?string $input = null): void
- {
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- public static function provideFixCases(): iterable
- {
- yield [
- '<?php
- $user->setEmail(\'voff.web@gmail.com\')
- ->setPassword(\'233434\')
- ->setEmailConfirmed(false)
- ->setEmailConfirmationCode(\'123456\')
- ->setHashsalt(\'1234\')
- ->setTncAccepted(true);
- ',
- '<?php
- $user->setEmail(\'voff.web@gmail.com\')
- ->setPassword(\'233434\')
- ->setEmailConfirmed(false)
- ->setEmailConfirmationCode(\'123456\')
- ->setHashsalt(\'1234\')
- ->setTncAccepted(true);
- ',
- ];
- yield [
- '<?php
- $foo
- ->bar1() // comment
- ->bar2() /*
- comment
- */
- ->bar3()
- // comment
- ->bar4()
- ->bar5()
- /** buahaha */
- ->bar6()
- /** buahaha */
- ->bar7();',
- '<?php
- $foo
- ->bar1() // comment
- ->bar2() /*
- comment
- */
- ->bar3()
- // comment
- ->bar4()
- ->bar5()
- /** buahaha */ ->bar6()
- /** buahaha */->bar7();',
- ];
- yield [
- '<?php
- $foo
- ->bar1()
- ->bar2();',
- '<?php
- $foo
- ->bar1()
- ->bar2();',
- ];
- yield [
- '<?php $foo
- ->bar();',
- '<?php $foo
- ->bar();',
- ];
- yield [
- '<?php $foo->bar()->baz()
- ->qux();',
- '<?php $foo->bar()->baz()
- ->qux();',
- ];
- yield [
- '<?php
- someCodeHereAndMultipleBreaks();
- $foo
- ->bar1()
- ->bar2();',
- ];
- yield [
- '<?php
- if (null !== $files) {
- return $files;
- }
- $finder = Finder::create()
- ->files()
- ;',
- ];
- yield [
- '<?php
- $finder = Finder::create()
- ->files()
- ;',
- ];
- yield [
- '<?php
- $replacements = $replacements
- ->setAllowedTypes([\'array\'])
- ->setNormalizer(function (Options $options, $value) use ($toTypes, $default) {
- return $normalizedValue;
- })
- ->setDefault($default)
- ->setWhitespacesConfig(
- new WhitespacesFixerConfig($config[\'indent\'], $config[\'lineEnding\'])
- )
- ;',
- ];
- yield [
- '<?php
- return foo()
- ->bar (
- new foo()
- )
- ->bar();
- ',
- ];
- yield [
- '<?php
- return new Foo("param", [
- (new Bar("param1", "param2"))
- ->Foo([
- (new Bar())->foo(),
- ])
- ]);
- ',
- ];
- yield [
- '<?php
- (new Foo(
- \'argument on line 1\',
- \'argument on line 2\'
- ))
- ->foo()
- ->bar()
- ;',
- '<?php
- (new Foo(
- \'argument on line 1\',
- \'argument on line 2\'
- ))
- ->foo()
- ->bar()
- ;',
- ];
- yield [
- '<div>
- <?php $object
- ->method()
- ->method();
- ?>
- </div>
- <?= $object
- ->method()
- ->method();
- ?>',
- '<div>
- <?php $object
- ->method()
- ->method();
- ?>
- </div>
- <?= $object
- ->method()
- ->method();
- ?>',
- ];
- yield [
- '<?php
- $user->setFoo(1)
- ->setBar([
- 1 => 1,
- ])
- ->setBaz(true)
- ->setX(array(
- 2 => 2,
- ))
- ->setY();
- ',
- '<?php
- $user->setFoo(1)
- ->setBar([
- 1 => 1,
- ])
- ->setBaz(true)
- ->setX(array(
- 2 => 2,
- ))
- ->setY();
- ',
- ];
- yield [
- '<?php
- $user->setEmail("voff.web@gmail.com", )
- ->setPassword("233434" ,)
- ->setEmailConfirmed(false , )
- ->setEmailConfirmationCode("123456", );
- ',
- '<?php
- $user->setEmail("voff.web@gmail.com", )
- ->setPassword("233434" ,)
- ->setEmailConfirmed(false , )
- ->setEmailConfirmationCode("123456", );
- ',
- ];
- yield [
- '<?php
- $obj = (new Foo)
- ->setBar((new Bar)
- ->baz());
- ',
- '<?php
- $obj = (new Foo)
- ->setBar((new Bar)
- ->baz());
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo("bar", function ($baz) {
- return $baz
- ->on("table1", "table2");
- })
- ->where("a", "b");
- ',
- '<?php
- $obj
- ->foo("bar", function ($baz) {
- return $baz
- ->on("table1", "table2");
- })
- ->where("a", "b");
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo("baz", fn ($bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- '<?php
- $obj
- ->foo("baz", fn ($bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo("baz", fn (string $bar) => otherFunc($bar)
- ->baz("foobar"))
- ->baz();
- ',
- '<?php
- $obj
- ->foo("baz", fn (string $bar) => otherFunc($bar)
- ->baz("foobar"))
- ->baz();
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo("baz", fn (SomeClass $bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- '<?php
- $obj
- ->foo("baz", fn (SomeClass $bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo("baz", fn (?AnotherClass $bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- '<?php
- $obj
- ->foo("baz", fn (?AnotherClass $bar) => $bar
- ->baz("foobar"))
- ->baz();
- ',
- ];
- yield [
- '<?php
- $obj
- /*buahaha*/
- ->foo("baz", fn ($bar) => $bar
- ->baz/*buahaha*/("foobar"))
- ->/**buahaha*/baz();
- ',
- '<?php
- $obj
- /*buahaha*/ ->foo("baz", fn ($bar) => $bar
- ->baz/*buahaha*/("foobar"))
- ->/**buahaha*/baz();
- ',
- ];
- yield [
- '<?php
- $obj
- -> foo("baz", fn ($bar) => $bar
- ->baz ("foobar"))
- -> baz ();
- ',
- '<?php
- $obj
- -> foo("baz", fn ($bar) => $bar
- ->baz ("foobar"))
- -> baz ();
- ',
- ];
- yield [
- '<?php return $foo
- ->bar;',
- ];
- yield [
- '<?php return $foo
- ->bar;
- if (foo()) {
- echo 123;
- }
- ',
- ];
- yield [
- '<?php return $foo
- ->bar?>
- <?php
- if (foo()) {
- echo 123;
- }
- ',
- ];
- yield [
- '<?php return [$foo
- ->bar,
- 1,
- 2,
- abc(),
- ];
- ',
- ];
- yield [
- '<?php
- $obj
- ->foo()
- ->bar;
- ',
- '<?php
- $obj
- ->foo()
- ->bar;
- ',
- ];
- yield [
- '<?php
- return $obj
- ->foo()
- ->bar
- ->baz();
- ',
- '<?php
- return $obj
- ->foo()
- ->bar
- ->baz();
- ',
- ];
- yield [
- '<?php
- foo()
- ->bar()
- ->baz;
- $obj
- ->foo(\'123\', 456)
- ->bar(\'789\')
- ->baz;
- ',
- '<?php
- foo()
- ->bar()
- ->baz;
- $obj
- ->foo(\'123\', 456)
- ->bar(\'789\')
- ->baz;
- ',
- ];
- }
- /**
- * @dataProvider provideWithWhitespacesConfigCases
- */
- public function testWithWhitespacesConfig(string $expected, ?string $input = null): void
- {
- $this->fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{string, string}>
- */
- public static function provideWithWhitespacesConfigCases(): iterable
- {
- yield [
- "<?php\r\n\$user->setEmail('voff.web@gmail.com')\r\n\t->setPassword('233434')\r\n\t->setEmailConfirmed(false)\r\n\t->setEmailConfirmationCode('123456')\r\n\t->setHashsalt('1234')\r\n\t->setTncAccepted(true);",
- "<?php\r\n\$user->setEmail('voff.web@gmail.com')\r\n\r\n ->setPassword('233434')\r\n\t\t\t->setEmailConfirmed(false)\r\n\t\t ->setEmailConfirmationCode('123456')\r\n->setHashsalt('1234')\r\n\t\t->setTncAccepted(true);",
- ];
- }
- /**
- * @requires PHP 8.0
- */
- public function testFix80(): void
- {
- $this->doTest(
- '<?php
- $user?->setEmail("voff.web@gmail.com")
- ?->setPassword("233434")
- ?->setEmailConfirmed(false)
- ?->setEmailConfirmationCode("123456");
- ',
- '<?php
- $user?->setEmail("voff.web@gmail.com")
- ?->setPassword("233434")
- ?->setEmailConfirmed(false)
- ?->setEmailConfirmationCode("123456");
- '
- );
- }
- }
|