diff --git a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php index 8f8227b99..18245d350 100644 --- a/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php +++ b/tests/php-unit-tests/integration-tests/DictionariesConsistencyTest.php @@ -189,12 +189,82 @@ class DictionariesConsistencyTest extends ItopTestCase $this->assertTrue(true); } + /** + * Since 3.0.0 and N°2969 it is possible to have a dictionaries directory in modules. We want to ensure that core modules use this functionality ! + * + * @since 2.7.11 3.0.5 3.1.2 3.2.0 N°7143 + */ public function testNoDictFileInDatamodelsModuleRootDirectory():void { $sAppRoot = static::GetAppRoot(); $aDictFilesInDatamodelsModuleRootDir = glob($sAppRoot.'datamodels/2.x/*/*.dict*.php'); - $this->assertNotFalse($aDictFilesInDatamodelsModuleRootDir, 'Searching for files returned an error'); + + $aExcludedModulesList = $this->GetLtsCompatibleModulesList(); + $aDictFilesInDatamodelsModuleRootDir = array_filter( + $aDictFilesInDatamodelsModuleRootDir, + function($sDictFileFullPath) use ($aExcludedModulesList) { + $sModuleFullPath = dirname($sDictFileFullPath); + $sModuleDirectory = basename($sModuleFullPath); + return !in_array($sModuleDirectory, $aExcludedModulesList); + } + ); + + $sDictFilesInDatamodelsModuleRootDirList = var_export($aDictFilesInDatamodelsModuleRootDir, true); $this->assertCount(0, $aDictFilesInDatamodelsModuleRootDir, - "There are some files in datamodels module root dirs ! You must move them to the `dictionaries` module subfolder. \n List of files: ".var_export($aDictFilesInDatamodelsModuleRootDir, true)); + <<