BlankLineAfterNamespaceFixerTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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\NamespaceNotation;
  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\NamespaceNotation\BlankLineAfterNamespaceFixer
  20. */
  21. final class BlankLineAfterNamespaceFixerTest 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 namespace A\B?>
  38. <?php
  39. for($i=0; $i<10; ++$i) {echo $i;}',
  40. ],
  41. [
  42. '<?php namespace A\B?>',
  43. ],
  44. [
  45. '<?php
  46. namespace A\B;
  47. class C {}
  48. ',
  49. '<?php
  50. namespace A\B;
  51. class C {}
  52. ',
  53. ],
  54. [
  55. '<?php
  56. namespace A\B;
  57. class C {}
  58. ',
  59. '<?php
  60. namespace A\B;
  61. class C {}
  62. ',
  63. ],
  64. [
  65. '<?php
  66. namespace A\B;
  67. class C {}
  68. ',
  69. '<?php
  70. namespace A\B; class C {}
  71. ',
  72. ],
  73. [
  74. '<?php
  75. namespace A\B;
  76. class C {}
  77. ',
  78. '<?php
  79. namespace A\B;class C {}
  80. ',
  81. ],
  82. [
  83. '<?php
  84. namespace A\B {
  85. class C {
  86. public $foo;
  87. private $bar;
  88. }
  89. }
  90. ',
  91. ],
  92. [
  93. "<?php\rnamespace A\\B;
  94. class C {}\r",
  95. "<?php\rnamespace A\\B;\r\r\r\r\r\rclass C {}\r",
  96. ],
  97. [
  98. '<?php
  99. namespace A\B;
  100. namespace\C\func();
  101. foo();
  102. ',
  103. ],
  104. [
  105. '<?php
  106. namespace Foo;
  107. ',
  108. '<?php
  109. namespace Foo;
  110. ',
  111. ],
  112. [
  113. '<?php
  114. namespace Foo;
  115. ?>',
  116. '<?php
  117. namespace Foo;
  118. ?>',
  119. ],
  120. ];
  121. }
  122. /**
  123. * @param string $expected
  124. * @param null|string $input
  125. *
  126. * @dataProvider provideMessyWhitespacesCases
  127. */
  128. public function testMessyWhitespaces($expected, $input = null)
  129. {
  130. $this->fixer->setWhitespacesConfig(new WhitespacesFixerConfig("\t", "\r\n"));
  131. $this->doTest($expected, $input);
  132. }
  133. public function provideMessyWhitespacesCases()
  134. {
  135. return [
  136. [
  137. "<?php namespace A\\B;\r\n\r\nclass C {}",
  138. '<?php namespace A\\B; class C {}',
  139. ],
  140. [
  141. "<?php namespace A\\B;\r\n\r\nclass C {}",
  142. "<?php namespace A\\B;\r\n\r\n\r\n\r\n\r\n\r\nclass C {}",
  143. ],
  144. ];
  145. }
  146. }