NoTrailingWhitespaceInStringFixerTest.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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\StringNotation;
  13. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  14. /**
  15. * @author Gregor Harlan
  16. *
  17. * @internal
  18. *
  19. * @covers \PhpCsFixer\Fixer\StringNotation\NoTrailingWhitespaceInStringFixer
  20. */
  21. final class NoTrailingWhitespaceInStringFixerTest 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. yield [
  33. "<?php \$a = ' foo\r bar\r\n\nbaz\n ';",
  34. "<?php \$a = ' foo \r bar \r\n \nbaz \n ';",
  35. ];
  36. yield [
  37. "<?php \$a = \" foo\r bar\r\n\nbaz\n \";",
  38. "<?php \$a = \" foo \r bar \r\n \nbaz \n \";",
  39. ];
  40. yield [
  41. "<?php \$a = \" \$foo\n\";",
  42. "<?php \$a = \" \$foo \n\";",
  43. ];
  44. yield [
  45. " foo\r bar\r\nbaz\n",
  46. " foo \r bar \r\nbaz \n ",
  47. ];
  48. yield [
  49. "\n<?php foo() ?>\n foo",
  50. " \n<?php foo() ?> \n foo",
  51. ];
  52. yield [
  53. "<?php foo() ?>\n<?php foo() ?>\n",
  54. "<?php foo() ?> \n<?php foo() ?> \n",
  55. ];
  56. yield [
  57. "<?php foo() ?>\n\nfoo",
  58. "<?php foo() ?>\n \nfoo",
  59. ];
  60. yield [
  61. "<?php foo() ?>foo\n",
  62. "<?php foo() ?>foo \n",
  63. ];
  64. yield [
  65. '',
  66. ' ',
  67. ];
  68. yield [
  69. '<?php echo 1; ?>',
  70. '<?php echo 1; ?> ',
  71. ];
  72. yield [
  73. '
  74. <?php
  75. $a = <<<EOD
  76. foo
  77. bar
  78. $a
  79. $b
  80. baz
  81. EOD;
  82. ',
  83. '
  84. <?php
  85. $a = <<<EOD
  86. foo '.'
  87. bar
  88. $a '.'
  89. $b
  90. '.'
  91. baz '.'
  92. EOD;
  93. ',
  94. ];
  95. yield [
  96. '
  97. <?php
  98. $a = <<<\'EOD\'
  99. foo
  100. bar
  101. baz
  102. EOD;
  103. ',
  104. '
  105. <?php
  106. $a = <<<\'EOD\'
  107. foo '.'
  108. bar
  109. '.'
  110. baz '.'
  111. EOD;
  112. ',
  113. ];
  114. yield [
  115. '
  116. <?php
  117. $a = <<<\'EOD\'
  118. foo
  119. bar
  120. baz
  121. EOD;
  122. ',
  123. '
  124. <?php
  125. $a = <<<\'EOD\'
  126. foo '.'
  127. bar
  128. '.'
  129. baz '.'
  130. EOD;
  131. ',
  132. ];
  133. yield 'binary string' => [
  134. "<?php \$a = b\" \$foo\n\";",
  135. "<?php \$a = b\" \$foo \n\";",
  136. ];
  137. }
  138. }