NoTrailingCommaInSinglelineArrayFixerTest.php 3.2 KB

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