NoWhitespaceInBlankLineFixerTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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\Whitespace;
  12. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  13. use PhpCsFixer\WhitespacesFixerConfig;
  14. /**
  15. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  16. *
  17. * @internal
  18. *
  19. * @covers \PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer
  20. */
  21. final class NoWhitespaceInBlankLineFixerTest extends AbstractFixerTestCase
  22. {
  23. /**
  24. * @param string $expected
  25. * @param null|string $input
  26. *
  27. * @dataProvider provideFixCases
  28. */
  29. public function testFix($expected, $input = null)
  30. {
  31. $this->doTest($expected, $input);
  32. }
  33. public function provideFixCases()
  34. {
  35. return [
  36. [
  37. '<?php',
  38. ],
  39. [
  40. '<?php ',
  41. ],
  42. [
  43. '<?php
  44. ',
  45. '<?php
  46. ',
  47. ],
  48. [
  49. '<?php
  50. ',
  51. '<?php
  52. '.'
  53. ',
  54. ],
  55. [
  56. '<?php
  57. $a = 1; ',
  58. '<?php
  59. '.'
  60. $a = 1; ',
  61. ],
  62. [
  63. '<?php
  64. $r = 5 +6; '.'
  65. $t = true> 9; '.'
  66. ',
  67. ],
  68. [
  69. '<?php
  70. $a = 1; ',
  71. ],
  72. [
  73. "<?php
  74. \t\$b = 1;\t\t",
  75. ],
  76. [
  77. '<?php
  78. $b = 2;
  79. ',
  80. '<?php
  81. $b = 2;
  82. ',
  83. ],
  84. [
  85. '<?php
  86. $b = 3;
  87. ',
  88. '<?php
  89. $b = 3;
  90. '.'
  91. '.'
  92. ',
  93. ],
  94. [
  95. '<?php
  96. $b = 4;
  97. $b += 4;',
  98. '<?php
  99. $b = 4;
  100. '.'
  101. '.'
  102. '.'
  103. $b += 4;',
  104. ],
  105. [
  106. "<?php\n\n\n\$b = 5;",
  107. "<?php\n \n\t\n\$b = 5;",
  108. ],
  109. [
  110. "<?php\necho 1;\n?>\n\n\n\n",
  111. ],
  112. [
  113. "<?php\necho <<<HTML\ndata \n \n \t \n \nHTML\n;\n//a",
  114. ],
  115. [
  116. "<?php\n\$sql = 'SELECT * FROM products WHERE description = \"This product\n \nis nice\"';",
  117. ],
  118. [
  119. '<?php
  120. /**
  121. * @const Foo.
  122. */
  123. const FOO = "BAR";
  124. ',
  125. ],
  126. [
  127. "<?php\n\n \$a = 1;\n\n \$b = 2;",
  128. "<?php\n\n \$a = 1;\n \n \$b = 2;",
  129. ],
  130. ];
  131. }
  132. /**
  133. * @param string $expected
  134. * @param null|string $input
  135. *
  136. * @dataProvider provideMessyWhitespacesCases
  137. */
  138. public function testMessyWhitespaces($expected, $input = null)
  139. {
  140. $this->fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
  141. $this->doTest($expected, $input);
  142. }
  143. public function provideMessyWhitespacesCases()
  144. {
  145. return [
  146. [
  147. "<?php\r\n\r\n \$a = 1;\r\n\r\n \$b = 2;",
  148. "<?php\r\n\r\n \$a = 1;\r\n \r\n \$b = 2;",
  149. ],
  150. ];
  151. }
  152. }