NoTrailingCommaInSinglelineArrayFixerTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4. * This file is part of PHP CS Fixer.
  5. *
  6. * (c) Fabien Potencier <fabien@symfony.com>
  7. * Dariusz Rumiński <dariusz.ruminski@gmail.com>
  8. *
  9. * This source file is subject to the MIT license that is bundled
  10. * with this source code in the file LICENSE.
  11. */
  12. namespace PhpCsFixer\Tests\Fixer\ArrayNotation;
  13. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  14. /**
  15. * @author Sebastiaan Stok <s.stok@rollerscapes.net>
  16. *
  17. * @internal
  18. *
  19. * @covers \PhpCsFixer\Fixer\ArrayNotation\NoTrailingCommaInSinglelineArrayFixer
  20. */
  21. final class NoTrailingCommaInSinglelineArrayFixerTest extends AbstractFixerTestCase
  22. {
  23. /**
  24. * @dataProvider provideFixCases
  25. */
  26. public function testFix(string $expected, ?string $input = null): void
  27. {
  28. $this->doTest($expected, $input);
  29. }
  30. public static function provideFixCases(): iterable
  31. {
  32. return [
  33. ['<?php $x = array();'],
  34. ['<?php $x = array("foo");'],
  35. [
  36. '<?php $x = array("foo");',
  37. '<?php $x = array("foo", );',
  38. ],
  39. ["<?php \$x = array(\n'foo', \n);"],
  40. ["<?php \$x = array('foo', \n);"],
  41. ["<?php \$x = array(array('foo'), \n);", "<?php \$x = array(array('foo',), \n);"],
  42. ["<?php \$x = array(array('foo',\n), \n);"],
  43. [
  44. '<?php
  45. $test = array("foo", <<<TWIG
  46. foo
  47. TWIG
  48. , $twig, );',
  49. ],
  50. [
  51. '<?php
  52. $test = array(
  53. "foo", <<<TWIG
  54. foo
  55. TWIG
  56. , $twig, );',
  57. ],
  58. [
  59. '<?php
  60. $test = array("foo", <<<\'TWIG\'
  61. foo
  62. TWIG
  63. , $twig, );',
  64. ],
  65. [
  66. '<?php
  67. $test = array(
  68. "foo", <<<\'TWIG\'
  69. foo
  70. TWIG
  71. , $twig, );',
  72. ],
  73. // Short syntax
  74. ['<?php $x = array([]);'],
  75. ['<?php $x = [[]];'],
  76. ['<?php $x = ["foo"];', '<?php $x = ["foo",];'],
  77. ['<?php $x = bar(["foo"]);', '<?php $x = bar(["foo",]);'],
  78. ["<?php \$x = bar([['foo'],\n]);"],
  79. ["<?php \$x = ['foo', \n];"],
  80. ['<?php $x = array([]);', '<?php $x = array([],);'],
  81. ['<?php $x = [[]];', '<?php $x = [[],];'],
  82. ['<?php $x = [$y[""]];', '<?php $x = [$y[""],];'],
  83. [
  84. '<?php
  85. $test = ["foo", <<<TWIG
  86. foo
  87. TWIG
  88. , $twig, ];',
  89. ],
  90. [
  91. '<?php
  92. $test = [
  93. "foo", <<<TWIG
  94. foo
  95. TWIG
  96. , $twig, ];',
  97. ],
  98. [
  99. '<?php
  100. $test = ["foo", <<<\'TWIG\'
  101. foo
  102. TWIG
  103. , $twig, ];',
  104. ],
  105. [
  106. '<?php
  107. $test = [
  108. "foo", <<<\'TWIG\'
  109. foo
  110. TWIG
  111. , $twig, ];',
  112. ],
  113. [
  114. '<?php $x = array(...$foo);',
  115. '<?php $x = array(...$foo, );',
  116. ],
  117. [
  118. '<?php $x = [...$foo];',
  119. '<?php $x = [...$foo, ];',
  120. ],
  121. ];
  122. }
  123. }