Issue #3469163 by catch: Speed up ContentModerationStateTest

merge-requests/5909/merge
nod_ 2024-08-23 14:46:25 +02:00
parent 776869929b
commit fc25e33de9
No known key found for this signature in database
GPG Key ID: 76624892606FA197
2 changed files with 70 additions and 18 deletions

View File

@ -111,10 +111,18 @@ class ContentModerationStateTest extends KernelTestBase {
/**
* Tests basic monolingual content moderation through the API.
*
* @dataProvider basicModerationTestCases
*/
public function testBasicModeration($entity_type_id): void {
public function testBasicModeration(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestBasicModeration($entity_type_id);
}
}
/**
* Tests basic monolingual content moderation through the API.
*/
protected function doTestBasicModeration($entity_type_id): void {
$entity = $this->createEntity($entity_type_id, 'draft');
$entity = $this->reloadEntity($entity);
$this->assertEquals('draft', $entity->moderation_state->value);
@ -201,10 +209,18 @@ class ContentModerationStateTest extends KernelTestBase {
/**
* Tests removal of content moderation state entity.
*
* @dataProvider basicModerationTestCases
*/
public function testContentModerationStateDataRemoval($entity_type_id): void {
public function testContentModerationStateDataRemoval(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestContentModerationStateDataRemoval($entity_type_id);
}
}
/**
* Tests removal of content moderation state entity.
*/
public function doTestContentModerationStateDataRemoval($entity_type_id): void {
/** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
$entity = $this->createEntity($entity_type_id);
$entity = $this->reloadEntity($entity);
@ -215,10 +231,18 @@ class ContentModerationStateTest extends KernelTestBase {
/**
* Tests removal of content moderation state entity revisions.
*
* @dataProvider basicModerationTestCases
*/
public function testContentModerationStateRevisionDataRemoval($entity_type_id): void {
public function testContentModerationStateRevisionDataRemoval(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestContentModerationStateRevisionDataRemoval($entity_type_id);
}
}
/**
* Tests removal of content moderation state entity revisions.
*/
public function doTestContentModerationStateRevisionDataRemoval($entity_type_id): void {
/** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
$entity = $this->createEntity($entity_type_id);
$revision_1 = clone $entity;
@ -250,10 +274,18 @@ class ContentModerationStateTest extends KernelTestBase {
/**
* Tests removal of content moderation state pending entity revisions.
*
* @dataProvider basicModerationTestCases
*/
public function testContentModerationStatePendingRevisionDataRemoval($entity_type_id): void {
public function testContentModerationStatePendingRevisionDataRemoval(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestContentModerationStatePendingRevisionDataRemoval($entity_type_id);
}
}
/**
* Tests removal of content moderation state pending entity revisions.
*/
public function doTestContentModerationStatePendingRevisionDataRemoval($entity_type_id): void {
$entity = $this->createEntity($entity_type_id, 'published');
$entity->setNewRevision(TRUE);
$entity->moderation_state = 'draft';
@ -296,10 +328,18 @@ class ContentModerationStateTest extends KernelTestBase {
/**
* Tests removal of content moderation state translations.
*
* @dataProvider basicModerationTestCases
*/
public function testContentModerationStateTranslationDataRemoval($entity_type_id): void {
public function testContentModerationStateTranslationDataRemoval(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestContentModerationStateTranslationDataRemoval($entity_type_id);
}
}
/**
* Tests removal of content moderation state translations.
*/
public function doTestContentModerationStateTranslationDataRemoval($entity_type_id): void {
// Test content moderation state translation deletion.
if ($this->entityTypeManager->getDefinition($entity_type_id)->isTranslatable()) {
/** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
@ -673,15 +713,23 @@ class ContentModerationStateTest extends KernelTestBase {
], $workflow->getDependencies());
}
/**
* Tests the revision default state of the moderation state entity revisions.
*/
public function testRevisionDefaultState(): void {
foreach (static::basicModerationTestCases() as $case) {
[$entity_type_id] = $case;
$this->doTestRevisionDefaultState($entity_type_id);
}
}
/**
* Tests the revision default state of the moderation state entity revisions.
*
* @param string $entity_type_id
* The ID of entity type to be tested.
*
* @dataProvider basicModerationTestCases
*/
public function testRevisionDefaultState($entity_type_id): void {
public function doTestRevisionDefaultState($entity_type_id): void {
// Check that the revision default state of the moderated entity and the
// content moderation state entity always match.
$entity = $this->createEntity($entity_type_id, 'published');

View File

@ -19,6 +19,10 @@ trait ContentModerationTestTrait {
* The editorial workflow entity.
*/
protected function createEditorialWorkflow() {
// Allow this method to be called twice from the same test method.
if ($workflow = Workflow::load('editorial')) {
return $workflow;
}
$workflow = Workflow::create([
'type' => 'content_moderation',
'id' => 'editorial',