HeredocToNowdocFixerTest.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  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 <gharlan@web.de>
  16. *
  17. * @internal
  18. *
  19. * @covers \PhpCsFixer\Fixer\StringNotation\HeredocToNowdocFixer
  20. */
  21. final class HeredocToNowdocFixerTest 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 [<<<'EOF'
  33. <?php $a = <<<'TEST'
  34. Foo $bar \n
  35. TEST;
  36. EOF
  37. ];
  38. yield [<<<'EOF'
  39. <?php $a = <<<'TEST'
  40. TEST;
  41. EOF
  42. , <<<'EOF'
  43. <?php $a = <<<TEST
  44. TEST;
  45. EOF
  46. ];
  47. yield [<<<'EOF'
  48. <?php $a = <<<'TEST'
  49. Foo \\ $bar \n
  50. TEST;
  51. EOF
  52. , <<<'EOF'
  53. <?php $a = <<<TEST
  54. Foo \\\\ \$bar \\n
  55. TEST;
  56. EOF
  57. ];
  58. yield [<<<'EOF'
  59. <?php $a = <<<'TEST'
  60. Foo
  61. TEST;
  62. EOF
  63. , <<<'EOF'
  64. <?php $a = <<<"TEST"
  65. Foo
  66. TEST;
  67. EOF
  68. ];
  69. yield [<<<'EOF'
  70. <?php $a = <<<TEST
  71. Foo $bar
  72. TEST;
  73. EOF
  74. ];
  75. yield [<<<'EOF'
  76. <?php $a = <<<TEST
  77. Foo \\$bar
  78. TEST;
  79. EOF
  80. ];
  81. yield [<<<'EOF'
  82. <?php $a = <<<TEST
  83. Foo \n $bar
  84. TEST;
  85. EOF
  86. ];
  87. yield [<<<'EOF'
  88. <?php $a = <<<TEST
  89. Foo \x00 $bar
  90. TEST;
  91. EOF
  92. ];
  93. yield [<<<'EOF'
  94. <?php
  95. $html = <<< 'HTML'
  96. a
  97. HTML;
  98. EOF
  99. , <<<'EOF'
  100. <?php
  101. $html = <<< HTML
  102. a
  103. HTML;
  104. EOF
  105. ];
  106. yield [<<<'EOF'
  107. <?php $a = <<< 'TEST'
  108. Foo
  109. TEST;
  110. EOF
  111. , <<<'EOF'
  112. <?php $a = <<< "TEST"
  113. Foo
  114. TEST;
  115. EOF
  116. ];
  117. yield [<<<EOF
  118. <?php echo <<<'TEST'\r\nFoo\r\nTEST;
  119. EOF
  120. , <<<EOF
  121. <?php echo <<<TEST\r\nFoo\r\nTEST;
  122. EOF
  123. ];
  124. yield [<<<'EOF'
  125. <?php $a = b<<<'TEST'
  126. Foo $bar \n
  127. TEST;
  128. EOF
  129. ];
  130. yield [<<<'EOF'
  131. <?php $a = b<<<'TEST'
  132. TEST;
  133. EOF
  134. , <<<'EOF'
  135. <?php $a = b<<<TEST
  136. TEST;
  137. EOF
  138. ];
  139. yield [<<<'EOF'
  140. <?php $a = b<<<'TEST'
  141. Foo \\ $bar \n
  142. TEST;
  143. EOF
  144. , <<<'EOF'
  145. <?php $a = b<<<TEST
  146. Foo \\\\ \$bar \\n
  147. TEST;
  148. EOF
  149. ];
  150. yield [<<<'EOF'
  151. <?php $a = b<<<'TEST'
  152. Foo
  153. TEST;
  154. EOF
  155. , <<<'EOF'
  156. <?php $a = b<<<"TEST"
  157. Foo
  158. TEST;
  159. EOF
  160. ];
  161. yield [<<<'EOF'
  162. <?php $a = b<<<TEST
  163. Foo $bar
  164. TEST;
  165. EOF
  166. ];
  167. yield [<<<'EOF'
  168. <?php $a = b<<<TEST
  169. Foo \\$bar
  170. TEST;
  171. EOF
  172. ];
  173. yield [<<<'EOF'
  174. <?php $a = b<<<TEST
  175. Foo \n $bar
  176. TEST;
  177. EOF
  178. ];
  179. yield [<<<'EOF'
  180. <?php $a = b<<<TEST
  181. Foo \x00 $bar
  182. TEST;
  183. EOF
  184. ];
  185. yield [<<<'EOF'
  186. <?php
  187. $html = b<<< 'HTML'
  188. a
  189. HTML;
  190. EOF
  191. , <<<'EOF'
  192. <?php
  193. $html = b<<< HTML
  194. a
  195. HTML;
  196. EOF
  197. ];
  198. yield [<<<'EOF'
  199. <?php $a = b<<< 'TEST'
  200. Foo
  201. TEST;
  202. EOF
  203. , <<<'EOF'
  204. <?php $a = b<<< "TEST"
  205. Foo
  206. TEST;
  207. EOF
  208. ];
  209. yield [<<<EOF
  210. <?php echo b<<<'TEST'\r\nFoo\r\nTEST;
  211. EOF
  212. , <<<EOF
  213. <?php echo b<<<TEST\r\nFoo\r\nTEST;
  214. EOF
  215. ];
  216. yield [<<<'EOF'
  217. <?php $a = B<<<'TEST'
  218. Foo $bar \n
  219. TEST;
  220. EOF
  221. ];
  222. yield [<<<'EOF'
  223. <?php $a = B<<<'TEST'
  224. TEST;
  225. EOF
  226. , <<<'EOF'
  227. <?php $a = B<<<TEST
  228. TEST;
  229. EOF
  230. ];
  231. yield [<<<'EOF'
  232. <?php $a = B<<<'TEST'
  233. Foo \\ $bar \n
  234. TEST;
  235. EOF
  236. , <<<'EOF'
  237. <?php $a = B<<<TEST
  238. Foo \\\\ \$bar \\n
  239. TEST;
  240. EOF
  241. ];
  242. yield [<<<'EOF'
  243. <?php $a = B<<<'TEST'
  244. Foo
  245. TEST;
  246. EOF
  247. , <<<'EOF'
  248. <?php $a = B<<<"TEST"
  249. Foo
  250. TEST;
  251. EOF
  252. ];
  253. yield [<<<'EOF'
  254. <?php $a = B<<<TEST
  255. Foo $bar
  256. TEST;
  257. EOF
  258. ];
  259. yield [<<<'EOF'
  260. <?php $a = B<<<TEST
  261. Foo \\$bar
  262. TEST;
  263. EOF
  264. ];
  265. yield [<<<'EOF'
  266. <?php $a = B<<<TEST
  267. Foo \n $bar
  268. TEST;
  269. EOF
  270. ];
  271. yield [<<<'EOF'
  272. <?php $a = B<<<TEST
  273. Foo \x00 $bar
  274. TEST;
  275. EOF
  276. ];
  277. yield [<<<'EOF'
  278. <?php
  279. $html = B<<< 'HTML'
  280. a
  281. HTML;
  282. EOF
  283. , <<<'EOF'
  284. <?php
  285. $html = B<<< HTML
  286. a
  287. HTML;
  288. EOF
  289. ];
  290. yield [<<<'EOF'
  291. <?php $a = B<<< 'TEST'
  292. Foo
  293. TEST;
  294. EOF
  295. , <<<'EOF'
  296. <?php $a = B<<< "TEST"
  297. Foo
  298. TEST;
  299. EOF
  300. ];
  301. yield [<<<EOF
  302. <?php echo B<<<'TEST'\r\nFoo\r\nTEST;
  303. EOF
  304. , <<<EOF
  305. <?php echo B<<<TEST\r\nFoo\r\nTEST;
  306. EOF
  307. ];
  308. }
  309. }