Mercurial > hg > cmmr2012-drupal-site
diff core/modules/simpletest/src/InstallerTestBase.php @ 5:12f9dff5fda9 tip
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:34:47 +0100 |
parents | a9cd425dd02b |
children |
line wrap: on
line diff
--- a/core/modules/simpletest/src/InstallerTestBase.php Thu Feb 28 13:11:55 2019 +0000 +++ b/core/modules/simpletest/src/InstallerTestBase.php Thu May 09 15:34:47 2019 +0100 @@ -8,6 +8,7 @@ use Drupal\Core\Language\Language; use Drupal\Core\Session\UserSession; use Drupal\Core\Site\Settings; +use Drupal\Tests\RequirementsPageTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\HttpFoundation\Request; @@ -22,6 +23,8 @@ */ abstract class InstallerTestBase extends WebTestBase { + use RequirementsPageTrait; + /** * Custom settings.php values to write for a test run. * @@ -213,12 +216,7 @@ * @see system_requirements() */ protected function setUpRequirementsProblem() { - // By default, skip the "recommended PHP version" warning on older test - // environments. This allows the installer to be tested consistently on - // both recommended PHP versions and older (but still supported) versions. - if (version_compare(phpversion(), '7.0') < 0) { - $this->continueOnExpectedWarnings(['PHP']); - } + // Do nothing. } /** @@ -244,44 +242,4 @@ } } - /** - * Continues installation when an expected warning is found. - * - * @param string[] $expected_warnings - * A list of warning summaries to expect on the requirements screen (e.g. - * 'PHP', 'PHP OPcode caching', etc.). If only the expected warnings - * are found, the test will click the "continue anyway" link to go to the - * next screen of the installer. If an expected warning is not found, or if - * a warning not in the list is present, a fail is raised. - */ - protected function continueOnExpectedWarnings($expected_warnings = []) { - // Don't try to continue if there are errors. - if (strpos($this->getTextContent(), 'Errors found') !== FALSE) { - return; - } - // Allow only details elements that are directly after the warning header - // or each other. There is no guaranteed wrapper we can rely on across - // distributions. When there are multiple warnings, the selectors will be: - // - h3#warning+details summary - // - h3#warning+details+details summary - // - etc. - // We add one more selector than expected warnings to confirm that there - // isn't any other warning before clicking the link. - // @todo Make this more reliable in - // https://www.drupal.org/project/drupal/issues/2927345. - $selectors = []; - for ($i = 0; $i <= count($expected_warnings); $i++) { - $selectors[] = 'h3#warning' . implode('', array_fill(0, $i + 1, '+details')) . ' summary'; - } - $warning_elements = $this->cssSelect(implode(', ', $selectors)); - - // Confirm that there are only the expected warnings. - $warnings = []; - foreach ($warning_elements as $warning) { - $warnings[] = trim((string) $warning); - } - $this->assertEqual($expected_warnings, $warnings); - $this->clickLink('continue anyway'); - } - }