improvements-2.x-dev/modules/improvements_node/tests/src/Functional/ImprovementsNodeTest.php
modules/improvements_node/tests/src/Functional/ImprovementsNodeTest.php
<?php
namespace Drupal\Tests\improvements_node\Functional;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\improvements\Traits\ImprovementsTestTrait;
use Drupal\Tests\node\Traits\NodeCreationTrait;
class ImprovementsNodeTest extends BrowserTestBase {
use ImprovementsTestTrait;
use NodeCreationTrait;
/**
* {@inheritDoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritDoc}
*/
protected static $modules = ['improvements_node'];
/**
* {@inheritDoc}
*/
protected function setUp(): void {
parent::setUp();
$this->createContentType(['type' => 'page', 'name' => 'Page']);
}
/**
* Test node improvements.
*
* @TODO Separate to small tests
*/
public function testNodeImprovements(): void {
$this->installModule('field', 'field_ui');
$this->drupalLoginAsRoot();
$web_assert = $this->assertSession();
// Test "Node form" without advances settings
$this->drupalGet('/node/add/page');
$this->dontSeeErrorMessage();
$web_assert->elementExists('css', '#edit-revision-information');
$web_assert->elementExists('css', '.entity-content-form-footer .field--name-status');
$web_assert->elementAttributeExists('css', '#edit-title-0-value', 'autofocus');
// Test "Node type form"
$this->drupalGet('/admin/structure/types/manage/page');
$this->dontSeeErrorMessage();
$web_assert->elementExists('css', '#edit-hide-revision-group');
$web_assert->elementExists('css', '#edit-move-status-to-vertical-tab');
// Test change advanced settings in "Node type form"
$this->submitForm([
'options[revision]' => FALSE,
'hide_revision_group' => TRUE,
'move_status_to_vertical_tab' => TRUE,
], 'Save');
$this->dontSeeErrorMessage();
$this->drupalGet('/admin/structure/types/manage/page');
$this->dontSeeErrorMessage();
$web_assert->checkboxChecked('hide_revision_group');
$web_assert->checkboxChecked('move_status_to_vertical_tab');
// Test "Node form" with advanced settings
$this->drupalGet('/node/add/page');
$this->dontSeeErrorMessage();
$web_assert->elementNotExists('css', '#edit-revision-information');
$web_assert->elementNotExists('css', '.entity-content-form-footer .field--name-status');
$web_assert->elementExists('css', '#edit-options .field--name-status');
// Test "Node form" default settings
$this->drupalGet('/admin/structure/types/add');
$this->dontSeeErrorMessage();
// @TODO Fix
//$web_assert->checkboxNotChecked('menu_options[main]');
$web_assert->elementAttributeExists('css', '#edit-preview-mode-0', 'checked');
$web_assert->checkboxNotChecked('options[promote]');
$web_assert->checkboxNotChecked('options[revision]');
$web_assert->checkboxNotChecked('display_submitted');
// Test "Title" field in display options
$this->drupalGet('/admin/structure/types/manage/page/display');
$this->dontSeeErrorMessage();
$web_assert->elementExists('css', 'tr#title');
$web_assert->fieldExists('fields[title][type]');
// @TODO Check render field in node page
}
}
