HeredocToNowdocFixerTest.php 4.6 KB

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