diff --git a/coder_sniffer/DrupalPractice/Sniffs/InfoFiles/CoreVersionRequirementSniff.php b/coder_sniffer/DrupalPractice/Sniffs/InfoFiles/CoreVersionRequirementSniff.php index dfe9a1495a28d10bc52ab615a545592db1810905..1ff38cfabb2109f6794d3d977f15946f6d29ddce 100644 --- a/coder_sniffer/DrupalPractice/Sniffs/InfoFiles/CoreVersionRequirementSniff.php +++ b/coder_sniffer/DrupalPractice/Sniffs/InfoFiles/CoreVersionRequirementSniff.php @@ -49,11 +49,18 @@ class CoreVersionRequirementSniff implements Sniff */ public function process(File $phpcsFile, $stackPtr) { - $fileExtension = strtolower(substr($phpcsFile->getFilename(), -9)); + $filename = $phpcsFile->getFilename(); + $fileExtension = strtolower(substr($filename, -9)); if ($fileExtension !== '.info.yml') { return ($phpcsFile->numTokens + 1); } + // Exclude config files which might contain the info.yml extension. + $filenameWithoutExtension = substr($filename, 0, -9); + if (strpos($filenameWithoutExtension, '.') !== false) { + return ($phpcsFile->numTokens + 1); + } + $contents = file_get_contents($phpcsFile->getFilename()); try { $info = Yaml::parse($contents); @@ -62,6 +69,11 @@ class CoreVersionRequirementSniff implements Sniff return ($phpcsFile->numTokens + 1); } + // Check if the type key is set, to verify if we're inside a project info.yml file. + if (isset($info['type']) === false) { + return ($phpcsFile->numTokens + 1); + } + // Test modules can omit the core_version_requirement key. if (isset($info['package']) === true && $info['package'] === 'Testing') { return ($phpcsFile->numTokens + 1); diff --git a/coder_sniffer/DrupalPractice/Test/InfoFiles/CoreVersionRequirementUnitTest.php b/coder_sniffer/DrupalPractice/Test/InfoFiles/CoreVersionRequirementUnitTest.php index 03b8b6d01780ae62caf42907c594aea2a024cfaf..fd846bce40db7414cda3404a81caf5e449038bfb 100644 --- a/coder_sniffer/DrupalPractice/Test/InfoFiles/CoreVersionRequirementUnitTest.php +++ b/coder_sniffer/DrupalPractice/Test/InfoFiles/CoreVersionRequirementUnitTest.php @@ -61,6 +61,7 @@ class CoreVersionRequirementUnitTest extends CoderSniffUnitTest return [ __DIR__.'/core_version.info.yml', __DIR__.'/core_version_test.info.yml', + __DIR__.'/core_version.config.info.yml', ]; }//end getTestFiles() diff --git a/coder_sniffer/DrupalPractice/Test/InfoFiles/core_version.config.info.yml b/coder_sniffer/DrupalPractice/Test/InfoFiles/core_version.config.info.yml new file mode 100644 index 0000000000000000000000000000000000000000..8b3b746994ecb2ed74e47f9d4d87ab67c2cb91bd --- /dev/null +++ b/coder_sniffer/DrupalPractice/Test/InfoFiles/core_version.config.info.yml @@ -0,0 +1,2 @@ +type: coder +description: 'This is a configuration file.'