Commit 5a0ee9b2 authored by Kurucz István's avatar Kurucz István
Browse files

Issue #3222748: settings form states test

parent c6c2728f
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\redirect_after_logout\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the JavaScript functionality of the Redirect After Logout module.
 *
 * @group redirect_after_logout
 */
class SettingsFormStates extends WebDriverTestBase {

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

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'filter',
    'redirect_after_logout',
  ];

  /**
   * The admin user.
   *
   * @var \Drupal\user\Entity\User
   */
  protected $adminUser;

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $this->adminUser = $this->drupalCreateUser([
      'administer site configuration',
    ]);
    $this->drupalLogin($this->adminUser);
  }

  /**
   * Test settings form element visibility.
   */
  public function testSettingsFormStates() {
    $this->drupalGet('admin/config/system/redirect_after_logout');
    $page = $this->getSession()->getPage();
    $create_new_page = $page->findField('redirect_after_logout_create_new_page');
    $new_page_title = $page->findField('redirect_after_logout_page_title');
    $new_page_content = $page->find('css', '#edit-redirect-after-logout-page-content-value');
    $new_page_textformat = $page->find('css', '#edit-redirect-after-logout-page-content-format');
    // Initial state.
    $this->assertTrue($create_new_page->isVisible());
    $this->assertFalse($new_page_title->isVisible());
    $this->assertFalse($new_page_content->isVisible());
    $this->assertFalse($new_page_textformat->isVisible());
    // Check create new page checkbox.
    $create_new_page->check();
    $this->assertTrue($create_new_page->isVisible());
    $this->assertTrue($new_page_title->isVisible());
    $this->assertTrue($new_page_content->isVisible());
    $this->assertTrue($new_page_textformat->isVisible());
  }
}