abstract class MigrateUiParagraphsTestBase in Paragraphs 8
Provides a base class for testing Paragraphs migration via the UI.
Hierarchy
- class \Drupal\Tests\BrowserTestBase extends \PHPUnit\Framework\TestCase uses FunctionalTestSetupTrait, TestSetupTrait, AssertLegacyTrait, BlockCreationTrait, ConfigTestTrait, ContentTypeCreationTrait, NodeCreationTrait, PhpunitCompatibilityTrait, RandomGeneratorTrait, TestRequirementsTrait, UiHelperTrait, UserCreationTrait, XdebugRequestTrait
- class \Drupal\Tests\migrate_drupal_ui\Functional\MigrateUpgradeTestBase uses MigrationConfigurationTrait, CreateTestContentEntitiesTrait
- class \Drupal\Tests\paragraphs\Functional\Migrate\MigrateUiParagraphsTestBase uses StringTranslationTrait
- class \Drupal\Tests\migrate_drupal_ui\Functional\MigrateUpgradeTestBase uses MigrationConfigurationTrait, CreateTestContentEntitiesTrait
Expanded class hierarchy of MigrateUiParagraphsTestBase
File
- tests/
src/ Functional/ Migrate/ MigrateUiParagraphsTestBase.php, line 17
Namespace
Drupal\Tests\paragraphs\Functional\MigrateView source
abstract class MigrateUiParagraphsTestBase extends MigrateUpgradeTestBase {
use StringTranslationTrait;
/**
* {@inheritdoc}
*/
public static $modules = [
'content_translation',
'migrate_drupal_multilingual',
'migrate_drupal_ui',
'paragraphs',
'telephone',
];
/**
* {@inheritdoc}
*/
protected function getSourceBasePath() {
return drupal_get_path('module', 'paragraphs') . '/tests/fixtures';
}
/**
* {@inheritdoc}
*/
protected function getSourcePrivateFilesPath() {
return drupal_get_path('module', 'paragraphs') . '/tests/fixtures';
}
/**
* Gets the expected entity IDs and labels per entity type after migration.
*
* @return string|null[][]
* An array of expected entity labels keyed by IDs, grouped by entity type
* ID. For some of the entities, label can be NULL.
*/
protected function getExpectedEntities() {
$expected_entities = [
'entity_form_display' => [
'block_content.basic.default' => NULL,
'comment.comment.default' => NULL,
'comment.comment_forum.default' => NULL,
'comment.comment_node_article.default' => NULL,
'comment.comment_node_blog.default' => NULL,
'comment.comment_node_book.default' => NULL,
'comment.comment_node_page.default' => NULL,
'comment.comment_node_paragraphs_test.default' => NULL,
'comment.comment_node_test_content_type.default' => NULL,
'node.article.default' => NULL,
'node.blog.default' => NULL,
'node.book.default' => NULL,
'node.forum.default' => NULL,
'node.page.default' => NULL,
'node.paragraphs_test.default' => NULL,
'node.test_content_type.default' => NULL,
'paragraph.field_collection_test.default' => NULL,
'paragraph.nested_fc_inner.default' => NULL,
'paragraph.nested_fc_outer.default' => NULL,
'paragraph.paragraph_bundle_one.default' => NULL,
'paragraph.paragraph_bundle_two.default' => NULL,
'taxonomy_term.test_vocabulary.default' => NULL,
'user.user.default' => NULL,
],
'entity_form_mode' => [
'user.register' => 'Register',
],
'entity_view_display' => [
'block_content.basic.default' => NULL,
'comment.comment.default' => NULL,
'comment.comment_forum.default' => NULL,
'comment.comment_node_article.default' => NULL,
'comment.comment_node_blog.default' => NULL,
'comment.comment_node_book.default' => NULL,
'comment.comment_node_page.default' => NULL,
'comment.comment_node_paragraphs_test.default' => NULL,
'comment.comment_node_test_content_type.default' => NULL,
'node.article.custom' => NULL,
'node.article.default' => NULL,
'node.article.rss' => NULL,
'node.article.teaser' => NULL,
'node.blog.default' => NULL,
'node.blog.teaser' => NULL,
'node.book.default' => NULL,
'node.book.teaser' => NULL,
'node.forum.default' => NULL,
'node.forum.teaser' => NULL,
'node.page.default' => NULL,
'node.page.teaser' => NULL,
'node.paragraphs_test.default' => NULL,
'node.paragraphs_test.teaser' => NULL,
'node.test_content_type.default' => NULL,
'paragraph.field_collection_test.default' => NULL,
'paragraph.nested_fc_inner.default' => NULL,
'paragraph.nested_fc_outer.default' => NULL,
'paragraph.paragraph_bundle_one.default' => NULL,
'paragraph.paragraph_bundle_one.paragraphs_editor_preview' => NULL,
'paragraph.paragraph_bundle_two.default' => NULL,
'taxonomy_term.test_vocabulary.default' => NULL,
'user.user.compact' => NULL,
'user.user.default' => NULL,
],
'entity_view_mode' => [
'block_content.full' => 'Full',
'comment.full' => 'Full',
'node.custom' => 'custom',
'node.full' => 'Full',
'node.rss' => 'RSS',
'node.search_index' => 'Search index',
'node.search_result' => 'Search result highlighting input',
'node.teaser' => 'Teaser',
'paragraph.full' => 'Full',
'paragraph.paragraphs_editor_preview' => 'paragraphs_editor_preview',
'paragraph.preview' => 'Preview',
'taxonomy_term.full' => 'Full',
'user.compact' => 'Compact',
'user.full' => 'Full',
],
'field_storage_config' => [
'block_content.body' => 'block_content.body',
'comment.comment_body' => 'comment.comment_body',
'comment.field_integer' => 'comment.field_integer',
'node.body' => 'node.body',
'node.comment' => 'node.comment',
'node.comment_forum' => 'node.comment_forum',
'node.comment_node_article' => 'node.comment_node_article',
'node.comment_node_blog' => 'node.comment_node_blog',
'node.comment_node_book' => 'node.comment_node_book',
'node.comment_node_page' => 'node.comment_node_page',
'node.comment_node_paragraphs_test' => 'node.comment_node_paragraphs_test',
'node.comment_node_test_content_type' => 'node.comment_node_test_content_type',
'node.field_any_paragraph' => 'node.field_any_paragraph',
'node.field_boolean' => 'node.field_boolean',
'node.field_date' => 'node.field_date',
'node.field_date_with_end_time' => 'node.field_date_with_end_time',
'node.field_date_without_time' => 'node.field_date_without_time',
'node.field_datetime_without_time' => 'node.field_datetime_without_time',
'node.field_email' => 'node.field_email',
'node.field_field_collection_test' => 'node.field_field_collection_test',
'node.field_file' => 'node.field_file',
'node.field_float' => 'node.field_float',
'node.field_image' => 'node.field_image',
'node.field_images' => 'node.field_images',
'node.field_integer' => 'node.field_integer',
'node.field_integer_list' => 'node.field_integer_list',
'node.field_link' => 'node.field_link',
'node.field_long_text' => 'node.field_long_text',
'node.field_nested_fc_outer' => 'node.field_nested_fc_outer',
'node.field_node_entityreference' => 'node.field_node_entityreference',
'node.field_paragraph_one_only' => 'node.field_paragraph_one_only',
'node.field_phone' => 'node.field_phone',
'node.field_private_file' => 'node.field_private_file',
'node.field_tags' => 'node.field_tags',
'node.field_term_entityreference' => 'node.field_term_entityreference',
'node.field_term_reference' => 'node.field_term_reference',
'node.field_text' => 'node.field_text',
'node.field_text_filtered' => 'node.field_text_filtered',
'node.field_text_list' => 'node.field_text_list',
'node.field_text_long_filtered' => 'node.field_text_long_filtered',
'node.field_text_long_plain' => 'node.field_text_long_plain',
'node.field_text_plain' => 'node.field_text_plain',
'node.field_text_sum_filtered' => 'node.field_text_sum_filtered',
'node.field_user_entityreference' => 'node.field_user_entityreference',
'node.taxonomy_forums' => 'node.taxonomy_forums',
'paragraph.field_email' => 'paragraph.field_email',
'paragraph.field_integer_list' => 'paragraph.field_integer_list',
'paragraph.field_nested_fc_inner' => 'paragraph.field_nested_fc_inner',
'paragraph.field_text' => 'paragraph.field_text',
'paragraph.field_text_list' => 'paragraph.field_text_list',
'taxonomy_term.field_integer' => 'taxonomy_term.field_integer',
'taxonomy_term.field_term_reference' => 'taxonomy_term.field_term_reference',
'user.field_file' => 'user.field_file',
'user.field_integer' => 'user.field_integer',
'user.user_picture' => 'user.user_picture',
],
'field_config' => [
'block_content.basic.body' => 'Body',
'comment.comment.comment_body' => 'Comment',
'comment.comment_forum.comment_body' => 'Comment',
'comment.comment_node_article.comment_body' => 'Comment',
'comment.comment_node_blog.comment_body' => 'Comment',
'comment.comment_node_book.comment_body' => 'Comment',
'comment.comment_node_page.comment_body' => 'Comment',
'comment.comment_node_paragraphs_test.comment_body' => 'Comment',
'comment.comment_node_test_content_type.comment_body' => 'Comment',
'comment.comment_node_test_content_type.field_integer' => 'Integer',
'node.article.body' => 'Body',
'node.article.comment' => 'Comments',
'node.article.comment_node_article' => 'Comments',
'node.article.field_image' => 'Image',
'node.article.field_link' => 'Link',
'node.article.field_tags' => 'Tags',
'node.article.field_text_filtered' => 'Text filtered',
'node.article.field_text_long_filtered' => 'Text long filtered',
'node.article.field_text_long_plain' => 'Text long plain',
'node.article.field_text_plain' => 'Text plain',
'node.article.field_text_sum_filtered' => 'Text summary filtered',
'node.blog.body' => 'Body',
'node.blog.comment_node_blog' => 'Comments',
'node.blog.field_link' => 'Link',
'node.book.body' => 'Body',
'node.book.comment_node_book' => 'Comments',
'node.forum.body' => 'Body',
'node.forum.comment_forum' => 'Comments',
'node.forum.taxonomy_forums' => 'Forums',
'node.page.body' => 'Body',
'node.page.comment_node_page' => 'Comments',
'node.page.field_text_filtered' => 'Text filtered',
'node.page.field_text_long_filtered' => 'Text long filtered',
'node.page.field_text_long_plain' => 'Text long plain',
'node.page.field_text_plain' => 'Text plain',
'node.page.field_text_sum_filtered' => 'Text summary filtered',
'node.paragraphs_test.body' => 'Body',
'node.paragraphs_test.comment_node_paragraphs_test' => 'Comments',
'node.paragraphs_test.field_any_paragraph' => 'Any Paragraph',
'node.paragraphs_test.field_field_collection_test' => 'Field Collection Test',
'node.paragraphs_test.field_nested_fc_outer' => 'Nested FC Outer',
'node.paragraphs_test.field_paragraph_one_only' => 'Paragraph One Only',
'node.test_content_type.field_boolean' => 'Boolean',
'node.test_content_type.comment_node_test_content_type' => 'Comments',
'node.test_content_type.field_date' => 'Date',
'node.test_content_type.field_date_with_end_time' => 'Date With End Time',
'node.test_content_type.field_date_without_time' => 'Date without time',
'node.test_content_type.field_datetime_without_time' => 'Datetime without time',
'node.test_content_type.field_email' => 'Email',
'node.test_content_type.field_file' => 'File',
'node.test_content_type.field_float' => 'Float',
'node.test_content_type.field_images' => 'Images',
'node.test_content_type.field_integer' => 'Integer',
'node.test_content_type.field_integer_list' => 'Integer List',
'node.test_content_type.field_link' => 'Link',
'node.test_content_type.field_long_text' => 'Long text',
'node.test_content_type.field_node_entityreference' => 'Node Entity Reference',
'node.test_content_type.field_phone' => 'Phone',
'node.test_content_type.field_private_file' => 'Private file',
'node.test_content_type.field_term_entityreference' => 'Term Entity Reference',
'node.test_content_type.field_term_reference' => 'Term Reference',
'node.test_content_type.field_text' => 'Text',
'node.test_content_type.field_text_list' => 'Text List',
'node.test_content_type.field_user_entityreference' => 'User Entity Reference',
'paragraph.field_collection_test.field_integer_list' => 'Integer List',
'paragraph.field_collection_test.field_text' => 'Text',
'paragraph.nested_fc_inner.field_text' => 'Text',
'paragraph.nested_fc_outer.field_nested_fc_inner' => 'Nested FC Inner',
'paragraph.paragraph_bundle_one.field_text' => 'Text',
'paragraph.paragraph_bundle_one.field_text_list' => 'Text List',
'paragraph.paragraph_bundle_two.field_email' => 'Email',
'paragraph.paragraph_bundle_two.field_text' => 'Text',
'taxonomy_term.test_vocabulary.field_integer' => 'Integer',
'taxonomy_term.test_vocabulary.field_term_reference' => 'Term Reference',
'user.user.field_file' => 'File',
'user.user.field_integer' => 'Integer',
'user.user.user_picture' => 'Picture',
],
'node_type' => [
'article' => 'Article',
'blog' => 'Blog entry',
'book' => 'Book page',
'forum' => 'Forum topic',
'page' => 'Basic page',
'paragraphs_test' => 'Paragraphs Test',
'test_content_type' => 'Test content type',
],
'node' => [
1 => 'A Node',
2 => 'The thing about Deep Space 9',
4 => 'is - The thing about Firefly',
6 => 'Comments are closed :-(',
7 => 'Comments are open :-)',
8 => 'Paragraph Migration Test Content UND',
9 => 'Paragraph Migration Test Content EN',
],
'paragraphs_type' => [
'field_collection_test' => 'Field collection test',
'nested_fc_inner' => 'Nested fc inner',
'nested_fc_outer' => 'Nested fc outer',
'paragraph_bundle_one' => 'Paragraph Bundle One',
'paragraph_bundle_two' => 'Paragraph Bundle Two',
],
// Paragraph IDs and labels with 'complete' migration, where node
// revisions (even the active one) and node translations are migrated in a
// single, complete node migration. The final IDs of the paragraph
// entities aren't the same as the ones migrated with the 'classic'
// migration.
// @see https://www.drupal.org/node/3105503
'paragraph' => [
1 => 'Paragraph Migration Test Content UND > Field Collection Test',
2 => 'Paragraph Migration Test Content UND > Field Collection Test',
3 => 'Paragraph Migration Test Content EN > Field Collection Test',
4 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
5 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
6 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
7 => 'Paragraph Migration Test Content UND > Nested FC Outer > Nested FC Inner',
8 => 'Paragraph Migration Test Content UND > Nested FC Outer',
9 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
10 => 'Paragraph Migration Test Content UND > Any Paragraph',
11 => 'Paragraph Migration Test Content UND > Paragraph One Only',
12 => 'Paragraph Migration Test Content EN > Any Paragraph',
13 => 'Paragraph Migration Test Content EN > Paragraph One Only',
14 => 'Paragraph Migration Test Content EN > Paragraph One Only (previous revision)',
15 => 'Paragraph Migration Test Content UND > Any Paragraph',
16 => 'Paragraph Migration Test Content EN > Any Paragraph',
17 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
18 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
],
];
// Paragraph IDs and labels with 'classic' node migration (core 8.8.x has
// only this), where nodes, node revisions and node translations are
// migrated separately.
if (Settings::get('migrate_node_migrate_type_classic', FALSE)) {
$expected_entities['paragraph'] = [
1 => 'Paragraph Migration Test Content UND > Field Collection Test (previous revision)',
2 => 'Paragraph Migration Test Content UND > Field Collection Test (previous revision)',
3 => 'Paragraph Migration Test Content EN > Field Collection Test',
4 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
5 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
6 => 'Paragraph Migration Test Content EN > Field Collection Test (previous revision)',
7 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
8 => 'Paragraph Migration Test Content UND > Any Paragraph (previous revision)',
9 => 'Paragraph Migration Test Content UND > Paragraph One Only (previous revision)',
10 => 'Paragraph Migration Test Content EN > Any Paragraph',
11 => 'Paragraph Migration Test Content EN > Paragraph One Only',
12 => 'Paragraph Migration Test Content EN > Paragraph One Only (previous revision)',
13 => 'Paragraph Migration Test Content UND > Any Paragraph (previous revision)',
14 => 'Paragraph Migration Test Content EN > Any Paragraph',
15 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
16 => 'Paragraph Migration Test Content EN > Any Paragraph (previous revision)',
17 => 'Paragraph Migration Test Content UND > Nested FC Outer > Nested FC Inner',
18 => 'Paragraph Migration Test Content UND > Nested FC Outer',
];
}
return $expected_entities;
}
/**
* {@inheritdoc}
*/
protected function getEntityCounts() {
// This is not used.
$entity_counts = [];
foreach ($this
->getExpectedEntities() as $entity_type_id => $expected_entities) {
$entity_counts[$entity_type_id] = count($expected_entities);
}
return $entity_counts;
}
/**
* {@inheritdoc}
*/
protected function getEntityCountsIncremental() {
// Unused.
return $this
->getEntityCounts();
}
/**
* {@inheritdoc}
*/
protected function getAvailablePaths() {
// Unused.
return [];
}
/**
* {@inheritdoc}
*/
protected function getMissingPaths() {
// Unused.
return [];
}
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this
->loadFixture(drupal_get_path('module', 'paragraphs') . '/tests/fixtures/drupal7.php');
}
/**
* Executes the upgrade process by the UI and asserts basic expectations.
*/
protected function assertMigrateUpgradeViaUi() {
$connection_options = $this->sourceDatabase
->getConnectionOptions();
$this
->drupalGet('/upgrade');
$session = $this
->assertSession();
$session
->responseContains('Upgrade a site by importing its files and the data from its database into a clean and empty new install of Drupal');
$this
->submitForm([], $this
->t('Continue'));
$session
->pageTextContains('Provide credentials for the database of the Drupal site you want to upgrade.');
$driver = $connection_options['driver'];
$connection_options['prefix'] = $connection_options['prefix']['default'];
// Use the driver connection form to get the correct options out of the
// database settings. This supports all of the databases we test against.
$drivers = drupal_get_database_types();
$form = $drivers[$driver]
->getFormOptions($connection_options);
$connection_options = array_intersect_key($connection_options, $form + $form['advanced_options']);
$version = $this
->getLegacyDrupalVersion($this->sourceDatabase);
$edit = [
$driver => $connection_options,
'source_private_file_path' => $this
->getSourcePrivateFilesPath(),
'version' => $version,
'source_base_path' => $this
->getSourceBasePath(),
];
if (count($drivers) !== 1) {
$edit['driver'] = $driver;
}
$edits = $this
->translatePostValues($edit);
$this
->submitForm($edits, $this
->t('Review upgrade'));
$session
->pageTextNotContains('Resolve all issues below to continue the upgrade.');
// ID conflict form.
$session
->buttonExists($this
->t('I acknowledge I may lose data. Continue anyway.'));
$this
->submitForm([], $this
->t('I acknowledge I may lose data. Continue anyway.'));
$session
->statusCodeEquals(200);
// Perform the upgrade.
$this
->submitForm([], $this
->t('Perform upgrade'));
$session
->pageTextContains($this
->t('Congratulations, you upgraded Drupal!'));
// Have to reset all the statics after migration to ensure entities are
// loadable.
$this
->resetAll();
}
/**
* Checks that migrations have been performed successfully.
*/
protected function assertParagraphsMigrationResults() {
$version = $this
->getLegacyDrupalVersion($this->sourceDatabase);
$this
->assertEntities();
$plugin_manager = $this->container
->get('plugin.manager.migration');
/** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */
$all_migrations = $plugin_manager
->createInstancesByTag('Drupal ' . $version);
foreach ($all_migrations as $migration) {
$id_map = $migration
->getIdMap();
foreach ($id_map as $source_id => $map) {
// Convert $source_id into a keyless array so that
// \Drupal\migrate\Plugin\migrate\id_map\Sql::getSourceHash() works as
// expected.
$source_id_values = array_values(unserialize($source_id));
$row = $id_map
->getRowBySource($source_id_values);
$destination = serialize($id_map
->currentDestination());
$message = "Migration of {$source_id} to {$destination} as part of the {$migration->id()} migration. The source row status is " . $row['source_row_status'];
// A completed migration should have maps with
// MigrateIdMapInterface::STATUS_IGNORED or
// MigrateIdMapInterface::STATUS_IMPORTED.
$this
->assertNotSame(MigrateIdMapInterface::STATUS_FAILED, $row['source_row_status'], $message);
$this
->assertNotSame(MigrateIdMapInterface::STATUS_NEEDS_UPDATE, $row['source_row_status'], $message);
}
}
}
/**
* Pass if the page HTML title is the given string.
*
* @param string $expected_title
* The string the page title should be.
*
* @throws \Behat\Mink\Exception\ExpectationException
* Thrown when element doesn't exist, or the title is a different one.
*/
protected function assertPageTitle($expected_title) {
$page_title_element = $this
->getSession()
->getPage()
->find('css', 'h1.page-title');
if (!$page_title_element) {
throw new ExpectationException('No page title element found on the page', $this
->getSession()
->getDriver());
}
$actual_title = $page_title_element
->getText();
$this
->assertSame($expected_title, $actual_title, 'The page title is not the same as expected.');
}
/**
* Asserts that the expected entities exist.
*/
protected function assertEntities() {
foreach ($this
->getExpectedEntities() as $entity_type_id => $expected_entity_labels) {
if ($storage = $this
->getEntityStorage($entity_type_id)) {
$entities = $storage
->loadMultiple();
$actual_labels = array_reduce($entities, function ($carry, EntityInterface $entity) {
$carry[$entity
->id()] = (string) $entity
->label();
return $carry;
});
$this
->assertEquals($expected_entity_labels, $actual_labels, sprintf('The expected %s entities are not matching the actual ones.', $entity_type_id));
}
else {
$this
->fail(sprintf('The expected %s entity type is missing.', $entity_type_id));
}
}
}
/**
* Returns the specified entity's storage when the entity definition exists.
*
* @param string $entity_type_id
* The entity type ID.
*
* @return \Drupal\Core\Entity\EntityStorageInterface|null
* The embed button's entity storage, or NULL if it does not exist.
*/
protected function getEntityStorage(string $entity_type_id) {
$entity_type_manager = $this->container
->get('entity_type.manager');
assert($entity_type_manager instanceof EntityTypeManagerInterface);
try {
$storage = $entity_type_manager
->getStorage($entity_type_id);
} catch (PluginNotFoundException $e) {
// The entity type does not exist.
return NULL;
}
return $storage;
}
/**
* Sets the type of the node migration.
*
* @param bool $classic_node_migration
* Whether nodes should be migrated with the 'classic' way. If this is
* FALSE, and the current Drupal instance has the 'complete' migration, then
* the complete node migration will be used.
*/
protected function setClassicNodeMigration(bool $classic_node_migration) {
$current_method = Settings::get('migrate_node_migrate_type_classic', FALSE);
if ($current_method !== $classic_node_migration) {
$settings['settings']['migrate_node_migrate_type_classic'] = (object) [
'value' => $classic_node_migration,
'required' => TRUE,
];
$this
->writeSettings($settings);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AssertHelperTrait:: |
protected static | function | Casts MarkupInterface objects into strings. | |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertTrue() instead. | |
AssertLegacyTrait:: |
protected | function | Asserts whether an expected cache tag was present in the last response. | |
AssertLegacyTrait:: |
protected | function | Asserts that the element with the given CSS selector is not present. | |
AssertLegacyTrait:: |
protected | function | Asserts that the element with the given CSS selector is present. | |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertEquals() instead. | |
AssertLegacyTrait:: |
protected | function | Passes if the raw text IS found escaped on the loaded page, fail otherwise. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field exists with the given name or ID. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field exists with the given ID and value. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field exists with the given name and value. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field exists in the current page by the given XPath. | |
AssertLegacyTrait:: |
protected | function | Asserts that a checkbox field in the current page is checked. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field exists in the current page with a given Xpath result. | |
AssertLegacyTrait:: |
protected | function | Checks that current response header equals value. | |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertSame() instead. | |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertEquals() instead. | |
AssertLegacyTrait:: |
protected | function | Passes if a link with the specified label is found. | |
AssertLegacyTrait:: |
protected | function | Passes if a link containing a given href (part) is found. | |
AssertLegacyTrait:: |
protected | function | Asserts whether an expected cache tag was absent in the last response. | |
AssertLegacyTrait:: |
protected | function | Passes if the raw text is not found escaped on the loaded page. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field does NOT exist with the given name or ID. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field does not exist with the given ID and value. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field does not exist with the given name and value. | |
AssertLegacyTrait:: |
protected | function | Asserts that a field does not exist or its value does not match, by XPath. | |
AssertLegacyTrait:: |
protected | function | Asserts that a checkbox field in the current page is not checked. | |
AssertLegacyTrait:: |
protected | function | Passes if a link with the specified label is not found. | |
AssertLegacyTrait:: |
protected | function | Passes if a link containing a given href (part) is not found. | |
AssertLegacyTrait:: |
protected | function | Asserts that a select option does NOT exist in the current page. | |
AssertLegacyTrait:: |
protected | function | Triggers a pass if the Perl regex pattern is not found in the raw content. | |
AssertLegacyTrait:: |
protected | function | Passes if the raw text IS not found on the loaded page, fail otherwise. | 1 |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertNotEquals() instead. | |
AssertLegacyTrait:: |
protected | function | Passes if the page (with HTML stripped) does not contains the text. | 1 |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertNotSame() instead. | |
AssertLegacyTrait:: |
protected | function | Passes if the text is found MORE THAN ONCE on the text version of the page. | |
AssertLegacyTrait:: |
protected | function | Asserts that a select option in the current page exists. | |
AssertLegacyTrait:: |
protected | function | Asserts that a select option with the visible text exists. | |
AssertLegacyTrait:: |
protected | function | Asserts that a select option in the current page is checked. | |
AssertLegacyTrait:: |
protected | function | Triggers a pass if the Perl regex pattern is found in the raw content. | |
AssertLegacyTrait:: |
protected | function | Passes if the raw text IS found on the loaded page, fail otherwise. | 1 |
AssertLegacyTrait:: |
protected | function | Asserts the page responds with the specified response code. | 1 |
AssertLegacyTrait:: |
protected | function | Passes if the page (with HTML stripped) contains the text. | 1 |
AssertLegacyTrait:: |
protected | function | Helper for assertText and assertNoText. | |
AssertLegacyTrait:: |
protected | function | Pass if the page title is the given string. | |
AssertLegacyTrait:: |
protected | function | Passes if the text is found ONLY ONCE on the text version of the page. | |
AssertLegacyTrait:: |
protected | function | Passes if the internal browser's URL matches the given path. | |
AssertLegacyTrait:: |
protected | function | Builds an XPath query. | |
AssertLegacyTrait:: |
protected | function | Helper: Constructs an XPath for the given set of attributes and value. | |
AssertLegacyTrait:: |
protected | function | Get all option elements, including nested options, in a select. | |
AssertLegacyTrait:: |
protected | function | Gets the current raw content. | |
AssertLegacyTrait:: |
protected | function | Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertTrue() instead. | |
AssertLegacyTrait:: |
protected | function | ||
BlockCreationTrait:: |
protected | function | Creates a block instance based on default settings. Aliased as: drupalPlaceBlock | |
BrowserHtmlDebugTrait:: |
protected | property | The Base URI to use for links to the output files. | |
BrowserHtmlDebugTrait:: |
protected | property | Class name for HTML output logging. | |
BrowserHtmlDebugTrait:: |
protected | property | Counter for HTML output logging. | |
BrowserHtmlDebugTrait:: |
protected | property | Counter storage for HTML output logging. | |
BrowserHtmlDebugTrait:: |
protected | property | Directory name for HTML output logging. | |
BrowserHtmlDebugTrait:: |
protected | property | HTML output output enabled. | |
BrowserHtmlDebugTrait:: |
protected | property | The file name to write the list of URLs to. | |
BrowserHtmlDebugTrait:: |
protected | property | HTML output test ID. | |
BrowserHtmlDebugTrait:: |
protected | function | Formats HTTP headers as string for HTML output logging. | |
BrowserHtmlDebugTrait:: |
protected | function | Returns headers in HTML output format. | 1 |
BrowserHtmlDebugTrait:: |
protected | function | Logs a HTML output message in a text file. | |
BrowserHtmlDebugTrait:: |
protected | function | Creates the directory to store browser output. | |
BrowserTestBase:: |
protected | property | The base URL. | |
BrowserTestBase:: |
protected | property | The config importer that can be used in a test. | |
BrowserTestBase:: |
protected | property | An array of custom translations suitable for drupal_rewrite_settings(). | |
BrowserTestBase:: |
protected | property | The database prefix of this test run. | |
BrowserTestBase:: |
protected | property | The theme to install as the default for testing. | 1,597 |
BrowserTestBase:: |
protected | property | Mink session manager. | |
BrowserTestBase:: |
protected | property | ||
BrowserTestBase:: |
protected | property | 1 | |
BrowserTestBase:: |
protected | property | The original container. | |
BrowserTestBase:: |
protected | property | The original array of shutdown function callbacks. | |
BrowserTestBase:: |
protected | property | ||
BrowserTestBase:: |
protected | property | The app root. | |
BrowserTestBase:: |
protected | property | Browser tests are run in separate processes to prevent collisions between code that may be loaded by tests. | |
BrowserTestBase:: |
protected | property | Time limit in seconds for the test. | |
BrowserTestBase:: |
protected | property | The translation file directory for the test environment. | |
BrowserTestBase:: |
protected | function | Clean up the Simpletest environment. | |
BrowserTestBase:: |
protected | function | Configuration accessor for tests. Returns non-overridden configuration. | |
BrowserTestBase:: |
protected | function | Translates a CSS expression to its XPath equivalent. | |
BrowserTestBase:: |
protected | function | Gets the value of an HTTP response header. | |
BrowserTestBase:: |
protected | function | Returns all response headers. | |
BrowserTestBase:: |
public static | function | Ensures test files are deletable. | |
BrowserTestBase:: |
protected | function | Gets an instance of the default Mink driver. | |
BrowserTestBase:: |
protected | function | Gets the JavaScript drupalSettings variable for the currently-loaded page. | 1 |
BrowserTestBase:: |
protected | function | Obtain the HTTP client for the system under test. | |
BrowserTestBase:: |
protected | function | Get the Mink driver args from an environment variable, if it is set. Can be overridden in a derived class so it is possible to use a different value for a subset of tests, e.g. the JavaScript tests. | 1 |
BrowserTestBase:: |
protected | function | Helper function to get the options of select field. | |
BrowserTestBase:: |
protected | function |
Provides a Guzzle middleware handler to log every response received. Overrides BrowserHtmlDebugTrait:: |
|
BrowserTestBase:: |
public | function | Returns Mink session. | |
BrowserTestBase:: |
protected | function | Get session cookies from current session. | |
BrowserTestBase:: |
protected | function |
Retrieves the current calling line in the class under test. Overrides BrowserHtmlDebugTrait:: |
|
BrowserTestBase:: |
protected | function | Visits the front page when initializing Mink. | 3 |
BrowserTestBase:: |
protected | function | Initializes Mink sessions. | 1 |
BrowserTestBase:: |
public | function | Installs Drupal into the Simpletest site. | 1 |
BrowserTestBase:: |
protected | function | Registers additional Mink sessions. | |
BrowserTestBase:: |
protected | function | Transforms a nested array into a flat array suitable for drupalPostForm(). | |
BrowserTestBase:: |
protected | function | Performs an xpath search on the contents of the internal browser. | |
BrowserTestBase:: |
public | function | 1 | |
BrowserTestBase:: |
public | function | Prevents serializing any properties. | |
ConfigTestTrait:: |
protected | function | Returns a ConfigImporter object to import test configuration. | |
ConfigTestTrait:: |
protected | function | Copies configuration objects from source storage to target storage. | |
ContentTypeCreationTrait:: |
protected | function | Creates a custom content type based on default settings. Aliased as: drupalCreateContentType | 1 |
CreateTestContentEntitiesTrait:: |
protected | function | Create several pieces of generic content. | |
CreateTestContentEntitiesTrait:: |
protected | function | Create several pieces of generic content. | |
CreateTestContentEntitiesTrait:: |
protected | function | Gets required modules. | |
CreateTestContentEntitiesTrait:: |
protected | function | Install required entity schemas. | |
FunctionalTestSetupTrait:: |
protected | property | The flag to set 'apcu_ensure_unique_prefix' setting. | 1 |
FunctionalTestSetupTrait:: |
protected | property | The class loader to use for installation and initialization of setup. | |
FunctionalTestSetupTrait:: |
protected | property | The config directories used in this test. | |
FunctionalTestSetupTrait:: |
protected | property | The "#1" admin user. | |
FunctionalTestSetupTrait:: |
protected | function | Execute the non-interactive installer. | 1 |
FunctionalTestSetupTrait:: |
protected | function | Returns all supported database driver installer objects. | |
FunctionalTestSetupTrait:: |
protected | function | Initialize various configurations post-installation. | 2 |
FunctionalTestSetupTrait:: |
protected | function | Initializes the kernel after installation. | |
FunctionalTestSetupTrait:: |
protected | function | Initialize settings created during install. | |
FunctionalTestSetupTrait:: |
protected | function | Initializes user 1 for the site to be installed. | |
FunctionalTestSetupTrait:: |
protected | function | Installs the default theme defined by `static::$defaultTheme` when needed. | |
FunctionalTestSetupTrait:: |
protected | function | Install modules defined by `static::$modules`. | 1 |
FunctionalTestSetupTrait:: |
protected | function | Returns the parameters that will be used when Simpletest installs Drupal. | 9 |
FunctionalTestSetupTrait:: |
protected | function | Prepares the current environment for running the test. | 23 |
FunctionalTestSetupTrait:: |
protected | function | Creates a mock request and sets it on the generator. | |
FunctionalTestSetupTrait:: |
protected | function | Prepares site settings and services before installation. | 2 |
FunctionalTestSetupTrait:: |
protected | function | Resets and rebuilds the environment after setup. | |
FunctionalTestSetupTrait:: |
protected | function | Rebuilds \Drupal::getContainer(). | |
FunctionalTestSetupTrait:: |
protected | function | Resets all data structures after having enabled new modules. | |
FunctionalTestSetupTrait:: |
protected | function | Changes parameters in the services.yml file. | |
FunctionalTestSetupTrait:: |
protected | function | Sets up the base URL based upon the environment variable. | |
FunctionalTestSetupTrait:: |
protected | function | Rewrites the settings.php file of the test site. | |
MigrateUiParagraphsTestBase:: |
public static | property |
Modules to enable. Overrides BrowserTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function | Asserts that the expected entities exist. | |
MigrateUiParagraphsTestBase:: |
protected | function | Executes the upgrade process by the UI and asserts basic expectations. | |
MigrateUiParagraphsTestBase:: |
protected | function | Pass if the page HTML title is the given string. | |
MigrateUiParagraphsTestBase:: |
protected | function | Checks that migrations have been performed successfully. | |
MigrateUiParagraphsTestBase:: |
protected | function |
Gets the available upgrade paths. Overrides MigrateUpgradeTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function |
Gets the expected number of entities per entity type after migration. Overrides MigrateUpgradeTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function |
Gets expected number of entities per entity after incremental migration. Overrides MigrateUpgradeTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function | Returns the specified entity's storage when the entity definition exists. | |
MigrateUiParagraphsTestBase:: |
protected | function | Gets the expected entity IDs and labels per entity type after migration. | |
MigrateUiParagraphsTestBase:: |
protected | function |
Gets the missing upgrade paths. Overrides MigrateUpgradeTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function |
Gets the source base path for the concrete test. Overrides MigrateUpgradeTestBase:: |
|
MigrateUiParagraphsTestBase:: |
protected | function | ||
MigrateUiParagraphsTestBase:: |
protected | function | Sets the type of the node migration. | |
MigrateUiParagraphsTestBase:: |
protected | function |
Overrides MigrateUpgradeTestBase:: |
|
MigrateUpgradeTestBase:: |
protected | property |
Use the Standard profile to test help implementations of many core modules. Overrides BrowserTestBase:: |
|
MigrateUpgradeTestBase:: |
protected | property | The source database connection. | |
MigrateUpgradeTestBase:: |
protected | function | Helper method that asserts text on the ID conflict form. | |
MigrateUpgradeTestBase:: |
protected | function | Checks that migrations have been performed successfully. | |
MigrateUpgradeTestBase:: |
protected | function | Helper method to assert the text on the 'Upgrade analysis report' page. | |
MigrateUpgradeTestBase:: |
protected | function | Tests the displayed upgrade paths. | |
MigrateUpgradeTestBase:: |
protected | function | Changes the database connection to the prefixed one. | |
MigrateUpgradeTestBase:: |
protected | function | Loads a database fixture into the source database connection. | |
MigrateUpgradeTestBase:: |
protected | function |
Overrides BrowserTestBase:: |
|
MigrationConfigurationTrait:: |
protected | property | The config factory service. | |
MigrationConfigurationTrait:: |
protected | property | The follow-up migration tags. | |
MigrationConfigurationTrait:: |
protected | property | The migration plugin manager service. | |
MigrationConfigurationTrait:: |
protected | property | The state service. | |
MigrationConfigurationTrait:: |
protected | function | Creates the necessary state entries for SqlBase::getDatabase() to work. | |
MigrationConfigurationTrait:: |
protected | function | Gets the config factory service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the database connection for the source Drupal database. | |
MigrationConfigurationTrait:: |
protected | function | Returns the follow-up migration tags. | |
MigrationConfigurationTrait:: |
public static | function | Determines what version of Drupal the source database contains. | |
MigrationConfigurationTrait:: |
protected | function | Gets the migration plugin manager service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the migrations for import. | |
MigrationConfigurationTrait:: |
protected | function | Gets the state service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the system data from the system table of the source Drupal database. | |
NodeCreationTrait:: |
protected | function | Creates a node based on default settings. Aliased as: drupalCreateNode | |
NodeCreationTrait:: |
public | function | Get a node from the database based on its title. Aliased as: drupalGetNodeByTitle | |
PhpunitCompatibilityTrait:: |
public | function | Returns a mock object for the specified class using the available method. | |
PhpunitCompatibilityTrait:: |
public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | |
RandomGeneratorTrait:: |
protected | property | The random generator. | |
RandomGeneratorTrait:: |
protected | function | Gets the random generator for the utility methods. | |
RandomGeneratorTrait:: |
protected | function | Generates a unique random string containing letters and numbers. | 1 |
RandomGeneratorTrait:: |
public | function | Generates a random PHP object. | |
RandomGeneratorTrait:: |
public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | |
RandomGeneratorTrait:: |
public | function | Callback for random string validation. | |
RefreshVariablesTrait:: |
protected | function | Refreshes in-memory configuration and state information. | 3 |
SessionTestTrait:: |
protected | property | The name of the session cookie. | |
SessionTestTrait:: |
protected | function | Generates a session cookie name. | |
SessionTestTrait:: |
protected | function | Returns the session name in use on the child site. | |
StorageCopyTrait:: |
protected static | function | Copy the configuration from one storage to another and remove stale items. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TestRequirementsTrait:: |
private | function | Checks missing module requirements. | |
TestRequirementsTrait:: |
protected | function | Check module requirements for the Drupal use case. | 1 |
TestRequirementsTrait:: |
protected static | function | Returns the Drupal root directory. | |
TestSetupTrait:: |
protected static | property | An array of config object names that are excluded from schema checking. | |
TestSetupTrait:: |
protected | property | The dependency injection container used in the test. | |
TestSetupTrait:: |
protected | property | The DrupalKernel instance used in the test. | |
TestSetupTrait:: |
protected | property | The site directory of the original parent site. | |
TestSetupTrait:: |
protected | property | The private file directory for the test environment. | |
TestSetupTrait:: |
protected | property | The public file directory for the test environment. | |
TestSetupTrait:: |
protected | property | The site directory of this test run. | |
TestSetupTrait:: |
protected | property | Set to TRUE to strict check all configuration saved. | 2 |
TestSetupTrait:: |
protected | property | The temporary file directory for the test environment. | |
TestSetupTrait:: |
protected | property | The test run ID. | |
TestSetupTrait:: |
protected | function | Changes the database connection to the prefixed one. | |
TestSetupTrait:: |
protected | function | Gets the config schema exclusions for this test. | |
TestSetupTrait:: |
public static | function | Returns the database connection to the site running Simpletest. | |
TestSetupTrait:: |
protected | function | Generates a database prefix for running tests. | 2 |
UiHelperTrait:: |
protected | property | The current user logged in using the Mink controlled browser. | |
UiHelperTrait:: |
protected | property | The number of meta refresh redirects to follow, or NULL if unlimited. | |
UiHelperTrait:: |
protected | property | The number of meta refresh redirects followed during ::drupalGet(). | |
UiHelperTrait:: |
public | function | Returns WebAssert object. | 1 |
UiHelperTrait:: |
protected | function | Builds an a absolute URL from a system path or a URL object. | |
UiHelperTrait:: |
protected | function | Checks for meta refresh tag and if found call drupalGet() recursively. | |
UiHelperTrait:: |
protected | function | Clicks the element with the given CSS selector. | |
UiHelperTrait:: |
protected | function | Follows a link by complete name. | |
UiHelperTrait:: |
protected | function | Searches elements using a CSS selector in the raw content. | |
UiHelperTrait:: |
protected | function | Retrieves a Drupal path or an absolute path. | 3 |
UiHelperTrait:: |
protected | function | Logs in a user using the Mink controlled browser. | |
UiHelperTrait:: |
protected | function | Logs a user out of the Mink controlled browser and confirms. | |
UiHelperTrait:: |
protected | function | Executes a form submission. | |
UiHelperTrait:: |
protected | function | Returns whether a given user account is logged in. | |
UiHelperTrait:: |
protected | function | Takes a path and returns an absolute path. | |
UiHelperTrait:: |
protected | function | Retrieves the plain-text content from the current page. | |
UiHelperTrait:: |
protected | function | Get the current URL from the browser. | |
UiHelperTrait:: |
protected | function | Prepare for a request to testing site. | 1 |
UiHelperTrait:: |
protected | function | Fills and submits a form. | |
UserCreationTrait:: |
protected | function | Checks whether a given list of permission names is valid. | |
UserCreationTrait:: |
protected | function | Creates an administrative role. | |
UserCreationTrait:: |
protected | function | Creates a role with specified permissions. Aliased as: drupalCreateRole | |
UserCreationTrait:: |
protected | function | Create a user with a given set of permissions. Aliased as: drupalCreateUser | |
UserCreationTrait:: |
protected | function | Grant permissions to a user role. | |
UserCreationTrait:: |
protected | function | Switch the current logged in user. | |
UserCreationTrait:: |
protected | function | Creates a random user account and sets it as current user. | |
XdebugRequestTrait:: |
protected | function | Adds xdebug cookies, from request setup. |