class ModuleInfoTest

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Extension/ModuleInfoTest.php \Drupal\Tests\Core\Extension\ModuleInfoTest
  2. 10 core/tests/Drupal/Tests/Core/Extension/ModuleInfoTest.php \Drupal\Tests\Core\Extension\ModuleInfoTest
  3. 9 core/tests/Drupal/Tests/Core/Extension/ModuleInfoTest.php \Drupal\Tests\Core\Extension\ModuleInfoTest

Tests that core module info files have the expected keys.

Attributes

#[Group('Extension')]

Hierarchy

Expanded class hierarchy of ModuleInfoTest

File

core/tests/Drupal/Tests/Core/Extension/ModuleInfoTest.php, line 19

Namespace

Drupal\Tests\Core\Extension
View source
class ModuleInfoTest extends UnitTestCase {
  use FileSystemModuleDiscoveryDataProviderTrait;
  
  /**
   * Tests that core module info files have the expected keys.
   */
  public function testModuleInfo(string $module) : void {
    $module_directory = __DIR__ . '/../../../../../modules/' . $module;
    $info = Yaml::decode(file_get_contents($module_directory . '/' . $module . '.info.yml'));
    $this->assertArrayHasKey('version', $info);
    $this->assertEquals('VERSION', $info['version']);
  }
  
  /**
   * Tests that non-hidden test modules use their expected package.
   */
  public function testTestModulePackages(string $filename, string $expected_package) : void {
    $info = Yaml::decode(file_get_contents($filename));
    $this->assertSame($expected_package, $info['package'] ?? NULL);
  }
  
  /**
   * Provides test module info files and their expected packages.
   */
  public static function providerTestTestModulePackages() : \Generator {
    $root = dirname(__DIR__, 6);
    // These modules deliberately use other packages to test module metadata.
    $expected_packages = [
      'config_mapping_test' => 'Core',
      'experimental_module_requirements_test' => 'Core (Experimental)',
      'experimental_module_test' => 'Core (Experimental)',
      'nyan_cat' => 'Core',
    ];
    $modules = (new ExtensionDiscovery($root))->scan('module', TRUE);
    foreach ($modules as $module) {
      if (!str_contains($module->getPath(), '/tests/modules/')) {
        continue;
      }
      $filename = $root . '/' . $module->getPathname();
      $info = Yaml::decode(file_get_contents($filename));
      if (!empty($info['hidden'])) {
        continue;
      }
      $package = $expected_packages[$module->getName()] ?? 'Testing';
      yield $module->getPathname() => [
        $filename,
        $package,
      ];
    }
  }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overrides
DrupalTestCase::$root protected property The Drupal root directory.
DrupalTestCase::getDrupalRoot Deprecated protected function Returns the Drupal root directory. 1
DrupalTestCase::setUpRoot final protected function Ensure that the $root property is set initially.
DrupalTestCase::skipTestWithAttribute final protected function Supports skipping tests with the Skip attribute.
DrupalTestCaseTrait::checkErrorHandlerOnTearDown public function Checks the test error handler after test execution. 1
DrupalTestCaseTrait::checkLegacySymfonyDeprecationHelperEnvVariable public function Checks legacy SYMFONY_DEPRECATIONS_HELPER env variable is not used.
DrupalTestCaseTrait::expectExceptionMessageIs protected function Expects an exactly matching exception message.
DrupalTestCaseTrait::expectExceptionMessageIsOrContains protected function Expects an exception message containing a specified string.
DrupalTestCaseTrait::setDebugDumpHandler public static function Registers the dumper CLI handler when the DebugDump extension is enabled.
FileSystemModuleDiscoveryDataProviderTrait::coreModuleListDataProvider public static function A data provider that lists every module in core.
ModuleInfoTest::providerTestTestModulePackages public static function Provides test module info files and their expected packages.
ModuleInfoTest::testModuleInfo public function Tests that core module info files have the expected keys.
ModuleInfoTest::testTestModulePackages public function Tests that non-hidden test modules use their expected package.
RandomGeneratorTrait::getRandomGenerator protected function Gets the random generator for the utility methods.
RandomGeneratorTrait::randomMachineName protected function Generates a unique random string containing letters and numbers.
RandomGeneratorTrait::randomObject public function Generates a random PHP object.
RandomGeneratorTrait::randomString public function Generates a pseudo-random string of ASCII characters of codes 32 to 126.
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::setUp protected function 361
UnitTestCase::setupMockIterator protected function Set up a traversable class mock to return specific items when iterated.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.