@@ -435,6 +435,7 @@ protected function _getCleanedFileContents($fileType, $file)
435435 {
436436 $ contents = null ;
437437 switch ($ fileType ) {
438+ case 'fixture ' :
438439 case 'php ' :
439440 $ contents = php_strip_whitespace ($ file );
440441 break ;
@@ -499,7 +500,7 @@ function ($fileType, $file) use ($blackList) {
499500 $ result = [];
500501
501502 foreach ($ undeclaredDependency as $ type => $ modules ) {
502- $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ modules , $ blackList );
503+ $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ fileType , $ modules , $ blackList );
503504 $ modules = array_unique ($ modules );
504505 if (empty ($ modules )) {
505506 continue ;
@@ -517,18 +518,24 @@ function ($fileType, $file) use ($blackList) {
517518 /**
518519 * Filter out list of module dependencies based on the provided blacklist.
519520 *
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
521524 *
522525 * @param string $filePath
526+ * @param string $fileType
523527 * @param string[] $modules
524528 * @param array $blackList
525529 * @return string[]
526530 */
527- private function filterOutBlacklistedDependencies ($ filePath , $ modules , array $ blackList ): array
531+ private function filterOutBlacklistedDependencies ($ filePath , $ fileType , $ modules , $ blackList ): array
528532 {
529533 $ relativeFilePath = substr_replace ($ filePath , '' , 0 , strlen (BP . '/ ' ));
530534 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 ' ) {
532539 unset($ modules [$ moduleKey ]);
533540 }
534541 if (isset ($ blackList [$ relativeFilePath ])
@@ -567,7 +574,7 @@ function ($fileType, $file) use ($blackList) {
567574 // Prepare output message
568575 $ result = [];
569576 foreach ($ externalDependencies as $ type => $ modules ) {
570- $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ modules , $ blackList );
577+ $ modules = $ this ->filterOutBlacklistedDependencies ($ file , $ fileType , $ modules , $ blackList );
571578 $ modules = array_unique ($ modules );
572579 if (empty ($ modules )) {
573580 continue ;
@@ -903,7 +910,8 @@ public function getAllFiles()
903910 ),
904911 $ this ->_prepareFiles ('config ' , Files::init ()->getConfigFiles ()),
905912 $ 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 )
907915 );
908916 }
909917
@@ -1316,4 +1324,18 @@ private static function getAllowedDependencies(): array
13161324 }
13171325 return self ::$ allowedDependencies ;
13181326 }
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+ }
13191341}
0 commit comments