InstallProfileDependenciesTest.php

Same filename in other branches
  1. 9 core/tests/Drupal/FunctionalTests/Installer/InstallProfileDependenciesTest.php
  2. 8.9.x core/tests/Drupal/FunctionalTests/Installer/InstallProfileDependenciesTest.php
  3. 10 core/tests/Drupal/FunctionalTests/Installer/InstallProfileDependenciesTest.php

Namespace

Drupal\FunctionalTests\Installer

File

core/tests/Drupal/FunctionalTests/Installer/InstallProfileDependenciesTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\FunctionalTests\Installer;

use Drupal\Core\Extension\ModuleUninstallValidatorException;
use Drupal\Tests\BrowserTestBase;

/**
 * Tests that an install profile can require modules.
 *
 * @group Installer
 */
class InstallProfileDependenciesTest extends BrowserTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    protected $profile = 'testing_install_profile_dependencies';
    
    /**
     * Tests that an install profile can require modules.
     */
    public function testUninstallingModules() : void {
        $user = $this->drupalCreateUser([
            'administer modules',
        ]);
        $this->drupalLogin($user);
        $this->drupalGet('admin/modules/uninstall');
        $this->assertSession()
            ->fieldDisabled('uninstall[dblog]');
        $this->getSession()
            ->getPage()
            ->checkField('uninstall[ban]');
        $this->click('#edit-submit');
        // Click the confirm button.
        $this->click('#edit-submit');
        $this->assertSession()
            ->responseContains('The selected modules have been uninstalled.');
        // We've uninstalled a module therefore we need to rebuild the container in
        // the test runner.
        $this->rebuildContainer();
        $this->assertFalse($this->container
            ->get('module_handler')
            ->moduleExists('ban'));
        try {
            $this->container
                ->get('module_installer')
                ->uninstall([
                'dblog',
            ]);
            $this->fail('Uninstalled dblog module.');
        } catch (ModuleUninstallValidatorException $e) {
            $this->assertStringContainsString("The 'Testing install profile dependencies' install profile requires 'Database Logging'", $e->getMessage());
        }
    }

}

Classes

Title Deprecated Summary
InstallProfileDependenciesTest Tests that an install profile can require modules.

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