Issue #3259850 by Spokje: Having a deprecated module with non deprecated dependency leads to test failure in InstallUninstallTest
(cherry picked from commit 6f5a1115b1
)
merge-requests/1075/head
parent
f7da3008f6
commit
2b35c803e4
|
@ -0,0 +1,9 @@
|
||||||
|
name: Deprecated module with non deprecated dependency
|
||||||
|
type: module
|
||||||
|
description: 'Deprecated module with non deprecated dependency'
|
||||||
|
package: Testing
|
||||||
|
version: VERSION
|
||||||
|
lifecycle: deprecated
|
||||||
|
lifecycle_link: 'http://example.com/deprecated'
|
||||||
|
dependencies:
|
||||||
|
- drupal:drupal_system_listing_compatible_test
|
|
@ -121,6 +121,17 @@ class InstallUninstallTest extends ModuleTestBase {
|
||||||
}
|
}
|
||||||
$this->submitForm([], 'Continue');
|
$this->submitForm([], 'Continue');
|
||||||
}
|
}
|
||||||
|
// Handle deprecated modules, which require a confirmation screen.
|
||||||
|
elseif ($lifecycle === ExtensionLifecycle::DEPRECATED) {
|
||||||
|
$this->assertSession()->pageTextContains('Are you sure you wish to enable a deprecated module?');
|
||||||
|
if (count($modules_to_install) > 1) {
|
||||||
|
// When there are deprecated modules, needed dependencies do not
|
||||||
|
// result in the same page title, but there will be expected text
|
||||||
|
// indicating they need to be enabled.
|
||||||
|
$this->assertSession()->pageTextContains('You must enable');
|
||||||
|
}
|
||||||
|
$this->submitForm([], 'Continue');
|
||||||
|
}
|
||||||
// Handle the case where modules were installed along with this one and
|
// Handle the case where modules were installed along with this one and
|
||||||
// where we therefore hit a confirmation screen.
|
// where we therefore hit a confirmation screen.
|
||||||
elseif (count($modules_to_install) > 1) {
|
elseif (count($modules_to_install) > 1) {
|
||||||
|
|
|
@ -249,6 +249,45 @@ class NonStableModulesTest extends BrowserTestBase {
|
||||||
'deprecated_module_dependency',
|
'deprecated_module_dependency',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// Check a deprecated module with a non-deprecated dependency.
|
||||||
|
$edit = [];
|
||||||
|
$edit["modules[deprecated_module_with_non_deprecated_dependency][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->pageTextNotContains('2 modules have been enabled: Deprecated module with non deprecated dependency, Drupal system listing compatible test');
|
||||||
|
$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 with non deprecated dependency module is deprecated');
|
||||||
|
$more_information_link = $assert->elementExists('named', [
|
||||||
|
'link',
|
||||||
|
'The Deprecated module with non deprecated dependency module is deprecated. (more information)',
|
||||||
|
]);
|
||||||
|
$this->assertEquals('http://example.com/deprecated', $more_information_link->getAttribute('href'));
|
||||||
|
|
||||||
|
// There should be a warning about enabling deprecated modules, but no
|
||||||
|
// warnings about experimental modules.
|
||||||
|
$this->assertSession()->pageTextContains('Are you sure you wish to enable a deprecated module?');
|
||||||
|
$this->assertSession()->pageTextNotContains('Are you sure you wish to enable an experimental module?');
|
||||||
|
$this->assertSession()->pageTextNotContains('Are you sure you wish to enable experimental and deprecated modules?');
|
||||||
|
|
||||||
|
// Ensure the non-deprecated dependency module is not listed as deprecated.
|
||||||
|
$assert->pageTextNotContains('The Drupal system listing compatible test module is deprecated');
|
||||||
|
|
||||||
|
// There should be a message about enabling dependencies.
|
||||||
|
$assert->pageTextContains('You must enable the Drupal system listing compatible test module to install Deprecated module with non deprecated dependency.');
|
||||||
|
|
||||||
|
// Enable the module and confirm that it worked.
|
||||||
|
$this->submitForm([], 'Continue');
|
||||||
|
$assert->pageTextContains('2 modules have been enabled: Deprecated module with non deprecated dependency, Drupal system listing compatible test.');
|
||||||
|
|
||||||
|
// Uninstall the modules.
|
||||||
|
\Drupal::service('module_installer')->uninstall([
|
||||||
|
'deprecated_module_with_non_deprecated_dependency',
|
||||||
|
'drupal_system_listing_compatible_test',
|
||||||
|
]);
|
||||||
|
|
||||||
// Finally, check both the module and its deprecated dependency. There is
|
// Finally, check both the module and its deprecated dependency. There is
|
||||||
// still a warning about deprecated modules, but no message about
|
// still a warning about deprecated modules, but no message about
|
||||||
// dependencies, since the user specifically enabled the dependency.
|
// dependencies, since the user specifically enabled the dependency.
|
||||||
|
|
Loading…
Reference in New Issue