lightning_workflow-8.x-3.x-dev/tests/src/FunctionalJavascript/ModerationSidebarTest.php

tests/src/FunctionalJavascript/ModerationSidebarTest.php
<?php

namespace Drupal\Tests\lightning_workflow\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests Lightning Workflow's integration with Moderation Sidebar.
 *
 * @group lightning_workflow
 *
 * @requires module moderation_sidebar
 */
class ModerationSidebarTest extends WebDriverTestBase {

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'lightning_workflow',
    'moderation_sidebar',
    'toolbar',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $this->drupalCreateContentType([
      'type' => 'moderated',
      'third_party_settings' => [
        'lightning_workflow' => [
          'workflow' => 'editorial',
        ],
      ],
    ]);
  }

  /**
   * Tests basic Moderation Sidebar functionality.
   */
  public function testModerationSidebar() {
    $assert_session = $this->assertSession();

    $account = $this->drupalCreateUser([
      'access toolbar',
      'edit own moderated content',
      'use editorial transition publish',
      'use editorial transition review',
      'use moderation sidebar',
      'view any unpublished content',
    ]);
    $this->drupalLogin($account);

    $node = $this->drupalCreateNode(['type' => 'moderated']);
    $this->assertSame('draft', $node->moderation_state->value);
    $this->drupalGet($node->toUrl());

    $toolbar = $assert_session->elementExists('css', '#toolbar-bar');
    $toolbar->clickLink('Tasks');

    $sidebar = $assert_session->waitForElementVisible('css', '.moderation-sidebar-container');
    $this->assertNotEmpty($sidebar);

    $sidebar->pressButton('Publish');
    $assert_session->pageTextContains('The moderation state has been updated.');
    $this->assertSame('Published', $assert_session->elementExists('named', ['link', 'Tasks'], $toolbar)->getAttribute('data-label'));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc