function NonStableModulesTest::testDeprecatedAndExperimentalConfirmForm

Same name and namespace in other branches
  1. 9 core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php \Drupal\Tests\system\Functional\Module\NonStableModulesTest::testDeprecatedAndExperimentalConfirmForm()
  2. 11.x core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php \Drupal\Tests\system\Functional\Module\NonStableModulesTest::testDeprecatedAndExperimentalConfirmForm()

Tests installing deprecated and experimental modules at the same time.

@group legacy

File

core/modules/system/tests/src/Functional/Module/NonStableModulesTest.php, line 357

Class

NonStableModulesTest
Tests the installation of deprecated and experimental modules.

Namespace

Drupal\Tests\system\Functional\Module

Code

public function testDeprecatedAndExperimentalConfirmForm() : void {
  $edit = [];
  $edit["modules[deprecated_module][enable]"] = TRUE;
  $edit["modules[experimental_module_test][enable]"] = TRUE;
  $this->drupalGet('admin/modules');
  $this->submitForm($edit, 'Install');
  // The module should not be enabled and there should be a warning and a
  // list of the deprecated modules with only this one.
  $assert = $this->assertSession();
  $assert->pageTextNotContains('Deprecated module has been installed.');
  $assert->pageTextContains('Deprecated modules are modules that may be removed from the next major release of Drupal core. Use at your own risk.');
  $assert->pageTextContains('The Deprecated module module is deprecated');
  $more_information_link = $assert->elementExists('named', [
    'link',
    'The Deprecated module module is deprecated. (more information)',
  ]);
  $this->assertEquals('http://example.com/deprecated', $more_information_link->getAttribute('href'));
  // The module should not be enabled and there should be a warning and a
  // list of the experimental modules with only this one.
  $assert->pageTextNotContains('Experimental Test has been installed.');
  $assert->pageTextContains('Experimental modules are provided for testing purposes only.');
  $assert->pageTextContains('The following module is experimental: Experimental Test');
  // There should be a warning about enabling experimental and deprecated
  // modules, but no warnings about solitary experimental or deprecated
  // modules.
  $this->assertSession()
    ->pageTextContains('Are you sure you wish to install experimental and deprecated modules?');
  $this->assertSession()
    ->pageTextNotContains('Are you sure you wish to install experimental modules?');
  $this->assertSession()
    ->pageTextNotContains('Are you sure you wish to install deprecated modules?');
  // There should be no message about enabling dependencies.
  $assert->pageTextNotContains('You must install');
  // Enable the module and confirm that it worked.
  $this->submitForm([], 'Continue');
  $assert->pageTextContains('2 modules have been installed: Deprecated module, Experimental Test.');
}

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