1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460 |
- <?php
- declare(strict_types=1);
- /*
- * This file is part of PHP CS Fixer.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- * Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace PhpCsFixer\Tests\Fixer\LanguageConstruct;
- use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException;
- use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
- /**
- * @author Andreas Möller <am@localheinz.com>
- *
- * @internal
- *
- * @covers \PhpCsFixer\Fixer\LanguageConstruct\SingleSpaceAfterConstructFixer
- */
- final class SingleSpaceAfterConstructFixerTest extends AbstractFixerTestCase
- {
- /**
- * @dataProvider provideConfigureRejectsInvalidControlStatementCases
- *
- * @param mixed $construct
- */
- public function testConfigureRejectsInvalidControlStatement($construct): void
- {
- $this->expectException(InvalidFixerConfigurationException::class);
- $this->fixer->configure([
- 'constructs' => [
- $construct,
- ],
- ]);
- }
- public static function provideConfigureRejectsInvalidControlStatementCases(): iterable
- {
- yield 'null' => [null];
- yield 'false' => [false];
- yield 'true' => [true];
- yield 'int' => [0];
- yield 'float' => [3.14];
- yield 'array' => [[]];
- yield 'object' => [new \stdClass()];
- yield 'unknown' => ['foo'];
- }
- /**
- * @dataProvider provideFixWithAbstractCases
- */
- public function testFixWithAbstract(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'abstract',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithAbstractCases(): iterable
- {
- yield [
- '<?php abstract class Foo {}; if($a){}',
- '<?php abstract class Foo {}; if($a){}',
- ];
- yield [
- '<?php abstract class Foo {};',
- '<?php abstract
- class Foo {};',
- ];
- yield [
- '<?php abstract /* foo */class Foo {};',
- '<?php abstract/* foo */class Foo {};',
- ];
- yield [
- '<?php abstract /* foo */class Foo {};',
- '<?php abstract /* foo */class Foo {};',
- ];
- yield [
- '<?php
- abstract class Foo
- {
- abstract function bar();
- }',
- '<?php
- abstract class Foo
- {
- abstract function bar();
- }',
- ];
- yield [
- '<?php
- abstract class Foo
- {
- abstract function bar();
- }',
- '<?php
- abstract class Foo
- {
- abstract
- function bar();
- }',
- ];
- yield [
- '<?php
- abstract class Foo
- {
- abstract /* foo */function bar();
- }',
- '<?php
- abstract class Foo
- {
- abstract /* foo */function bar();
- }',
- ];
- yield [
- '<?php
- abstract class Foo
- {
- abstract /* foo */function bar();
- }',
- '<?php
- abstract class Foo
- {
- abstract/* foo */function bar();
- }',
- ];
- }
- /**
- * @dataProvider provideFixWithBreakCases
- */
- public function testFixWithBreak(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'break',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithBreakCases(): iterable
- {
- yield [
- '<?php while (true) { break; }',
- ];
- yield [
- '<?php while (true) { break /* foo */; }',
- '<?php while (true) { break/* foo */; }',
- ];
- yield [
- '<?php while (true) { break /* foo */; }',
- '<?php while (true) { break /* foo */; }',
- ];
- yield [
- '<?php while (true) { break 1; }',
- '<?php while (true) { break 1; }',
- ];
- yield [
- '<?php while (true) { break 1; }',
- '<?php while (true) { break
- 1; }',
- ];
- yield [
- '<?php while (true) { break /* foo */1; }',
- '<?php while (true) { break/* foo */1; }',
- ];
- yield [
- '<?php while (true) { break /* foo */1; }',
- '<?php while (true) { break /* foo */1; }',
- ];
- }
- /**
- * @dataProvider provideFixWithAsCases
- */
- public function testFixWithAs(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'as',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithAsCases(): iterable
- {
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach ($foo as$bar) {}',
- ];
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach ($foo as $bar) {}',
- ];
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach ($foo as
- $bar) {}',
- ];
- yield [
- '<?php foreach ($foo as /* foo */$bar) {}',
- '<?php foreach ($foo as/* foo */$bar) {}',
- ];
- yield [
- '<?php foreach ($foo as /* foo */$bar) {}',
- '<?php foreach ($foo as /* foo */$bar) {}',
- ];
- yield [
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as bar;
- }
- }',
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as bar;
- }
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as bar;
- }
- }',
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as
- bar;
- }
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as /* foo */bar;
- }
- }',
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as/* foo */bar;
- }
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as /* foo */bar;
- }
- }',
- '<?php
- class Foo
- {
- use Bar {
- Bar::baz as /* foo */bar;
- }
- }',
- ];
- }
- /**
- * @dataProvider provideFixWithCaseCases
- */
- public function testFixWithCase(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'case',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithCaseCases(): iterable
- {
- yield [
- '<?php
- switch ($i) {
- case $j:
- break;
- }',
- '<?php
- switch ($i) {
- case$j:
- break;
- }',
- ];
- yield [
- '<?php
- switch ($i) {
- case 0:
- break;
- }',
- '<?php
- switch ($i) {
- case 0:
- break;
- }',
- ];
- yield [
- '<?php
- switch ($i) {
- case 0:
- break;
- }',
- '<?php
- switch ($i) {
- case
- 0:
- break;
- }',
- ];
- yield [
- '<?php
- switch ($i) {
- case /* foo */0:
- break;
- }',
- '<?php
- switch ($i) {
- case/* foo */0:
- break;
- }',
- ];
- }
- /**
- * @dataProvider provideFixWithCatchCases
- */
- public function testFixWithCatch(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'catch',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithCatchCases(): iterable
- {
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try {} catch(\Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try {} catch (\Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try {} catch
- (\Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch /* foo */(Exception $exception) {}',
- '<?php try {} catch/* foo */(Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch /* foo */(Exception $exception) {}',
- '<?php try {} catch /* foo */(Exception $exception) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithClassCases
- */
- public function testFixWithClass(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'class',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithClassCases(): iterable
- {
- yield [
- '<?php class Foo {}',
- '<?php class Foo {}',
- ];
- yield [
- '<?php class Foo {}',
- '<?php class
- Foo {}',
- ];
- yield [
- '<?php class /* foo */Foo {}',
- '<?php class /* foo */Foo {}',
- ];
- yield [
- '<?php class /* foo */Foo {}',
- '<?php class/* foo */Foo {}',
- ];
- yield [
- '<?php $foo = stdClass::class;',
- ];
- yield [
- '<?php $foo = new class {};',
- '<?php $foo = new class {};',
- ['constructs' => ['class']],
- ];
- yield [
- '<?php $foo = new class {};',
- '<?php $foo = new class{};',
- ['constructs' => ['class']],
- ];
- yield [
- '<?php $foo = new class /* foo */{};',
- '<?php $foo = new class/* foo */{};',
- ['constructs' => ['class']],
- ];
- yield [
- '<?php $foo = new class /* foo */{};',
- '<?php $foo = new class /* foo */{};',
- ['constructs' => ['class']],
- ];
- yield [
- '<?php $foo = new class(){};',
- null,
- ['constructs' => ['class']],
- ];
- yield [
- '<?php return
- $a ? new class(){ public function foo() { echo 1; }}
- : 1
- ;',
- null,
- ['constructs' => ['return']],
- ];
- }
- /**
- * @dataProvider provideFixWithContinueCases
- */
- public function testFixWithContinue(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'continue',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithContinueCases(): iterable
- {
- yield [
- '<?php while (true) { continue; }',
- ];
- yield [
- '<?php while (true) { continue /* foo */; }',
- '<?php while (true) { continue/* foo */; }',
- ];
- yield [
- '<?php while (true) { continue /* foo */; }',
- '<?php while (true) { continue /* foo */; }',
- ];
- yield [
- '<?php while (true) { continue 1; }',
- '<?php while (true) { continue 1; }',
- ];
- yield [
- '<?php while (true) { continue 1; }',
- '<?php while (true) { continue
- 1; }',
- ];
- yield [
- '<?php while (true) { continue /* foo*/ 1; }',
- '<?php while (true) { continue /* foo*/ 1; }',
- ];
- }
- /**
- * @dataProvider provideFixWithConstCases
- */
- public function testFixWithConst(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'const',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithConstCases(): iterable
- {
- yield [
- '<?php class Foo { const FOO = 9000; }',
- '<?php class Foo { const FOO = 9000; }',
- ];
- yield [
- '<?php class Foo { const FOO = 9000; }',
- '<?php class Foo { const
- FOO = 9000; }',
- ];
- yield [
- '<?php class Foo { const /* foo */FOO = 9000; }',
- '<?php class Foo { const/* foo */FOO = 9000; }',
- ];
- yield [
- '<?php class Foo { const /* foo */FOO = 9000; }',
- '<?php class Foo { const /* foo */FOO = 9000; }',
- ];
- yield ['<?php class Foo {
- const
- FOO = 9000,
- BAR = 10000;
- }',
- ];
- yield [
- '<?php
- const
- A = 3,
- B = 3
- ?>',
- ];
- yield [
- '<?php
- const A = 3 ?>
- <?php
- [ ,
- ,
- ,$z
- ] = foo() ;',
- '<?php
- const A = 3 ?>
- <?php
- [ ,
- ,
- ,$z
- ] = foo() ;',
- ];
- yield [
- '<?php
- const A
- =
- 1;
- ',
- '<?php
- const
- A
- =
- 1;
- ',
- ];
- }
- /**
- * @dataProvider provideFixWithConstImportCases
- */
- public function testFixWithConstImport(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'const_import',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithConstImportCases(): iterable
- {
- yield [
- '<?php use const FOO\BAR;',
- '<?php use const FOO\BAR;',
- ];
- yield [
- '<?php use const FOO\BAR;',
- '<?php use const
- FOO\BAR;',
- ];
- yield [
- '<?php use const /* foo */FOO\BAR;',
- '<?php use const/* foo */FOO\BAR;',
- ];
- yield [
- '<?php use const /* foo */FOO\BAR;',
- '<?php use const /* foo */FOO\BAR;',
- ];
- }
- /**
- * @dataProvider provideFixWithCloneCases
- */
- public function testFixWithClone(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'clone',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithCloneCases(): iterable
- {
- yield [
- '<?php clone $foo;',
- '<?php clone$foo;',
- ];
- yield [
- '<?php clone $foo;',
- '<?php clone $foo;',
- ];
- yield [
- '<?php clone $foo;',
- '<?php clone
- $foo;',
- ];
- yield [
- '<?php clone /* foo */$foo;',
- '<?php clone/* foo */$foo;',
- ];
- }
- /**
- * @dataProvider provideFixWithDoCases
- */
- public function testFixWithDo(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'do',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithDoCases(): iterable
- {
- yield [
- '<?php do {} while (true);',
- '<?php do{} while (true);',
- ];
- yield [
- '<?php DO {} while (true);',
- '<?php DO{} while (true);',
- ];
- yield [
- '<?php do {} while (true);',
- '<?php do {} while (true);',
- ];
- yield [
- '<?php do {} while (true);',
- '<?php do
- {} while (true);',
- ];
- yield [
- '<?php do /* foo*/{} while (true);',
- '<?php do/* foo*/{} while (true);',
- ];
- yield [
- '<?php do /* foo*/{} while (true);',
- '<?php do /* foo*/{} while (true);',
- ];
- }
- /**
- * @dataProvider provideFixWithEchoCases
- */
- public function testFixWithEcho(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'echo',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithEchoCases(): iterable
- {
- yield [
- '<?php echo $foo;',
- '<?php echo$foo;',
- ];
- yield [
- '<?php echo 9000;',
- '<?php echo 9000;',
- ];
- yield [
- '<?php echo 9000;',
- '<?php echo
- 9000;',
- ];
- yield [
- '<?php ECHO /* foo */9000;',
- '<?php ECHO/* foo */9000;',
- ];
- }
- /**
- * @dataProvider provideFixWithElseCases
- */
- public function testFixWithElse(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'else',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithElseCases(): iterable
- {
- yield [
- '<?php if (true) {} else {}',
- '<?php if (true) {} else{}',
- ];
- yield [
- '<?php if (true) {} else {}',
- '<?php if (true) {} else {}',
- ];
- yield [
- '<?php if (true) {} else {}',
- '<?php if (true) {} else
- {}',
- ];
- yield [
- '<?php if (true) {} else /* foo */{}',
- '<?php if (true) {} else/* foo */{}',
- ];
- }
- /**
- * @dataProvider provideFixWithElseIfCases
- */
- public function testFixWithElseIf(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'elseif',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithElseIfCases(): iterable
- {
- yield [
- '<?php if (true) {} elseif (false) {}',
- '<?php if (true) {} elseif(false) {}',
- ];
- yield [
- '<?php if (true) {} elseif (false) {}',
- '<?php if (true) {} elseif (false) {}',
- ];
- yield [
- '<?php if (true) {} elseif (false) {}',
- '<?php if (true) {} elseif
- (false) {}',
- ];
- yield [
- '<?php if (true) {} elseif /* foo */(false) {}',
- '<?php if (true) {} elseif/* foo */(false) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithExtendsCases
- */
- public function testFixWithExtends(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'extends',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithExtendsCases(): iterable
- {
- yield [
- '<?php class Foo extends \InvalidArgumentException {}',
- '<?php class Foo extends \InvalidArgumentException {}',
- ];
- yield [
- '<?php class Foo extends \InvalidArgumentException {}',
- '<?php class Foo extends
- \InvalidArgumentException {}',
- ];
- yield [
- '<?php class Foo extends /* foo */\InvalidArgumentException {}',
- '<?php class Foo extends/* foo */\InvalidArgumentException {}',
- ];
- yield [
- '<?php class Foo extends /* foo */\InvalidArgumentException {}',
- '<?php class Foo extends /* foo */\InvalidArgumentException {}',
- ];
- yield [
- '<?php interface Foo extends Bar1 {}',
- '<?php interface Foo extends Bar1 {}',
- ];
- yield [
- '<?php interface Foo extends Bar2 {}',
- '<?php interface Foo extends
- Bar2 {}',
- ];
- yield [
- '<?php interface Foo extends /* foo */Bar3 {}',
- '<?php interface Foo extends/* foo */Bar3 {}',
- ];
- yield [
- '<?php interface Foo extends /* foo */Bar4 {}',
- '<?php interface Foo extends /* foo */Bar4 {}',
- ];
- yield [
- '<?php interface Foo extends Bar5, Baz, Qux {}',
- '<?php interface Foo extends Bar5, Baz, Qux {}',
- ];
- yield [
- '<?php interface Foo extends Bar6, Baz, Qux {}',
- '<?php interface Foo extends
- Bar6, Baz, Qux {}',
- ];
- yield [
- '<?php interface Foo extends /* foo */Bar7, Baz, Qux {}',
- '<?php interface Foo extends/* foo */Bar7, Baz, Qux {}',
- ];
- yield [
- '<?php interface Foo extends /* foo */Bar8, Baz, Qux {}',
- '<?php interface Foo extends /* foo */Bar8, Baz, Qux {}',
- ];
- yield [
- '<?php interface Foo extends
- Bar9,
- Baz,
- Qux
- {}',
- ];
- yield [
- '<?php $foo = new class extends \InvalidArgumentException {};',
- '<?php $foo = new class extends \InvalidArgumentException {};',
- ];
- yield [
- '<?php $foo = new class extends \InvalidArgumentException {};',
- '<?php $foo = new class extends
- \InvalidArgumentException {};',
- ];
- yield [
- '<?php $foo = new class extends /* foo */\InvalidArgumentException {};',
- '<?php $foo = new class extends/* foo */\InvalidArgumentException {};',
- ];
- yield [
- '<?php $foo = new class extends /* foo */\InvalidArgumentException {};',
- '<?php $foo = new class extends /* foo */\InvalidArgumentException {};',
- ];
- }
- /**
- * @dataProvider provideFixWithFinalCases
- */
- public function testFixWithFinal(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'final',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithFinalCases(): iterable
- {
- yield [
- '<?php final class Foo {}',
- '<?php final class Foo {}',
- ];
- yield [
- '<?php final class Foo {}',
- '<?php final
- class Foo {}',
- ];
- yield [
- '<?php final /* foo */class Foo {}',
- '<?php final/* foo */class Foo {}',
- ];
- yield [
- '<?php final /* foo */class Foo {}',
- '<?php final /* foo */class Foo {}',
- ];
- yield [
- '<?php
- class Foo
- {
- final function bar() {}
- }',
- '<?php
- class Foo
- {
- final function bar() {}
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- final function bar() {}
- }',
- '<?php
- class Foo
- {
- final
- function bar() {}
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- final /* foo */function bar() {}
- }',
- '<?php
- class Foo
- {
- final/* foo */function bar() {}
- }',
- ];
- yield [
- '<?php
- class Foo
- {
- final /* foo */function bar() {}
- }',
- '<?php
- class Foo
- {
- final /* foo */function bar() {}
- }',
- ];
- }
- /**
- * @dataProvider provideFixWithFinallyCases
- */
- public function testFixWithFinally(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'finally',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithFinallyCases(): iterable
- {
- yield [
- '<?php try {} finally {}',
- '<?php try {} finally{}',
- ];
- yield [
- '<?php try {} finally {}',
- '<?php try {} finally {}',
- ];
- yield [
- '<?php try {} finally {}',
- '<?php try {} finally
- {}',
- ];
- yield [
- '<?php try {} finally /* foo */{}',
- '<?php try {} finally/* foo */{}',
- ];
- yield [
- '<?php try {} finally /* foo */{}',
- '<?php try {} finally /* foo */{}',
- ];
- }
- /**
- * @dataProvider provideFixWithForCases
- */
- public function testFixWithFor(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'for',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithForCases(): iterable
- {
- yield [
- '<?php for ($i = 0; $i < 3; ++$i) {}',
- '<?php for($i = 0; $i < 3; ++$i) {}',
- ];
- yield [
- '<?php for ($i = 0; $i < 3; ++$i) {}',
- '<?php for ($i = 0; $i < 3; ++$i) {}',
- ];
- yield [
- '<?php for ($i = 0; $i < 3; ++$i) {}',
- '<?php for
- ($i = 0; $i < 3; ++$i) {}',
- ];
- yield [
- '<?php for /* foo */($i = 0; $i < 3; ++$i) {}',
- '<?php for/* foo */($i = 0; $i < 3; ++$i) {}',
- ];
- yield [
- '<?php for /* foo */($i = 0; $i < 3; ++$i) {}',
- '<?php for /* foo */($i = 0; $i < 3; ++$i) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithForeachCases
- */
- public function testFixWithForeach(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'foreach',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithForeachCases(): iterable
- {
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach($foo as $bar) {}',
- ];
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach ($foo as $bar) {}',
- ];
- yield [
- '<?php foreach ($foo as $bar) {}',
- '<?php foreach
- ($foo as $bar) {}',
- ];
- yield [
- '<?php foreach /* foo */($foo as $bar) {}',
- '<?php foreach/* foo */($foo as $bar) {}',
- ];
- yield [
- '<?php foreach /* foo */($foo as $bar) {}',
- '<?php foreach /* foo */($foo as $bar) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithFunctionCases
- */
- public function testFixWithFunction(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'function',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithFunctionCases(): iterable
- {
- yield [
- '<?php function foo() {}',
- '<?php function foo() {}',
- ];
- yield [
- '<?php function foo() {}',
- '<?php function
- foo() {}',
- ];
- yield [
- '<?php function /* foo */foo() {}',
- '<?php function/* foo */foo() {}',
- ];
- yield [
- '<?php function /* foo */foo() {}',
- '<?php function /* foo */foo() {}',
- ];
- yield [
- '<?php
- class Foo
- {
- function bar() {}
- }
- ',
- '<?php
- class Foo
- {
- function bar() {}
- }
- ',
- ];
- yield [
- '<?php
- class Foo
- {
- function bar() {}
- }
- ',
- '<?php
- class Foo
- {
- function
- bar() {}
- }
- ',
- ];
- yield [
- '<?php
- class Foo
- {
- function /* foo */bar() {}
- }
- ',
- '<?php
- class Foo
- {
- function/* foo */bar() {}
- }
- ',
- ];
- yield [
- '<?php
- class Foo
- {
- function /* foo */bar() {}
- }
- ',
- '<?php
- class Foo
- {
- function /* foo */bar() {}
- }
- ',
- ];
- }
- /**
- * @dataProvider provideFixWithFunctionImportCases
- */
- public function testFixWithFunctionImport(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'function_import',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithFunctionImportCases(): iterable
- {
- yield [
- '<?php use function Foo\bar;',
- '<?php use function Foo\bar;',
- ];
- yield [
- '<?php use function Foo\bar;',
- '<?php use function
- Foo\bar;',
- ];
- yield [
- '<?php use function /* foo */Foo\bar;',
- '<?php use function/* foo */Foo\bar;',
- ];
- yield [
- '<?php use function /* foo */Foo\bar;',
- '<?php use function /* foo */Foo\bar;',
- ];
- }
- /**
- * @dataProvider provideFixWithGlobalCases
- */
- public function testFixWithGlobal(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'global',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithGlobalCases(): iterable
- {
- yield [
- '<?php function foo() { global $bar; }',
- '<?php function foo() { global$bar; }',
- ];
- yield [
- '<?php function foo() { global $bar; }',
- '<?php function foo() { global $bar; }',
- ];
- yield [
- '<?php function foo() { global $bar; }',
- '<?php function foo() { global
- $bar; }',
- ];
- yield [
- '<?php function foo() { global /* foo */$bar; }',
- '<?php function foo() { global/* foo */$bar; }',
- ];
- yield [
- '<?php function foo() { global /* foo */$bar; }',
- '<?php function foo() { global /* foo */$bar; }',
- ];
- }
- /**
- * @dataProvider provideFixWithGotoCases
- */
- public function testFixWithGoto(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'goto',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithGotoCases(): iterable
- {
- yield [
- '<?php goto foo; foo: echo "Bar";',
- '<?php goto foo; foo: echo "Bar";',
- ];
- yield [
- '<?php goto foo; foo: echo "Bar";',
- '<?php goto
- foo; foo: echo "Bar";',
- ];
- yield [
- '<?php goto /* foo */foo; foo: echo "Bar";',
- '<?php goto/* foo */foo; foo: echo "Bar";',
- ];
- }
- /**
- * @dataProvider provideFixWithIfCases
- */
- public function testFixWithIf(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'if',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithIfCases(): iterable
- {
- yield [
- '<?php if ($foo === $bar) {}',
- '<?php if($foo === $bar) {}',
- ];
- yield [
- '<?php if ($foo === $bar) {}',
- '<?php if ($foo === $bar) {}',
- ];
- yield [
- '<?php if ($foo === $bar) {}',
- '<?php if
- ($foo === $bar) {}',
- ];
- yield [
- '<?php if /* foo */($foo === $bar) {}',
- '<?php if/* foo */($foo === $bar) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithImplementsCases
- */
- public function testFixWithImplements(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'implements',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithImplementsCases(): iterable
- {
- yield [
- '<?php class Foo implements \Countable {}',
- '<?php class Foo implements \Countable {}',
- ];
- yield [
- '<?php class Foo implements \Countable {}',
- '<?php class Foo implements
- \Countable {}',
- ];
- yield [
- '<?php class Foo implements /* foo */\Countable {}',
- '<?php class Foo implements/* foo */\Countable {}',
- ];
- yield [
- '<?php class Foo implements /* foo */\Countable {}',
- '<?php class Foo implements /* foo */\Countable {}',
- ];
- yield [
- '<?php class Foo implements
- \Countable,
- Bar,
- Baz
- {}',
- ];
- yield [
- '<?php $foo = new class implements \Countable {};',
- '<?php $foo = new class implements \Countable {};',
- ];
- yield [
- '<?php $foo = new class implements \Countable {};',
- '<?php $foo = new class implements
- \Countable {};',
- ];
- yield [
- '<?php $foo = new class implements /* foo */\Countable {};',
- '<?php $foo = new class implements/* foo */\Countable {};',
- ];
- yield [
- '<?php $foo = new class implements /* foo */\Countable {};',
- '<?php $foo = new class implements /* foo */\Countable {};',
- ];
- }
- /**
- * @dataProvider provideFixWithIncludeCases
- */
- public function testFixWithInclude(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'include',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithIncludeCases(): iterable
- {
- yield [
- '<?php include "vendor/autoload.php";',
- '<?php include"vendor/autoload.php";',
- ];
- yield [
- '<?php include "vendor/autoload.php";',
- '<?php include "vendor/autoload.php";',
- ];
- yield [
- '<?php include "vendor/autoload.php";',
- '<?php include
- "vendor/autoload.php";',
- ];
- yield [
- '<?php include /* foo */"vendor/autoload.php";',
- '<?php include/* foo */"vendor/autoload.php";',
- ];
- }
- /**
- * @dataProvider provideFixWithIncludeOnceCases
- */
- public function testFixWithIncludeOnce(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'include_once',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithIncludeOnceCases(): iterable
- {
- yield [
- '<?php include_once "vendor/autoload.php";',
- '<?php include_once"vendor/autoload.php";',
- ];
- yield [
- '<?php include_once "vendor/autoload.php";',
- '<?php include_once "vendor/autoload.php";',
- ];
- yield [
- '<?php include_once "vendor/autoload.php";',
- '<?php include_once
- "vendor/autoload.php";',
- ];
- yield [
- '<?php include_once /* foo */"vendor/autoload.php";',
- '<?php include_once/* foo */"vendor/autoload.php";',
- ];
- }
- /**
- * @dataProvider provideFixWithInstanceofCases
- */
- public function testFixWithInstanceof(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'instanceof',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithInstanceofCases(): iterable
- {
- yield [
- '<?php $foo instanceof \stdClass;',
- '<?php $foo instanceof \stdClass;',
- ];
- yield [
- '<?php $foo instanceof \stdClass;',
- '<?php $foo instanceof
- \stdClass;',
- ];
- yield [
- '<?php $foo instanceof /* foo */\stdClass;',
- '<?php $foo instanceof/* foo */\stdClass;',
- ];
- yield [
- '<?php $foo instanceof /* foo */\stdClass;',
- '<?php $foo instanceof /* foo */\stdClass;',
- ];
- yield [
- '<?php $foo instanceof $bar;',
- '<?php $foo instanceof$bar;',
- ];
- }
- /**
- * @dataProvider provideFixWithInsteadofCases
- */
- public function testFixWithInsteadof(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'insteadof',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithInsteadofCases(): iterable
- {
- yield [
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof A;
- A::bigTalk insteadof B;
- }
- }',
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof A;
- A::bigTalk insteadof B;
- }
- }',
- ];
- yield [
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof A;
- A::bigTalk insteadof B;
- }
- }',
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof
- A;
- A::bigTalk insteadof B;
- }
- }',
- ];
- yield [
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof /* foo */A;
- A::bigTalk insteadof B;
- }
- }',
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof/* foo */A;
- A::bigTalk insteadof B;
- }
- }',
- ];
- yield [
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof /* foo */A;
- A::bigTalk insteadof B;
- }
- }',
- '<?php
- class Talker {
- use A, B {
- B::smallTalk insteadof /* foo */A;
- A::bigTalk insteadof B;
- }
- }',
- ];
- }
- /**
- * @dataProvider provideFixWithInterfaceCases
- */
- public function testFixWithInterface(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'interface',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithInterfaceCases(): iterable
- {
- yield [
- '<?php interface Foo {}',
- '<?php interface Foo {}',
- ];
- yield [
- '<?php interface Foo {}',
- '<?php interface
- Foo {}',
- ];
- yield [
- '<?php interface /* foo */Foo {}',
- '<?php interface /* foo */Foo {}',
- ];
- yield [
- '<?php interface /* foo */Foo {}',
- '<?php interface/* foo */Foo {}',
- ];
- }
- /**
- * @dataProvider provideFixWithNewCases
- */
- public function testFixWithNew(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'new',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithNewCases(): iterable
- {
- yield [
- '<?php new $foo();',
- '<?php new$foo();',
- ];
- yield [
- '<?php new Bar();',
- '<?php new Bar();',
- ];
- yield [
- '<?php new Bar();',
- '<?php new
- Bar();',
- ];
- yield [
- '<?php new /* foo */Bar();',
- '<?php new/* foo */Bar();',
- ];
- }
- /**
- * @dataProvider provideFixWithOpenTagWithEchoCases
- */
- public function testFixWithOpenTagWithEcho(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'open_tag_with_echo',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithOpenTagWithEchoCases(): iterable
- {
- yield [
- '<?= $foo ?>',
- '<?=$foo ?>',
- ];
- yield [
- '<?= $foo ?>',
- '<?= $foo ?>',
- ];
- yield [
- '<?= $foo ?>',
- '<?=
- $foo ?>',
- ];
- yield [
- '<?= /* foo */$foo ?>',
- '<?=/* foo */$foo ?>',
- ];
- yield [
- '<?= /* foo */$foo ?>',
- '<?= /* foo */$foo ?>',
- ];
- }
- /**
- * @dataProvider provideFixWithPrintCases
- */
- public function testFixWithPrint(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'print',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithPrintCases(): iterable
- {
- yield [
- '<?php print $foo;',
- '<?php print$foo;',
- ];
- yield [
- '<?php print 9000;',
- '<?php print 9000;',
- ];
- yield [
- '<?php print 9000;',
- '<?php print
- 9000;',
- ];
- yield [
- '<?php print /* foo */9000;',
- '<?php print/* foo */9000;',
- ];
- }
- /**
- * @dataProvider provideFixWithPrivateCases
- */
- public function testFixWithPrivate(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'private',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithPrivateCases(): iterable
- {
- yield [
- '<?php class Foo { private $bar; }',
- '<?php class Foo { private$bar; }',
- ];
- yield [
- '<?php class Foo { private $bar; }',
- '<?php class Foo { private $bar; }',
- ];
- yield [
- '<?php class Foo { private $bar; }',
- '<?php class Foo { private
- $bar; }',
- ];
- yield [
- '<?php class Foo { private /* foo */$bar; }',
- '<?php class Foo { private/* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { private /* foo */$bar; }',
- '<?php class Foo { private /* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { private function bar() {} }',
- '<?php class Foo { private function bar() {} }',
- ];
- yield [
- '<?php class Foo { private function bar() {} }',
- '<?php class Foo { private
- function bar() {} }',
- ];
- yield [
- '<?php class Foo { private /* foo */function bar() {} }',
- '<?php class Foo { private/* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { private /* foo */function bar() {} }',
- '<?php class Foo { private /* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { private CONST BAR = 9000; }',
- '<?php class Foo { private CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { private CONST BAR = 9000; }',
- '<?php class Foo { private
- CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { private /* foo */CONST BAR = 9000; }',
- '<?php class Foo { private/* foo */CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { private /* foo */CONST BAR = 9000; }',
- '<?php class Foo { private /* foo */CONST BAR = 9000; }',
- ];
- }
- /**
- * @dataProvider provideFixWithProtectedCases
- */
- public function testFixWithProtected(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'protected',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithProtectedCases(): iterable
- {
- yield [
- '<?php class Foo { protected $bar; }',
- '<?php class Foo { protected$bar; }',
- ];
- yield [
- '<?php class Foo { protected $bar; }',
- '<?php class Foo { protected $bar; }',
- ];
- yield [
- '<?php class Foo { protected $bar; }',
- '<?php class Foo { protected
- $bar; }',
- ];
- yield [
- '<?php class Foo { protected /* foo */$bar; }',
- '<?php class Foo { protected/* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { protected /* foo */$bar; }',
- '<?php class Foo { protected /* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { protected function bar() {} }',
- '<?php class Foo { protected function bar() {} }',
- ];
- yield [
- '<?php class Foo { protected function bar() {} }',
- '<?php class Foo { protected
- function bar() {} }',
- ];
- yield [
- '<?php class Foo { protected /* foo */function bar() {} }',
- '<?php class Foo { protected/* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { protected /* foo */function bar() {} }',
- '<?php class Foo { protected /* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { protected CONST BAR = 9000; }',
- '<?php class Foo { protected CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { protected CONST BAR = 9000; }',
- '<?php class Foo { protected
- CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { protected /* foo */CONST BAR = 9000; }',
- '<?php class Foo { protected/* foo */CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { protected /* foo */CONST BAR = 9000; }',
- '<?php class Foo { protected /* foo */CONST BAR = 9000; }',
- ];
- }
- /**
- * @dataProvider provideFixWithPublicCases
- */
- public function testFixWithPublic(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'public',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithPublicCases(): iterable
- {
- yield [
- '<?php class Foo { public $bar; }',
- '<?php class Foo { public$bar; }',
- ];
- yield [
- '<?php class Foo { Public $bar; }',
- '<?php class Foo { Public $bar; }',
- ];
- yield [
- '<?php class Foo { public $bar; }',
- '<?php class Foo { public
- $bar; }',
- ];
- yield [
- '<?php class Foo { public /* foo */$bar; }',
- '<?php class Foo { public/* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { public /* foo */$bar; }',
- '<?php class Foo { public /* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { public function bar() {} }',
- '<?php class Foo { public function bar() {} }',
- ];
- yield [
- '<?php class Foo { public function bar() {} }',
- '<?php class Foo { public
- function bar() {} }',
- ];
- yield [
- '<?php class Foo { public /* foo */function bar() {} }',
- '<?php class Foo { public/* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { public /* foo */function bar() {} }',
- '<?php class Foo { public /* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { public CONST BAR = 9000; }',
- '<?php class Foo { public CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { public CONST BAR = 9000; }',
- '<?php class Foo { public
- CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { public /* foo */CONST BAR = 9000; }',
- '<?php class Foo { public/* foo */CONST BAR = 9000; }',
- ];
- yield [
- '<?php class Foo { public /* foo */CONST BAR = 9000; }',
- '<?php class Foo { public /* foo */CONST BAR = 9000; }',
- ];
- }
- /**
- * @dataProvider provideFixWithRequireCases
- */
- public function testFixWithRequire(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'require',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithRequireCases(): iterable
- {
- yield [
- '<?php require "vendor/autoload.php";',
- '<?php require"vendor/autoload.php";',
- ];
- yield [
- '<?php require "vendor/autoload.php";',
- '<?php require "vendor/autoload.php";',
- ];
- yield [
- '<?php require "vendor/autoload.php";',
- '<?php require
- "vendor/autoload.php";',
- ];
- yield [
- '<?php require /* foo */"vendor/autoload.php";',
- '<?php require/* foo */"vendor/autoload.php";',
- ];
- }
- /**
- * @dataProvider provideFixWithRequireOnceCases
- */
- public function testFixWithRequireOnce(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'require_once',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithRequireOnceCases(): iterable
- {
- yield [
- '<?php require_once "vendor/autoload.php";',
- '<?php require_once"vendor/autoload.php";',
- ];
- yield [
- '<?php require_once "vendor/autoload.php";',
- '<?php require_once "vendor/autoload.php";',
- ];
- yield [
- '<?php require_once "vendor/autoload.php";',
- '<?php require_once
- "vendor/autoload.php";',
- ];
- yield [
- '<?php require_once /* foo */"vendor/autoload.php";',
- '<?php require_once/* foo */"vendor/autoload.php";',
- ];
- }
- /**
- * @dataProvider provideFixWithReturnCases
- */
- public function testFixWithReturn(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'return',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithReturnCases(): iterable
- {
- yield [
- '<?php return;',
- ];
- yield [
- '<?php return /* foo */;',
- '<?php return/* foo */;',
- ];
- yield [
- '<?php return /* foo */;',
- '<?php return /* foo */;',
- ];
- yield [
- '<?php return $foo;',
- '<?php return$foo;',
- ];
- yield [
- '<?php return 9000;',
- '<?php return 9000;',
- ];
- yield [
- '<?php return 9000;',
- '<?php return
- 9000;',
- ];
- yield [
- '<?php return /* */ 9000 + 1 /* foo */ ?>',
- '<?php return
- /* */ 9000 + 1 /* foo */ ?>',
- ];
- yield [
- '<?php return /* foo */9000;',
- '<?php return/* foo */9000;',
- ];
- yield [
- '<?php return $foo && $bar || $baz;',
- '<?php return
- $foo && $bar || $baz;',
- ];
- yield [
- '<?php
- return
- $foo
- && $bar
- || $baz;',
- ];
- yield [
- '<?php
- return
- $foo &&
- $bar ||
- $baz;',
- ];
- yield [
- '<?php
- return
- $foo
- + $bar
- - $baz;',
- ];
- yield [
- '<?php
- return
- $foo +
- $bar -
- $baz;',
- ];
- yield [
- '<?php
- return
- $foo ?
- $bar :
- $baz;',
- ];
- yield [
- '<?php
- return
- $foo
- ? $bar
- : baz;',
- ];
- yield [
- '<?php
- return
- $foo ?:
- $bar;',
- ];
- yield [
- '<?php
- return
- $foo
- ?: $bar;',
- ];
- yield [
- '<?php
- return
- $foo
- ?: $bar?>',
- ];
- }
- /**
- * @dataProvider provideFixWithStaticCases
- */
- public function testFixWithStatic(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'static',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithStaticCases(): iterable
- {
- yield [
- '<?php function foo() { static $bar; }',
- '<?php function foo() { static$bar; }',
- ];
- yield [
- '<?php function foo() { static $bar; }',
- '<?php function foo() { static $bar; }',
- ];
- yield [
- '<?php function foo() { static $bar; }',
- '<?php function foo() { static
- $bar; }',
- ];
- yield [
- '<?php function foo() { static /* foo */$bar; }',
- '<?php function foo() { static/* foo */$bar; }',
- ];
- yield [
- '<?php function foo() { static /* foo */$bar; }',
- '<?php function foo() { static /* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { static function bar() {} }',
- '<?php class Foo { static function bar() {} }',
- ];
- yield [
- '<?php class Foo { static function bar() {} }',
- '<?php class Foo { static
- function bar() {} }',
- ];
- yield [
- '<?php class Foo { static /* foo */function bar() {} }',
- '<?php class Foo { static/* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { static /* foo */function bar() {} }',
- '<?php class Foo { static /* foo */function bar() {} }',
- ];
- yield [
- '<?php class Foo { function bar() { return new static(); } }',
- ];
- yield [
- '<?php class Foo { function bar() { return static::class; } }',
- ];
- }
- /**
- * @dataProvider provideFixWithThrowCases
- */
- public function testFixWithThrow(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'throw',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithThrowCases(): iterable
- {
- yield [
- '<?php throw $foo;',
- '<?php throw$foo;',
- ];
- yield [
- '<?php throw new Exception();',
- '<?php throw new Exception();',
- ];
- yield [
- '<?php throw new Exception();',
- '<?php throw
- new Exception();',
- ];
- yield [
- '<?php throw /* foo */new Exception();',
- '<?php throw/* foo */new Exception();',
- ];
- }
- /**
- * @dataProvider provideFixWithTraitCases
- */
- public function testFixWithTrait(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'trait',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithTraitCases(): iterable
- {
- yield [
- '<?php trait Foo {}',
- '<?php trait Foo {}',
- ];
- yield [
- '<?php trait Foo {}',
- '<?php trait
- Foo {}',
- ];
- yield [
- '<?php trait /* foo */Foo {}',
- '<?php trait /* foo */Foo {}',
- ];
- yield [
- '<?php trait /* foo */Foo {}',
- '<?php trait/* foo */Foo {}',
- ];
- }
- /**
- * @dataProvider provideFixWithTryCases
- */
- public function testFixWithTry(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'try',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithTryCases(): iterable
- {
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try{} catch (\Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try {} catch (\Exception $exception) {}',
- ];
- yield [
- '<?php try {} catch (\Exception $exception) {}',
- '<?php try
- {} catch (\Exception $exception) {}',
- ];
- yield [
- '<?php try /* foo */{} catch (\Exception $exception) {}',
- '<?php try/* foo */{} catch (\Exception $exception) {}',
- ];
- yield [
- '<?php try /* foo */{} catch (\Exception $exception) {}',
- '<?php try /* foo */{} catch (\Exception $exception) {}',
- ];
- }
- /**
- * @dataProvider provideFixWithUseCases
- */
- public function testFixWithUse(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'use',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithUseCases(): iterable
- {
- yield [
- '<?php use Foo\Bar;',
- '<?php use Foo\Bar;',
- ];
- yield [
- '<?php use Foo\Bar;',
- '<?php use
- Foo\Bar;',
- ];
- yield [
- '<?php use /* foo */Foo\Bar;',
- '<?php use/* foo */Foo\Bar;',
- ];
- yield [
- '<?php use /* foo */Foo\Bar;',
- '<?php use /* foo */Foo\Bar;',
- ];
- yield [
- '<?php use const Foo\BAR;',
- '<?php use const Foo\BAR;',
- ];
- yield [
- '<?php use const Foo\BAR;',
- '<?php use
- const Foo\BAR;',
- ];
- yield [
- '<?php use /* foo */const Foo\BAR;',
- '<?php use/* foo */const Foo\BAR;',
- ];
- yield [
- '<?php use /* foo */const Foo\BAR;',
- '<?php use/* foo */const Foo\BAR;',
- ];
- yield [
- '<?php use function Foo\bar;',
- '<?php use function Foo\bar;',
- ];
- yield [
- '<?php use function Foo\bar;',
- '<?php use
- function Foo\bar;',
- ];
- yield [
- '<?php use /* foo */function Foo\bar;',
- '<?php use/* foo */function Foo\bar;',
- ];
- yield [
- '<?php use /* foo */function Foo\bar;',
- '<?php use/* foo */function Foo\bar;',
- ];
- }
- /**
- * @dataProvider provideFixWithUseLambdaCases
- */
- public function testFixWithUseLambda(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'use_lambda',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithUseLambdaCases(): iterable
- {
- yield [
- '<?php $foo = function () use ($bar) {};',
- '<?php $foo = function () use($bar) {};',
- ];
- yield [
- '<?php $foo = function () use ($bar) {};',
- '<?php $foo = function () use ($bar) {};',
- ];
- yield [
- '<?php $foo = function () use ($bar) {};',
- '<?php $foo = function () use
- ($bar) {};',
- ];
- yield [
- '<?php $foo = function () use /* foo */($bar) {};',
- '<?php $foo = function () use/* foo */($bar) {};',
- ];
- yield [
- '<?php $foo = function () use /* foo */($bar) {};',
- '<?php $foo = function () use /* foo */($bar) {};',
- ];
- }
- /**
- * @dataProvider provideFixWithUseTraitCases
- */
- public function testFixWithUseTrait(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'use_trait',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithUseTraitCases(): iterable
- {
- yield [
- '<?php class Foo { use Bar; }',
- '<?php class Foo { use Bar; }',
- ];
- yield [
- '<?php class Foo { use Bar; }',
- '<?php class Foo { use
- Bar; }',
- ];
- yield [
- '<?php class Foo { use /* foo */Bar; }',
- '<?php class Foo { use/* foo */Bar; }',
- ];
- yield [
- '<?php class Foo { use /* foo */Bar; }',
- '<?php class Foo { use /* foo */Bar; }',
- ];
- }
- /**
- * @dataProvider provideFixWithVarCases
- */
- public function testFixWithVar(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'var',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithVarCases(): iterable
- {
- yield [
- '<?php class Foo { var $bar; }',
- '<?php class Foo { var$bar; }',
- ];
- yield [
- '<?php class Foo { var $bar; }',
- '<?php class Foo { var $bar; }',
- ];
- yield [
- '<?php class Foo { var $bar; }',
- '<?php class Foo { var
- $bar; }',
- ];
- yield [
- '<?php class Foo { var /* foo */$bar; }',
- '<?php class Foo { var/* foo */$bar; }',
- ];
- yield [
- '<?php class Foo { var /* foo */$bar; }',
- '<?php class Foo { var /* foo */$bar; }',
- ];
- }
- /**
- * @dataProvider provideFixWithWhileCases
- */
- public function testFixWithWhile(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'while',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithWhileCases(): iterable
- {
- yield [
- '<?php do {} while (true);',
- '<?php do {} while(true);',
- ];
- yield [
- '<?php do {} while (true);',
- '<?php do {} while (true);',
- ];
- yield [
- '<?php do {} while (true);',
- '<?php do {} while
- (true);',
- ];
- yield [
- '<?php do {} while /* foo */(true);',
- '<?php do {} while/* foo */(true);',
- ];
- yield [
- '<?php do {} while /* foo */(true);',
- '<?php do {} while /* foo */(true);',
- ];
- }
- /**
- * @dataProvider provideFixWithYieldCases
- */
- public function testFixWithYield(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'yield',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithYieldCases(): iterable
- {
- yield [
- '<?php function foo() { yield $foo; }',
- '<?php function foo() { yield$foo; }',
- ];
- yield [
- '<?php function foo() { yield "Foo"; }',
- '<?php function foo() { yield "Foo"; }',
- ];
- yield [
- '<?php function foo() { yield "Foo"; }',
- '<?php function foo() { yield
- "Foo"; }',
- ];
- yield [
- '<?php function foo() { yield /* foo */"Foo"; }',
- '<?php function foo() { yield/* foo */"Foo"; }',
- ];
- }
- /**
- * @dataProvider provideFixWithYieldFromCases
- */
- public function testFixWithYieldFrom(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'yield_from',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithYieldFromCases(): iterable
- {
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield from baz(); }',
- ];
- yield [
- '<?php function foo() { yield from $foo; }',
- '<?php function foo() { yield from$foo; }',
- ];
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield from baz(); }',
- ];
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield from baz(); }',
- ];
- yield [
- '<?php function foo() { yIeLd fRoM baz(); }',
- '<?php function foo() { yIeLd fRoM baz(); }',
- ];
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield
- from baz(); }',
- ];
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield from
- baz(); }',
- ];
- yield [
- '<?php function foo() { yield from baz(); }',
- '<?php function foo() { yield
- from
- baz(); }',
- ];
- yield [
- '<?php function foo() { yield from /* foo */baz(); }',
- '<?php function foo() { yield from/* foo */baz(); }',
- ];
- yield [
- '<?php function foo() { yield from /* foo */baz(); }',
- '<?php function foo() { yield from /* foo */baz(); }',
- ];
- yield [
- '<?php function foo() { yield from /* foo */baz(); }',
- '<?php function foo() { yield from
- /* foo */baz(); }',
- ];
- }
- /**
- * @dataProvider provideFixWithPhpOpenCases
- */
- public function testFixWithPhpOpen(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'php_open',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithPhpOpenCases(): iterable
- {
- yield [
- '<?php echo 1;',
- '<?php echo 1;',
- ];
- yield [
- "<?php\necho 1;",
- ];
- yield [
- "<?php\n echo 1;",
- ];
- yield [
- '<?php ',
- ];
- yield [
- "<?php\n",
- ];
- yield [
- "<?php \necho 1;",
- ];
- yield [
- "<?php \n\necho 1;",
- ];
- }
- /**
- * @dataProvider provideCommentsCases
- */
- public function testComments(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'comment',
- 'php_doc',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideCommentsCases(): iterable
- {
- yield [
- '<?php
- $a /* 1 */ = /**/ 1;
- $a /** 1 */ = /** 2 */ 1;
- $a = 3; # 3
- $a = 4; /** 4 */
- echo 1;
- ',
- '<?php
- $a /* 1 */= /**/1;
- $a /** 1 */= /** 2 */1;
- $a = 3; # 3
- $a = 4; /** 4 */
- echo 1;
- ',
- ];
- yield 'exceptions' => [
- '<?php
- new Dummy(/* a */);
- new Dummy(/** b */);
- foo(/* c */);
- foo($a /* d */, $b);
- $arr = [/* empty */];
- ',
- ];
- yield 'before_destructuring_square_brace_close' => [
- '<?php
- foreach ($fields as [$field/** @var string*/]) {
- }
- ',
- ];
- }
- /**
- * @dataProvider provideWithNamespaceCases
- */
- public function testWithNamespace(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'namespace',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideWithNamespaceCases(): iterable
- {
- yield 'simple' => [
- '<?php
- namespace Foo;
- namespace Bar;',
- '<?php
- namespace Foo;
- namespace Bar;',
- ];
- yield 'simple with newlines' => [
- '<?php
- namespace Foo;
- namespace Bar;',
- '<?php
- namespace
- Foo;
- namespace
- Bar;',
- ];
- yield 'braces' => [
- '<?php
- namespace Foo {}
- namespace Bar {}',
- '<?php
- namespace Foo {}
- namespace Bar {}',
- ];
- yield 'braces with newlines' => [
- '<?php
- namespace Foo {}
- namespace Bar {}',
- '<?php
- namespace
- Foo {}
- namespace
- Bar {}',
- ];
- yield 'with // comment' => [
- '<?php
- namespace // comment
- Foo;',
- ];
- yield 'with /* comment */' => [
- '<?php
- namespace /* comment */ Foo;',
- '<?php
- namespace/* comment */ Foo;',
- ];
- }
- /**
- * @dataProvider provideFix80Cases
- *
- * @requires PHP 8.0
- */
- public function testFix80(string $expected, string $input): void
- {
- $this->doTest($expected, $input);
- }
- public static function provideFix80Cases(): iterable
- {
- yield 'match 1' => [
- '<?php echo match ($x) {
- 1, 2 => "Same for 1 and 2",
- };',
- '<?php echo match ($x) {
- 1, 2 => "Same for 1 and 2",
- };',
- ];
- yield 'match 2' => [
- '<?php echo match ($x) {
- 1, 2 => "Same for 1 and 2",
- };',
- '<?php echo match($x) {
- 1, 2 => "Same for 1 and 2",
- };',
- ];
- yield 'constructor property promotion' => [
- '<?php
- class Point {
- public function __construct(
- public float $x = 0.0,
- protected float $y = 0.0,
- private float $z = 0.0,
- ) {}
- }
- ',
- "<?php
- class Point {
- public function __construct(
- public float \$x = 0.0,
- protected\tfloat \$y = 0.0,
- private\nfloat \$z = 0.0,
- ) {}
- }
- ",
- ];
- yield 'attribute' => [
- '<?php class Foo {
- #[Required] // foo
- public $bar1;
- #[Required]
- public $bar2;
- }',
- '<?php class Foo {
- #[Required]// foo
- public $bar1;
- #[Required]
- public $bar2;
- }',
- ];
- yield 'named argument' => [
- '<?php $foo(test: 1);',
- '<?php $foo(test: 1);',
- ];
- }
- /**
- * @dataProvider provideFix81Cases
- *
- * @requires PHP 8.1
- */
- public function testFix81(string $expected, string $input): void
- {
- $this->doTest($expected, $input);
- }
- public static function provideFix81Cases(): iterable
- {
- yield 'readonly' => [
- '<?php
- final class Foo
- {
- public readonly string $prop;
- public function __construct(
- public readonly float $x = 0.0,
- ) {}
- }
- ',
- '<?php
- final class Foo
- {
- public readonly string $prop;
- public function __construct(
- public readonly float $x = 0.0,
- ) {}
- }
- ',
- ];
- yield 'enum' => [
- '<?php
- enum Suit {
- case Hearts;
- }
- ',
- '<?php
- enum Suit {
- case Hearts;
- }
- ',
- ];
- yield 'enum full caps' => [
- '<?php
- ENUM Suit {
- case Hearts;
- }
- ',
- '<?php
- ENUM Suit {
- case Hearts;
- }
- ',
- ];
- yield [
- '<?php class Foo
- {
- final public const X = "foo";
- }',
- '<?php class Foo
- {
- final public const X = "foo";
- }',
- ];
- yield [
- '<?php
- class Test {
- public function __construct(
- public $prop = new Foo,
- ) {}
- }
- ',
- '<?php
- class Test {
- public function __construct(
- public $prop = new Foo,
- ) {}
- }
- ',
- ];
- }
- /**
- * @dataProvider provideFixWithSwitchCases
- */
- public function testFixWithSwitch(string $expected, string $input): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'switch',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideFixWithSwitchCases(): iterable
- {
- yield [
- '<?php
- switch ($a){ case 1: echo 123; }
- switch ($b){ case 1: echo 123; }
- ',
- '<?php
- switch($a){ case 1: echo 123; }
- switch ($b){ case 1: echo 123; }
- ',
- ];
- }
- /**
- * @dataProvider provideTypeColonCases
- */
- public function testTypeColon(string $expected, string $input): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'type_colon',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideTypeColonCases(): iterable
- {
- yield [
- '<?php function foo(): array { return []; }',
- "<?php function foo():\narray { return []; }",
- ];
- yield [
- '<?php interface F { public function foo(): array; }',
- "<?php interface F { public function foo():\tarray; }",
- ];
- yield [
- '<?php $a=1; $f = function () use($a): array {};',
- '<?php $a=1; $f = function () use($a):array {};',
- ];
- yield [
- '<?php fn() : array => [];',
- '<?php fn() : array => [];',
- ];
- yield [
- '<?php $a=1; $f = fn (): array => [];',
- '<?php $a=1; $f = fn (): array => [];',
- ];
- }
- /**
- * @dataProvider provideEnumTypeColonCases
- *
- * @requires PHP 8.1
- */
- public function testEnumTypeColon(string $expected, string $input): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'type_colon',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- public static function provideEnumTypeColonCases(): iterable
- {
- yield [
- '<?php enum Foo: int {}',
- "<?php enum Foo:\nint {}",
- ];
- yield [
- '<?php enum Foo: string {}',
- '<?php enum Foo:string {}',
- ];
- }
- }
|