123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645 |
- <?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
- *
- * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\LanguageConstruct\SingleSpaceAfterConstructFixer>
- *
- * @phpstan-import-type _AutogeneratedInputConfiguration from \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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<int|string, array{0: string, 1?: string}>
- */
- 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();',
- ];
- yield 'attribute on separate line' => [
- <<<'EOF'
- <?php
- $a = new
- #[FOO]
- class() {};
- EOF,
- ];
- yield 'phpdoc on separate line' => [
- <<<'EOF'
- <?php
- $a = new
- /**
- @property string $x
- */
- class() {};
- EOF,
- ];
- }
- /**
- * @dataProvider provideFixWithOpenTagWithEchoCases
- */
- public function testFixWithOpenTagWithEcho(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'open_tag_with_echo',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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 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;',
- ];
- }
- /**
- * @dataProvider provideFixWithUseLambdaCases
- */
- public function testFixWithUseLambda(string $expected, ?string $input = null): void
- {
- $this->fixer->configure([
- 'constructs' => [
- 'use_lambda',
- ],
- ]);
- $this->doTest($expected, $input);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<int|string, array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<string, array{0: string, 1?: string}>
- */
- 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);
- }
- /**
- * @return iterable<string, array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<int|string, array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- 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);
- }
- /**
- * @return iterable<array{string, string}>
- */
- public static function provideEnumTypeColonCases(): iterable
- {
- yield [
- '<?php enum Foo: int {}',
- "<?php enum Foo:\nint {}",
- ];
- yield [
- '<?php enum Foo: string {}',
- '<?php enum Foo:string {}',
- ];
- }
- }
|