SpaceAfterSemicolonFixerTest.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  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\Semicolon;
  12. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  13. /**
  14. * @author SpacePossum
  15. *
  16. * @internal
  17. *
  18. * @covers \PhpCsFixer\Fixer\Semicolon\SpaceAfterSemicolonFixer
  19. */
  20. final class SpaceAfterSemicolonFixerTest 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. /**
  33. * @param string $expected
  34. * @param null|string $input
  35. *
  36. * @dataProvider provideFixCases
  37. */
  38. public function testFixWithSpacesInEmptyForExpressions($expected, $input = null)
  39. {
  40. $this->fixer->configure([
  41. 'remove_in_empty_for_expressions' => false,
  42. ]);
  43. $this->doTest($expected, $input);
  44. }
  45. public function provideFixCases()
  46. {
  47. return [
  48. [
  49. '<?php
  50. test1();
  51. $a; // test
  52. ',
  53. ],
  54. [
  55. '<?php test2();',
  56. ],
  57. [
  58. '<?php test3(); ',
  59. ],
  60. [
  61. '<?php test4(); ',
  62. ],
  63. [
  64. '<?php
  65. test5(); // test
  66. ',
  67. ],
  68. [
  69. '<?php test6(); /* */ //',
  70. ],
  71. [
  72. '<?php test7a(); /* */',
  73. '<?php test7a();/* */',
  74. ],
  75. [
  76. '<?php test7b(); /* *//**/',
  77. '<?php test7b();/* *//**/',
  78. ],
  79. [
  80. '<?php
  81. test8(); $a = 4;
  82. ',
  83. '<?php
  84. test8(); $a = 4;
  85. ',
  86. ],
  87. [
  88. '<?php
  89. test9(); $b = 7;
  90. ',
  91. '<?php
  92. test9();$b = 7;
  93. ',
  94. ],
  95. [
  96. '<?php
  97. for (; ;) {
  98. }
  99. ',
  100. '<?php
  101. for (;;) {
  102. }
  103. ',
  104. ],
  105. [
  106. '<?php
  107. for (; ; ++$u1) {
  108. }
  109. ',
  110. '<?php
  111. for (;;++$u1) {
  112. }
  113. ',
  114. ],
  115. [
  116. '<?php
  117. for (; $u2 < 0;) {
  118. }
  119. ',
  120. '<?php
  121. for (;$u2 < 0;) {
  122. }
  123. ',
  124. ],
  125. [
  126. '<?php
  127. for (; $u3 < 3; ++$u3) {
  128. }
  129. ',
  130. '<?php
  131. for (;$u3 < 3;++$u3) {
  132. }
  133. ',
  134. ],
  135. [
  136. '<?php
  137. for ($u4 = 0; ;) {
  138. }
  139. ',
  140. '<?php
  141. for ($u4 = 0;;) {
  142. }
  143. ',
  144. ],
  145. [
  146. '<?php
  147. for ($u5 = 0; ; ++$u5) {
  148. }
  149. ',
  150. '<?php
  151. for ($u5 = 0;;++$u5) {
  152. }
  153. ',
  154. ],
  155. [
  156. '<?php
  157. for ($u6 = 0; $u6 < 6;) {
  158. }
  159. ',
  160. '<?php
  161. for ($u6 = 0;$u6 < 6;) {
  162. }
  163. ',
  164. ],
  165. [
  166. '<?php
  167. for ($u7 = 0; $u7 < 7; ++$u7) {
  168. }
  169. ',
  170. '<?php
  171. for ($u7 = 0;$u7 < 7;++$u7) {
  172. }
  173. ',
  174. ],
  175. [
  176. '<?php
  177. for (; ; ) {
  178. }
  179. ',
  180. '<?php
  181. for (; ; ) {
  182. }
  183. ',
  184. ],
  185. [
  186. '<?php
  187. for (; ; ++$u1) {
  188. }
  189. ',
  190. '<?php
  191. for (; ; ++$u1) {
  192. }
  193. ',
  194. ],
  195. [
  196. '<?php
  197. for (; $u2 < 0; ) {
  198. }
  199. ',
  200. '<?php
  201. for (; $u2 < 0; ) {
  202. }
  203. ',
  204. ],
  205. [
  206. '<?php
  207. for (; $u3 < 3; ++$u3) {
  208. }
  209. ',
  210. '<?php
  211. for (; $u3 < 3; ++$u3) {
  212. }
  213. ',
  214. ],
  215. [
  216. '<?php
  217. for ($ui4 = 0; ; ) {
  218. }
  219. ',
  220. '<?php
  221. for ($ui4 = 0; ; ) {
  222. }
  223. ',
  224. ],
  225. [
  226. '<?php
  227. for ($u5 = 0; ; ++$u5) {
  228. }
  229. ',
  230. '<?php
  231. for ($u5 = 0; ; ++$u5) {
  232. }
  233. ',
  234. ],
  235. [
  236. '<?php
  237. for ($u6 = 0; $u6 < 6; ) {
  238. }
  239. ',
  240. '<?php
  241. for ($u6 = 0; $u6 < 6; ) {
  242. }
  243. ',
  244. ],
  245. [
  246. '<?php
  247. for ($u7 = 0; $u7 < 7; ++$u7) {
  248. }
  249. ',
  250. '<?php
  251. for ($u7 = 0; $u7 < 7; ++$u7) {
  252. }
  253. ',
  254. ],
  255. ];
  256. }
  257. /**
  258. * @param string $expected
  259. * @param null|string $input
  260. *
  261. * @dataProvider provideFixWithoutSpacesInEmptyForExpressionsCases
  262. */
  263. public function testFixWithoutSpacesInEmptyForExpressions($expected, $input = null)
  264. {
  265. $this->fixer->configure([
  266. 'remove_in_empty_for_expressions' => true,
  267. ]);
  268. $this->doTest($expected, $input);
  269. }
  270. public function provideFixWithoutSpacesInEmptyForExpressionsCases()
  271. {
  272. return [
  273. [
  274. '<?php
  275. test1();
  276. $a; // test
  277. ',
  278. ],
  279. [
  280. '<?php test2();',
  281. ],
  282. [
  283. '<?php test3(); ',
  284. ],
  285. [
  286. '<?php test4(); ',
  287. ],
  288. [
  289. '<?php
  290. test5(); // test
  291. ',
  292. ],
  293. [
  294. '<?php test6(); /* */ //',
  295. ],
  296. [
  297. '<?php test7a(); /* */',
  298. '<?php test7a();/* */',
  299. ],
  300. [
  301. '<?php test7b(); /* *//**/',
  302. '<?php test7b();/* *//**/',
  303. ],
  304. [
  305. '<?php
  306. test8(); $a = 4;
  307. ',
  308. '<?php
  309. test8(); $a = 4;
  310. ',
  311. ],
  312. [
  313. '<?php
  314. test9(); $b = 7;
  315. ',
  316. '<?php
  317. test9();$b = 7;
  318. ',
  319. ],
  320. [
  321. '<?php
  322. for (;;) {
  323. }
  324. ',
  325. '<?php
  326. for (; ;) {
  327. }
  328. ',
  329. ],
  330. [
  331. '<?php
  332. for (;; ++$u1) {
  333. }
  334. ',
  335. '<?php
  336. for (;;++$u1) {
  337. }
  338. ',
  339. ],
  340. [
  341. '<?php
  342. for (; $u2 < 0;) {
  343. }
  344. ',
  345. '<?php
  346. for (;$u2 < 0;) {
  347. }
  348. ',
  349. ],
  350. [
  351. '<?php
  352. for (; $u3 < 3; ++$u3) {
  353. }
  354. ',
  355. '<?php
  356. for (;$u3 < 3;++$u3) {
  357. }
  358. ',
  359. ],
  360. [
  361. '<?php
  362. for ($u4 = 0;;) {
  363. }
  364. ',
  365. '<?php
  366. for ($u4 = 0; ;) {
  367. }
  368. ',
  369. ],
  370. [
  371. '<?php
  372. for ($u5 = 0;; ++$u5) {
  373. }
  374. ',
  375. '<?php
  376. for ($u5 = 0;;++$u5) {
  377. }
  378. ',
  379. ],
  380. [
  381. '<?php
  382. for ($u6 = 0; $u6 < 6;) {
  383. }
  384. ',
  385. '<?php
  386. for ($u6 = 0;$u6 < 6;) {
  387. }
  388. ',
  389. ],
  390. [
  391. '<?php
  392. for ($u7 = 0; $u7 < 7; ++$u7) {
  393. }
  394. ',
  395. '<?php
  396. for ($u7 = 0;$u7 < 7;++$u7) {
  397. }
  398. ',
  399. ],
  400. [
  401. '<?php
  402. for (;;) {
  403. }
  404. ',
  405. '<?php
  406. for (; ; ) {
  407. }
  408. ',
  409. ],
  410. [
  411. '<?php
  412. for (;; ++$u1) {
  413. }
  414. ',
  415. '<?php
  416. for (; ; ++$u1) {
  417. }
  418. ',
  419. ],
  420. [
  421. '<?php
  422. for (; $u2 < 0;) {
  423. }
  424. ',
  425. '<?php
  426. for (; $u2 < 0; ) {
  427. }
  428. ',
  429. ],
  430. [
  431. '<?php
  432. for (; $u3 < 3; ++$u3) {
  433. }
  434. ',
  435. '<?php
  436. for (; $u3 < 3; ++$u3) {
  437. }
  438. ',
  439. ],
  440. [
  441. '<?php
  442. for ($ui4 = 0;;) {
  443. }
  444. ',
  445. '<?php
  446. for ($ui4 = 0; ; ) {
  447. }
  448. ',
  449. ],
  450. [
  451. '<?php
  452. for ($u5 = 0;; ++$u5) {
  453. }
  454. ',
  455. '<?php
  456. for ($u5 = 0; ; ++$u5) {
  457. }
  458. ',
  459. ],
  460. [
  461. '<?php
  462. for ($u6 = 0; $u6 < 6;) {
  463. }
  464. ',
  465. '<?php
  466. for ($u6 = 0; $u6 < 6; ) {
  467. }
  468. ',
  469. ],
  470. [
  471. '<?php
  472. for ($u7 = 0; $u7 < 7; ++$u7) {
  473. }
  474. ',
  475. '<?php
  476. for ($u7 = 0; $u7 < 7; ++$u7) {
  477. }
  478. ',
  479. ],
  480. [
  481. '<?php
  482. for (
  483. $u7 = 0;
  484. ;
  485. ++$u7
  486. ) {
  487. }
  488. ',
  489. ],
  490. [
  491. '<?php for ( /* foo */ ; /* bar */ ; /* baz */ ) { }',
  492. ],
  493. ];
  494. }
  495. public function testHaltCompiler()
  496. {
  497. $this->doTest('<?php
  498. __HALT_COMPILER();
  499. ');
  500. }
  501. }