InstallProfileDependenciesTest.php

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

Namespace

Drupal\FunctionalTests\Installer

File

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

View source
<?php

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() {
        $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 module is required', $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.