TestSandboxDatabaseUpdatesValidator.php
Namespace
Drupal\package_manager_test_validationFile
-
core/
modules/ package_manager/ tests/ modules/ package_manager_test_validation/ src/ TestSandboxDatabaseUpdatesValidator.php
View source
<?php
declare (strict_types=1);
namespace Drupal\package_manager_test_validation;
use Drupal\package_manager\Validator\SandboxDatabaseUpdatesValidator as BaseValidator;
use Drupal\Core\Extension\Extension;
use Drupal\Core\State\StateInterface;
/**
* Allows tests to dictate which extensions have staged database updates.
*/
class TestSandboxDatabaseUpdatesValidator extends BaseValidator {
/**
* The state service.
*
* @var \Drupal\Core\State\StateInterface
*/
private $state;
/**
* Sets the state service dependency.
*
* @param \Drupal\Core\State\StateInterface $state
* The state service.
*/
public function setState(StateInterface $state) : void {
$this->state = $state;
}
/**
* Sets the names of the extensions which should have staged database updates.
*
* @param string[]|null $extensions
* The machine names of the extensions which should say they have staged
* database updates, or NULL to defer to the parent class.
*/
public static function setExtensionsWithUpdates(?array $extensions) : void {
\Drupal::state()->set(static::class, $extensions);
}
/**
* {@inheritdoc}
*/
public function hasStagedUpdates(string $stage_dir, Extension $extension) : bool {
$extensions = $this->state
->get(static::class);
if (isset($extensions)) {
return in_array($extension->getName(), $extensions, TRUE);
}
return parent::hasStagedUpdates($stage_dir, $extension);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
TestSandboxDatabaseUpdatesValidator | Allows tests to dictate which extensions have staged database updates. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.