Skip to content
Snippets Groups Projects
Unverified Commit 743c2e68 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3439832 by pooja_sharma, solimanharkas, smustgrave, quietone, vensires:...

Issue #3439832 by pooja_sharma, solimanharkas, smustgrave, quietone, vensires: Fix Content Moderation tests that rely on UID1's super user behavior

(cherry picked from commit 56186f90)
parent 78e8f760
No related branches found
No related tags found
20 merge requests!11380Issue #3490698 by catch, spokje: Bump MINIMUM_STABILITY back to 'stable' when...,!11239Issue #3507548: Allow workspace changes listing to show all items, without a pager,!11238Fix issue #3051797,!11213Issue #3506743 by tomislav.matokovic: Increasing the color contrast for the navigation block title against the background of the navigation sidebar to at least 4.5:1,!11147Draft: Try to avoid manually setting required cache contexts,!11108Issue #3490298 by nicxvan: Profiles can be missed in OOP hooks,!11093Drupal on MongoDB 11.1.x,!11017Issue #3502540: Add date filter for moderated content.,!11009Issue #3486972 migrate feed icon,!10999Cleaning up Taxonomy hooks and updating baseline.,!10977Issue #3501457: Fix path used in a A11y Test Admin,!10881Issue #3489329 by mfb, casey: symfony/http-foundation commit 32310ff breaks PathValidator,!10570Issue #3494197: Convert Twig engine hooks,!10567Issue #3494154: Index is not added if entity doesn't support revisions,!10548Revert "Issue #3478621 by catch, longwave, nicxvan: Add filecache to OOP hook attribute parsing",!10404Margin has been added,!10391Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...,!10388Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...,!10376Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...,!10237Issue #3484105 by nicxvan, godotislate: Automatically included .inc files are no longer included
Pipeline #338912 passed
Pipeline: drupal

#338913

    ......@@ -7,6 +7,7 @@
    use Drupal\Tests\BrowserTestBase;
    use Drupal\Tests\content_moderation\Traits\ContentModerationTestTrait;
    use Drupal\Tests\content_translation\Traits\ContentTranslationTestTrait;
    use Drupal\user\Entity\Role;
    /**
    * Test content_moderation functionality with content_translation.
    ......@@ -34,14 +35,6 @@ class ModerationContentTranslationTest extends BrowserTestBase {
    'content_translation',
    ];
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    /**
    * {@inheritdoc}
    */
    ......@@ -52,7 +45,12 @@ class ModerationContentTranslationTest extends BrowserTestBase {
    */
    protected function setUp(): void {
    parent::setUp();
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser([
    'bypass node access',
    'create content translations',
    'translate any entity',
    ]);
    $this->drupalLogin($this->adminUser);
    // Create an Article content type.
    $this->drupalCreateContentType(['type' => 'article', 'name' => 'Article'])->save();
    static::createLanguageFromLangcode('fr');
    ......@@ -91,7 +89,7 @@ public function testModerationWithExistingContent(): void {
    $workflow = $this->createEditorialWorkflow();
    $workflow->getTypePlugin()->addEntityTypeAndBundle('node', 'article');
    $workflow->save();
    $this->drupalLogin($this->rootUser);
    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['use editorial transition publish']);
    // Edit the English node.
    $this->drupalGet('node/' . $english_node->id() . '/edit');
    ......
    ......@@ -29,16 +29,20 @@ class ModerationFormTest extends ModerationStateTestBase {
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    protected $defaultTheme = 'stark';
    /**
    * {@inheritdoc}
    */
    protected $defaultTheme = 'stark';
    protected function getAdministratorPermissions(): array {
    return array_merge($this->permissions, [
    'administer entity_test content',
    'view test entity',
    'translate any entity',
    'bypass node access',
    ]);
    }
    /**
    * {@inheritdoc}
    ......@@ -196,7 +200,8 @@ public function testModerationForm(): void {
    * Tests moderation non-bundle entity type.
    */
    public function testNonBundleModerationForm(): void {
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);
    $this->workflow->getTypePlugin()->addEntityTypeAndBundle('entity_test_mulrevpub', 'entity_test_mulrevpub');
    $this->workflow->save();
    ......@@ -290,7 +295,8 @@ public function testModerationFormSetsRevisionAuthor(): void {
    * Tests translated and moderated nodes.
    */
    public function testContentTranslationNodeForm(): void {
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);
    // Add French language.
    static::createLanguageFromLangcode('fr');
    ......
    ......@@ -29,16 +29,19 @@ class ModerationLocaleTest extends ModerationStateTestBase {
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    protected $defaultTheme = 'stark';
    /**
    * {@inheritdoc}
    */
    protected $defaultTheme = 'stark';
    protected function getAdministratorPermissions(): array {
    return array_merge($this->permissions, [
    'create content translations',
    'bypass node access',
    'translate any entity',
    ]);
    }
    /**
    * {@inheritdoc}
    ......@@ -46,8 +49,8 @@ class ModerationLocaleTest extends ModerationStateTestBase {
    protected function setUp(): void {
    parent::setUp();
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);
    // Enable moderation on Article node type.
    $this->createContentTypeFromUi('Article', 'article', TRUE);
    ......
    ......@@ -16,16 +16,18 @@ class ModerationStateBlockTest extends ModerationStateTestBase {
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    protected $defaultTheme = 'stark';
    /**
    * {@inheritdoc}
    */
    protected $defaultTheme = 'stark';
    protected function getAdministratorPermissions(): array {
    return array_merge($this->permissions, [
    'administer blocks',
    'administer block content',
    ]);
    }
    /**
    * {@inheritdoc}
    ......@@ -64,7 +66,8 @@ protected function setUp(): void {
    * @see \Drupal\content_moderation\Tests\ModerationFormTest::testModerationForm
    */
    public function testCustomBlockModeration(): void {
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);
    // Enable moderation for content blocks.
    $edit['bundles[basic]'] = TRUE;
    ......
    ......@@ -24,16 +24,18 @@ class WorkspaceContentModerationIntegrationTest extends ModerationStateTestBase
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    protected $defaultTheme = 'stark';
    /**
    * {@inheritdoc}
    */
    protected $defaultTheme = 'stark';
    protected function getAdministratorPermissions(): array {
    return array_merge($this->permissions, [
    'bypass node access',
    'view any workspace',
    ]);
    }
    /**
    * {@inheritdoc}
    ......@@ -41,7 +43,8 @@ class WorkspaceContentModerationIntegrationTest extends ModerationStateTestBase
    protected function setUp(): void {
    parent::setUp();
    $this->drupalLogin($this->rootUser);
    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);
    // Enable moderation on Article node type.
    $this->createContentTypeFromUi('Article', 'article', TRUE);
    ......
    ......@@ -33,14 +33,6 @@ class EntityStateChangeValidationTest extends KernelTestBase {
    'workflows',
    ];
    /**
    * {@inheritdoc}
    *
    * @todo Remove and fix test to not rely on super user.
    * @see https://www.drupal.org/project/drupal/issues/3437620
    */
    protected bool $usesSuperUserAccessPolicy = TRUE;
    /**
    * An admin user.
    *
    ......@@ -69,7 +61,6 @@ protected function setUp(): void {
    * @covers ::validate
    */
    public function testValidTransition(): void {
    $this->setCurrentUser($this->adminUser);
    $node_type = NodeType::create([
    'type' => 'example',
    ......@@ -87,6 +78,7 @@ public function testValidTransition(): void {
    $node->moderation_state->value = 'draft';
    $node->save();
    $this->setCurrentUser($this->createUser(['use editorial transition publish']));
    $node->moderation_state->value = 'published';
    $this->assertCount(0, $node->validate());
    $node->save();
    ......@@ -153,7 +145,6 @@ public function testInvalidState(): void {
    * Tests validation with no initial state or an invalid state.
    */
    public function testInvalidStateWithoutExisting(): void {
    $this->setCurrentUser($this->adminUser);
    // Create content without moderation enabled for the content type.
    $node_type = NodeType::create([
    'type' => 'example',
    ......@@ -173,6 +164,7 @@ public function testInvalidStateWithoutExisting(): void {
    $workflow->getTypePlugin()->addEntityTypeAndBundle('node', 'example');
    $workflow->save();
    $this->setCurrentUser($this->createUser(['use editorial transition create_new_draft']));
    // Validate the invalid state.
    $node = Node::load($node->id());
    $node->moderation_state->value = 'invalid_state';
    ......@@ -203,7 +195,6 @@ public function testInvalidStateWithoutExisting(): void {
    * Tests state transition validation with multiple languages.
    */
    public function testInvalidStateMultilingual(): void {
    $this->setCurrentUser($this->adminUser);
    ConfigurableLanguage::createFromLangcode('fr')->save();
    $node_type = NodeType::create([
    ......@@ -216,6 +207,7 @@ public function testInvalidStateMultilingual(): void {
    $workflow->getTypePlugin()->addEntityTypeAndBundle('node', 'example');
    $workflow->save();
    $this->setCurrentUser($this->createUser(['use editorial transition archive']));
    $node = Node::create([
    'type' => 'example',
    'title' => 'English Published Node',
    ......@@ -261,7 +253,6 @@ public function testInvalidStateMultilingual(): void {
    * Tests that content without prior moderation information can be moderated.
    */
    public function testExistingContentWithNoModeration(): void {
    $this->setCurrentUser($this->adminUser);
    $node_type = NodeType::create([
    'type' => 'example',
    ......@@ -282,6 +273,7 @@ public function testExistingContentWithNoModeration(): void {
    $workflow->getTypePlugin()->addEntityTypeAndBundle('node', 'example');
    $workflow->save();
    $this->setCurrentUser($this->createUser(['use editorial transition publish']));
    $node = Node::load($nid);
    // Having no previous state should not break validation.
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment