@@ -435,6 +435,7 @@ protected function _getCleanedFileContents($fileType, $file)
435
435
{
436
436
$ contents = null ;
437
437
switch ($ fileType ) {
438
+ case 'fixture ' :
438
439
case 'php ' :
439
440
$ contents = php_strip_whitespace ($ file );
440
441
break ;
@@ -499,7 +500,7 @@ function ($fileType, $file) use ($blackList) {
499
500
$ result = [];
500
501
501
502
foreach ($ undeclaredDependency as $ type => $ modules ) {
502
- $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ modules , $ blackList );
503
+ $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ fileType , $ modules , $ blackList );
503
504
$ modules = array_unique ($ modules );
504
505
if (empty ($ modules )) {
505
506
continue ;
@@ -517,18 +518,24 @@ function ($fileType, $file) use ($blackList) {
517
518
/**
518
519
* Filter out list of module dependencies based on the provided blacklist.
519
520
*
520
- * Always exclude dependency on Setup because it is part of base Magento package.
521
+ * Additionally, exclude:
522
+ * - dependency on Setup for all modules as it is part of base Magento package.
523
+ * - dependency on Magento\TestFramework for in fixture classes
521
524
*
522
525
* @param string $filePath
526
+ * @param string $fileType
523
527
* @param string[] $modules
524
528
* @param array $blackList
525
529
* @return string[]
526
530
*/
527
- private function filterOutBlacklistedDependencies ($ filePath , $ modules , array $ blackList ): array
531
+ private function filterOutBlacklistedDependencies ($ filePath , $ fileType , $ modules , $ blackList ): array
528
532
{
529
533
$ relativeFilePath = substr_replace ($ filePath , '' , 0 , strlen (BP . '/ ' ));
530
534
foreach ($ modules as $ moduleKey => $ module ) {
531
- if ($ module == 'Magento\Setup ' ) {
535
+ if ($ module === 'Magento\Setup ' ) {
536
+ unset($ modules [$ moduleKey ]);
537
+ }
538
+ if ($ fileType === 'fixture ' && $ module === 'Magento\TestFramework ' ) {
532
539
unset($ modules [$ moduleKey ]);
533
540
}
534
541
if (isset ($ blackList [$ relativeFilePath ])
@@ -567,7 +574,7 @@ function ($fileType, $file) use ($blackList) {
567
574
// Prepare output message
568
575
$ result = [];
569
576
foreach ($ externalDependencies as $ type => $ modules ) {
570
- $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ modules , $ blackList );
577
+ $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ fileType , $ modules , $ blackList );
571
578
$ modules = array_unique ($ modules );
572
579
if (empty ($ modules )) {
573
580
continue ;
@@ -903,7 +910,8 @@ public function getAllFiles()
903
910
),
904
911
$ this ->_prepareFiles ('config ' , Files::init ()->getConfigFiles ()),
905
912
$ this ->_prepareFiles ('layout ' , Files::init ()->getLayoutFiles ()),
906
- $ this ->_prepareFiles ('template ' , Files::init ()->getPhtmlFiles ())
913
+ $ this ->_prepareFiles ('template ' , Files::init ()->getPhtmlFiles ()),
914
+ $ this ->_prepareFiles ('fixture ' , Files::composeDataSets ($ this ->getFixtureFiles ()), true )
907
915
);
908
916
}
909
917
@@ -1316,4 +1324,18 @@ private static function getAllowedDependencies(): array
1316
1324
}
1317
1325
return self ::$ allowedDependencies ;
1318
1326
}
1327
+
1328
+ /**
1329
+ * Returns fixture files located in <module-directory>/Test/Fixture directory
1330
+ *
1331
+ * @return array
1332
+ */
1333
+ private function getFixtureFiles (): array
1334
+ {
1335
+ $ fixtureDirs = [];
1336
+ foreach (self ::getComponentRegistrar ()->getPaths (ComponentRegistrar::MODULE ) as $ moduleDir ) {
1337
+ $ fixtureDirs [] = $ moduleDir . '/Test/Fixture ' ;
1338
+ }
1339
+ return Files::getFiles ($ fixtureDirs , '*.php ' );
1340
+ }
1319
1341
}
0 commit comments