DeprecatedModerationStateViewsRelationshipTest.php
Namespace
Drupal\Tests\content_moderation\FunctionalFile
-
core/
modules/ content_moderation/ tests/ src/ Functional/ DeprecatedModerationStateViewsRelationshipTest.php
View source
<?php
namespace Drupal\Tests\content_moderation\Functional;
use Drupal\node\Entity\NodeType;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait;
/**
* Test the deprecated views relationships.
*
* @group content_moderation
* @group legacy
*/
class DeprecatedModerationStateViewsRelationshipTest extends BrowserTestBase {
use ContentModerationTestTrait;
/**
* Modules to enable.
*
* @var array
*/
public static $modules = [
'node',
'content_moderation',
'views_ui',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
NodeType::create([
'type' => 'moderated',
])->save();
$workflow = $this->createEditorialWorkflow();
$workflow->getTypePlugin()
->addEntityTypeAndBundle('node', 'moderated');
$workflow->save();
$this->drupalLogin($this->rootUser);
}
/**
* Test how the deprecated relationships appear in the UI.
*/
public function testReportDeprecatedModerationStateRelationships() {
// Assert there is a warning in the UI to prevent new users from using the
// feature.
$this->drupalGet('admin/structure/views/nojs/add-handler/moderated_content/moderated_content/relationship');
$this->assertSession()
->pageTextContains('Deprecated: Content moderation state');
$this->assertSession()
->pageTextContains('Using a relationship to the Content Moderation State entity type has been deprecated');
// Assert by default the deprecation warning does not appear in the status
// report.
$this->drupalGet('admin/reports/status');
$this->assertSession()
->pageTextNotContains('Content Moderation State views relationship');
// Install the views intended for testing the relationship and assert the
// warning appears with the view name as a link.
$this->container
->get('module_installer')
->install([
'content_moderation_test_views',
]);
$this->drupalGet('admin/reports/status');
$this->assertSession()
->pageTextContains('Content Moderation State views relationship');
$this->assertSession()
->linkExists('test_content_moderation_base_table_test');
$this->assertSession()
->linkByHrefExists('admin/structure/views/view/test_content_moderation_base_table_test');
// Uninstall views_ui and assert the warning appears with a plain text view
// name.
$this->container
->get('module_installer')
->uninstall([
'views_ui',
]);
$this->drupalGet('admin/reports/status');
$this->assertSession()
->pageTextContains('Content Moderation State views relationship');
$this->assertSession()
->pageTextContains('test_content_moderation_base_table_test');
}
/**
* Test the deprecations are triggered when the deprecated code is executed.
*
* @expectedDeprecation Moderation state relationships are deprecated in drupal:8.8.0 and is removed in drupal:9.0.0. See https://www.drupal.org/node/3061099
*/
public function testCodeDeprecationModerationStateRelationships() {
$this->container
->get('module_installer')
->install([
'content_moderation_test_views',
]);
$this->drupalGet('test-content-moderation-base-table-test');
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
DeprecatedModerationStateViewsRelationshipTest | Test the deprecated views relationships. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.