123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- <?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\Comment;
- use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
- use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
- /**
- * @author Filippo Tessarotto <zoeslam@gmail.com>
- *
- * @internal
- *
- * @covers \PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer
- *
- * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer>
- *
- * @phpstan-import-type _AutogeneratedInputConfiguration from \PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer
- */
- final class SingleLineCommentStyleFixerTest extends AbstractFixerTestCase
- {
- public function testInvalidConfig(): void
- {
- $this->expectException(InvalidFixerConfigurationException::class);
- $this->fixer->configure(['abc']);
- }
- /**
- * @dataProvider provideAsteriskCases
- */
- public function testAsterisk(string $expected, ?string $input = null): void
- {
- $this->fixer->configure(['comment_types' => ['asterisk']]);
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<int|string, array{0: string, 1?: string}>
- */
- public static function provideAsteriskCases(): iterable
- {
- yield [
- '<?php
- // lonely line
- ',
- '<?php
- /* lonely line */
- ',
- ];
- yield [
- '<?php
- // indented line
- ',
- '<?php
- /* indented line */
- ',
- ];
- yield [
- '<?php
- // weird-spaced line
- ',
- '<?php
- /* weird-spaced line*/
- ',
- ];
- yield [
- '<?php // start-end',
- '<?php /* start-end */',
- ];
- yield [
- "<?php\n \t \n \t // weird indent\n",
- "<?php\n \t \n \t /* weird indent */\n",
- ];
- yield [
- "<?php\n// with spaces after\n \t ",
- "<?php\n/* with spaces after */ \t \n \t ",
- ];
- yield [
- '<?php
- $a = 1; // after code
- ',
- '<?php
- $a = 1; /* after code */
- ',
- ];
- yield [
- '<?php
- /* first */ // second
- ',
- '<?php
- /* first */ /* second */
- ',
- ];
- yield [
- '<?php
- /* first */// second',
- '<?php
- /* first *//*
- second
- */',
- ];
- yield [
- '<?php
- // one line',
- '<?php
- /*one line
- */',
- ];
- yield [
- '<?php
- // one line',
- '<?php
- /*
- one line*/',
- ];
- yield [
- '<?php
- // one line',
- "<?php
- /* \t "."
- \t * one line ".'
- *
- */',
- ];
- yield [
- '<?php
- //',
- '<?php
- /***
- *
- */',
- ];
- yield [
- '<?php
- // s',
- '<?php
- /***
- s *
- */',
- ];
- yield 'empty comment' => [
- '<?php
- //
- ',
- '<?php
- /**/
- ',
- ];
- // Untouched cases
- yield [
- '<?php
- $a = 1; /* in code */ $b = 2;
- ',
- ];
- yield [
- '<?php
- /*
- * in code 2
- */ $a = 1;
- ',
- ];
- yield [
- '<?php
- /***
- *
- */ $a = 1;',
- ];
- yield [
- '<?php
- /***
- s *
- */ $a = 1;',
- ];
- yield [
- '<?php
- /*
- * first line
- * second line
- */',
- ];
- yield [
- '<?php
- /*
- * first line
- *
- * second line
- */',
- ];
- yield [
- '<?php
- /*first line
- second line*/',
- ];
- yield [
- '<?php /** inline doc comment */',
- ];
- yield [
- '<?php
- /**
- * Doc comment
- */',
- ];
- yield [
- '<?php # test',
- ];
- }
- /**
- * @dataProvider provideHashCases
- */
- public function testHash(string $expected, ?string $input = null): void
- {
- $this->fixer->configure(['comment_types' => ['hash']]);
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- public static function provideHashCases(): iterable
- {
- yield [
- '<h1>This is an <?php //echo 123;?> example</h1>',
- '<h1>This is an <?php #echo 123;?> example</h1>',
- ];
- yield [
- '<?php
- // test
- ',
- '<?php
- # test
- ',
- ];
- yield [
- '<?php
- // test1
- //test2
- // test3
- // test 4
- ',
- '<?php
- # test1
- #test2
- # test3
- # test 4
- ',
- ];
- yield [
- '<?php //',
- '<?php #',
- ];
- // Untouched cases
- yield [
- '<?php
- //#test
- ',
- ];
- yield [
- '<?php
- /*
- #test
- */
- ',
- ];
- yield [
- '<?php // a',
- '<?php # a',
- ];
- yield [
- '<?php /* start-end */',
- ];
- yield [
- '<?php function foo(
- #[MyAttr([1, 2])] Type $myParam,
- ) {} // foo',
- ];
- }
- /**
- * @dataProvider provideAllCases
- */
- public function testAll(string $expected, ?string $input = null): void
- {
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- public static function provideAllCases(): iterable
- {
- yield [
- '<?php
- // 1
- // 2
- /*
- * 3.a
- * 3.b
- */
- /**
- * 4
- */
- // 5
- ',
- '<?php
- /* 1 */
- /*
- * 2
- */
- /*
- * 3.a
- * 3.b
- */
- /**
- * 4
- */
- # 5
- ',
- ];
- yield [
- '<?php
- function foo() {
- /* ?> */
- return "bar";
- }',
- ];
- }
- }
|