class RollbackTest
Same name and namespace in other branches
- 11.x core/tests/Drupal/FunctionalTests/Core/Recipe/RollbackTest.php \Drupal\FunctionalTests\Core\Recipe\RollbackTest
@group Recipe
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait implements \PHPUnit\Framework\TestCase
- class \Drupal\FunctionalTests\Core\Recipe\RollbackTest uses \Drupal\FunctionalTests\Core\Recipe\RecipeTestTrait implements \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of RollbackTest
File
-
core/
tests/ Drupal/ FunctionalTests/ Core/ Recipe/ RollbackTest.php, line 15
Namespace
Drupal\FunctionalTests\Core\RecipeView source
class RollbackTest extends BrowserTestBase {
use RecipeTestTrait;
/**
* {@inheritdoc}
*
* Disable strict config schema because this test explicitly makes the
* recipe system save invalid config, to prove that it validates it after
* the fact and raises an error.
*/
protected $strictConfigSchema = FALSE;
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected static $modules = [
'system',
'user',
];
/**
* @testWith ["invalid_config", "core.date_format.invalid"]
* ["recipe_depend_on_invalid", "core.date_format.invalid"]
* ["recipe_depend_on_invalid_config_and_valid_modules", "core.date_format.invalid"]
*/
public function testRollbackForInvalidConfig(string $recipe_fixture, string $expected_invalid_config_name) : void {
$expected_core_extension_modules = $this->config('core.extension')
->get('module');
/** @var string $recipe_fixture */
$recipe_fixture = realpath(__DIR__ . "/../../../../fixtures/recipes/{$recipe_fixture}");
$process = $this->applyRecipe($recipe_fixture, 1);
$this->assertStringContainsString("There were validation errors in {$expected_invalid_config_name}:", $process->getErrorOutput());
$this->assertCheckpointsExist([
"Backup before the '" . Recipe::createFromDirectory($recipe_fixture)->name . "' recipe.",
]);
// @see invalid_config
$date_formats = DateFormat::loadMultiple([
'valid',
'invalid',
]);
$this->assertEmpty($date_formats, "The recipe's imported config was not rolled back.");
// @see recipe_depend_on_invalid_config_and_valid_module
$this->assertSame($expected_core_extension_modules, $this->config('core.extension')
->get('module'));
}
/**
* Asserts that the current set of checkpoints matches the given labels.
*
* @param string[] $expected_labels
* The labels of every checkpoint that is expected to exist currently, in
* the expected order.
*/
private function assertCheckpointsExist(array $expected_labels) : void {
$checkpoints = \Drupal::service('config.checkpoints');
$labels = array_map(fn(Checkpoint $c) => $c->label, iterator_to_array($checkpoints));
$this->assertSame($expected_labels, array_values($labels));
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
BrowserTestBase::$baseUrl | protected | property | The base URL. | |||
BrowserTestBase::$configImporter | protected | property | The config importer that can be used in a test. | |||
BrowserTestBase::$customTranslations | protected | property | An array of custom translations suitable for SettingsEditor::rewrite(). | |||
BrowserTestBase::$mink | protected | property | Mink session manager. | |||
BrowserTestBase::$minkDefaultDriverArgs | protected | property | Mink default driver params. | |||
BrowserTestBase::$minkDefaultDriverClass | protected | property | Mink class for the default driver to use. | 1 | ||
BrowserTestBase::$originalContainer | protected | property | The original container. | |||
BrowserTestBase::$originalShutdownCallbacks | protected | property | The original array of shutdown function callbacks. | |||
BrowserTestBase::$preserveGlobalState | protected | property | ||||
BrowserTestBase::$profile | protected | property | The profile to install as a basis for testing. | 40 | ||
BrowserTestBase::$runTestInSeparateProcess | protected | property | Browser tests are run in separate processes to prevent collisions between code that may be loaded by tests. |
|||
BrowserTestBase::$timeLimit | protected | property | Time limit in seconds for the test. | |||
BrowserTestBase::$translationFilesDirectory | protected | property | The translation file directory for the test environment. | |||
BrowserTestBase::cleanupEnvironment | protected | function | Clean up the test environment. | |||
BrowserTestBase::config | protected | function | Configuration accessor for tests. Returns non-overridden configuration. | |||
BrowserTestBase::filePreDeleteCallback | public static | function | Ensures test files are deletable. | |||
BrowserTestBase::getDefaultDriverInstance | protected | function | Gets an instance of the default Mink driver. | |||
BrowserTestBase::getDrupalSettings | protected | function | Gets the JavaScript drupalSettings variable for the currently-loaded page. | 1 | ||
BrowserTestBase::getHttpClient | protected | function | Obtain the HTTP client for the system under test. | |||
BrowserTestBase::getMinkDriverArgs | protected | function | Gets the Mink driver args from an environment variable. | 1 | ||
BrowserTestBase::getOptions | protected | function | Helper function to get the options of select field. | |||
BrowserTestBase::getSession | public | function | Returns Mink session. | |||
BrowserTestBase::getSessionCookies | protected | function | Get session cookies from current session. | |||
BrowserTestBase::getTestMethodCaller | protected | function | Retrieves the current calling line in the class under test. | |||
BrowserTestBase::initFrontPage | protected | function | Visits the front page when initializing Mink. | 3 | ||
BrowserTestBase::initMink | protected | function | Initializes Mink sessions. | 1 | ||
BrowserTestBase::installDrupal | public | function | Installs Drupal into the test site. | 2 | ||
BrowserTestBase::registerSessions | protected | function | Registers additional Mink sessions. | |||
BrowserTestBase::setUp | protected | function | 544 | |||
BrowserTestBase::setUpAppRoot | protected | function | Sets up the root application path. | |||
BrowserTestBase::setUpBeforeClass | public static | function | 1 | |||
BrowserTestBase::tearDown | protected | function | 3 | |||
BrowserTestBase::translatePostValues | protected | function | Transforms a nested array into a flat array suitable for submitForm(). | |||
BrowserTestBase::xpath | protected | function | Performs an xpath search on the contents of the internal browser. | |||
BrowserTestBase::__get | public | function | ||||
BrowserTestBase::__sleep | public | function | Prevents serializing any properties. | |||
ExtensionListTestTrait::getModulePath | protected | function | Gets the path for the specified module. | |||
ExtensionListTestTrait::getThemePath | protected | function | Gets the path for the specified theme. | |||
FunctionalTestSetupTrait::$apcuEnsureUniquePrefix | protected | property | The flag to set 'apcu_ensure_unique_prefix' setting. | 1 | ||
FunctionalTestSetupTrait::$classLoader | protected | property | The class loader to use for installation and initialization of setup. | |||
FunctionalTestSetupTrait::$rootUser | protected | property | The "#1" admin user. | |||
FunctionalTestSetupTrait::$usesSuperUserAccessPolicy | protected | property | Set to TRUE to make user 1 a super user. | 10 | ||
FunctionalTestSetupTrait::doInstall | protected | function | Execute the non-interactive installer. | 2 | ||
FunctionalTestSetupTrait::getDatabaseTypes | protected | function | Returns all supported database driver installer objects. | |||
FunctionalTestSetupTrait::initConfig | protected | function | Initialize various configurations post-installation. | 1 | ||
FunctionalTestSetupTrait::initKernel | protected | function | Initializes the kernel after installation. | |||
FunctionalTestSetupTrait::initSettings | protected | function | Initialize settings created during install. | |||
FunctionalTestSetupTrait::initUserSession | protected | function | Initializes user 1 for the site to be installed. | |||
FunctionalTestSetupTrait::installDefaultThemeFromClassProperty | protected | function | Installs the default theme defined by `static::$defaultTheme` when needed. | 1 | ||
FunctionalTestSetupTrait::installModulesFromClassProperty | protected | function | Install modules defined by `static::$modules`. | 1 | ||
FunctionalTestSetupTrait::installParameters | protected | function | Returns the parameters that will be used when the test installs Drupal. | 8 | ||
FunctionalTestSetupTrait::prepareEnvironment | protected | function | Prepares the current environment for running the test. | 28 | ||
FunctionalTestSetupTrait::prepareRequestForGenerator | protected | function | Creates a mock request and sets it on the generator. | |||
FunctionalTestSetupTrait::prepareSettings | protected | function | Prepares site settings and services before installation. | 4 | ||
FunctionalTestSetupTrait::rebuildAll | protected | function | Resets and rebuilds the environment after setup. | |||
FunctionalTestSetupTrait::rebuildContainer | protected | function | Rebuilds \Drupal::getContainer(). | |||
FunctionalTestSetupTrait::resetAll | protected | function | Resets all data structures after having enabled new modules. | |||
FunctionalTestSetupTrait::setContainerParameter | protected | function | Changes parameters in the services.yml file. | |||
FunctionalTestSetupTrait::setupBaseUrl | protected | function | Sets up the base URL based upon the environment variable. | |||
FunctionalTestSetupTrait::writeSettings | protected | function | Rewrites the settings.php file of the test site. | 1 | ||
RecipeTestTrait::applyRecipe | protected | function | Applies a recipe to the site. | |||
RecipeTestTrait::createRecipe | protected | function | Creates a recipe in a temporary directory. | |||
RefreshVariablesTrait::refreshVariables | protected | function | Refreshes in-memory configuration and state information. | 2 | ||
RollbackTest::$defaultTheme | protected | property | The theme to install as the default for testing. | Overrides BrowserTestBase::$defaultTheme | ||
RollbackTest::$modules | protected static | property | Modules to install. | Overrides BrowserTestBase::$modules | ||
RollbackTest::$strictConfigSchema | protected | property | Disable strict config schema because this test explicitly makes the recipe system save invalid config, to prove that it validates it after the fact and raises an error. |
Overrides TestSetupTrait::$strictConfigSchema | ||
RollbackTest::assertCheckpointsExist | private | function | Asserts that the current set of checkpoints matches the given labels. | |||
RollbackTest::testRollbackForInvalidConfig | public | function | @testWith ["invalid_config", "core.date_format.invalid"][[api-linebreak]] ["recipe_depend_on_invalid", "core.date_format.invalid"][[api-linebreak]] ["recipe_depend_on_invalid_config_and_valid_modules",… |
|||
StorageCopyTrait::replaceStorageContents | protected static | function | Copy the configuration from one storage to another and remove stale items. | |||
TestSetupTrait::$configSchemaCheckerExclusions | protected static | property | An array of config object names that are excluded from schema checking. | 2 | ||
TestSetupTrait::$container | protected | property | The dependency injection container used in the test. | |||
TestSetupTrait::$databasePrefix | protected | property | The database prefix of this test run. | |||
TestSetupTrait::$kernel | protected | property | The DrupalKernel instance used in the test. | |||
TestSetupTrait::$originalSite | protected | property | The site directory of the original parent site. | |||
TestSetupTrait::$privateFilesDirectory | protected | property | The private file directory for the test environment. | |||
TestSetupTrait::$publicFilesDirectory | protected | property | The public file directory for the test environment. | |||
TestSetupTrait::$root | protected | property | The app root. | |||
TestSetupTrait::$siteDirectory | protected | property | The site directory of this test run. | |||
TestSetupTrait::$tempFilesDirectory | protected | property | The temporary file directory for the test environment. | |||
TestSetupTrait::$testId | protected | property | The test run ID. | |||
TestSetupTrait::changeDatabasePrefix | protected | function | Changes the database connection to the prefixed one. | |||
TestSetupTrait::getConfigSchemaExclusions | protected | function | Gets the config schema exclusions for this test. | |||
TestSetupTrait::getDatabaseConnection | Deprecated | public static | function | Returns the database connection to the site under test. | ||
TestSetupTrait::prepareDatabasePrefix | protected | function | Generates a database prefix for running tests. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.