ModuleLegacyTest.php

Same filename in other branches
  1. 10 core/tests/Drupal/KernelTests/Core/Extension/ModuleLegacyTest.php
  2. 11.x core/tests/Drupal/KernelTests/Core/Extension/ModuleLegacyTest.php

Namespace

Drupal\KernelTests\Core\Extension

File

core/tests/Drupal/KernelTests/Core/Extension/ModuleLegacyTest.php

View source
<?php

namespace Drupal\KernelTests\Core\Extension;

use Drupal\Core\Extension\ExtensionDiscovery;
use Drupal\KernelTests\KernelTestBase;

/**
 * Tests deprecations from module.inc file.
 *
 * @group legacy
 */
class ModuleLegacyTest extends KernelTestBase {
    
    /**
     * Test deprecation of module_load_include() function.
     */
    public function testModuleLoadInclude() {
        $this->assertFalse($this->container
            ->get('module_handler')
            ->moduleExists('module_test'), 'Ensure module is uninstalled so we test the ability to include uninstalled code.');
        $this->expectDeprecation('module_load_include() is deprecated in drupal:9.4.0 and is removed from drupal:11.0.0. Instead, you should use \\Drupal::moduleHandler()->loadInclude(). Note that including code from uninstalled extensions is no longer supported. See https://www.drupal.org/project/drupal/issues/697946');
        $filename = module_load_include('inc', 'module_test', 'module_test.file');
        $this->assertStringEndsWith("module_test.file.inc", $filename);
    }
    
    /**
     * Test deprecation of module_load_install() function.
     */
    public function testModuleLoadInstall() {
        $this->assertFalse(\Drupal::moduleHandler()->moduleExists('node'), 'The Node module is not installed');
        $this->expectDeprecation('module_load_install() is deprecated in drupal:9.4.0 and is removed from drupal:10.0.0. Instead, you should use \\Drupal::moduleHandler()->loadInclude($module, \'install\'). Note, the replacement no longer allows including code from uninstalled modules. See https://www.drupal.org/project/drupal/issues/2010380');
        $filename = module_load_install('node');
        $this->assertStringEndsWith("node.install", $filename);
    }
    
    /**
     * Test deprecation of drupal_required_modules() function.
     */
    public function testDrupalRequiredModules() {
        $this->expectDeprecation("drupal_required_modules() is deprecated in drupal:9.4.0 and is removed from drupal:10.0.0. There's no replacement. See https://www.drupal.org/node/3262811");
        
        /** @var \Drupal\Core\Extension\InfoParserInterface $parser */
        $parser = \Drupal::service('info_parser');
        $listing = new ExtensionDiscovery(\Drupal::root());
        $files = $listing->scan('module');
        // Empty as there's no install profile.
        $required = [];
        foreach ($files as $name => $file) {
            $info = $parser->parse($file->getPathname());
            if (!empty($info) && !empty($info['required']) && $info['required']) {
                $required[] = $name;
            }
        }
        $this->assertSame($required, drupal_required_modules());
    }

}

Classes

Title Deprecated Summary
ModuleLegacyTest Tests deprecations from module.inc file.

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