class FieldLayoutTest
Same name in this branch
- 9 core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php \Drupal\Tests\field_layout\FunctionalJavascript\FieldLayoutTest
Same name and namespace in other branches
- 11.x core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php \Drupal\Tests\field_layout\FunctionalJavascript\FieldLayoutTest
- 11.x core/modules/field_layout/tests/src/Functional/FieldLayoutTest.php \Drupal\Tests\field_layout\Functional\FieldLayoutTest
- 10 core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php \Drupal\Tests\field_layout\FunctionalJavascript\FieldLayoutTest
- 10 core/modules/field_layout/tests/src/Functional/FieldLayoutTest.php \Drupal\Tests\field_layout\Functional\FieldLayoutTest
- 8.9.x core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php \Drupal\Tests\field_layout\FunctionalJavascript\FieldLayoutTest
- 8.9.x core/modules/field_layout/tests/src/Functional/FieldLayoutTest.php \Drupal\Tests\field_layout\Functional\FieldLayoutTest
Tests using field layout for entity displays.
@group field_layout
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\field_layout\Functional\FieldLayoutTest extends \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of FieldLayoutTest
File
-
core/
modules/ field_layout/ tests/ src/ Functional/ FieldLayoutTest.php, line 12
Namespace
Drupal\Tests\field_layout\FunctionalView source
class FieldLayoutTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'field_layout',
'field_ui',
'node',
'field_layout_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->createContentType([
'type' => 'article',
]);
$this->createNode([
'type' => 'article',
'title' => 'The node title',
'body' => [
[
'value' => 'The node body',
],
],
]);
$this->drupalLogin($this->drupalCreateUser([
'access administration pages',
'administer content types',
'administer nodes',
'administer node fields',
'administer node display',
'administer node form display',
'view the administration theme',
]));
}
/**
* Tests an entity type that has fields shown by default.
*/
public function testNodeView() {
// By default, the one-column layout is used.
$this->drupalGet('node/1');
$this->assertSession()
->elementExists('css', '.layout--onecol');
$this->assertSession()
->elementTextContains('css', '.layout__region--content', 'The node body');
$this->drupalGet('admin/structure/types/manage/article/display');
$this->assertEquals([
'Content',
'Disabled',
], $this->getRegionTitles());
$this->assertSession()
->optionExists('fields[body][region]', 'content');
}
/**
* Tests that changes to the regions still leave the fields visible.
*/
public function testRegionChanges() {
$this->drupalGet('admin/structure/types/manage/article/display');
$this->assertEquals([
'Content',
'Disabled',
], $this->getRegionTitles());
$this->assertSession()
->optionExists('fields[body][region]', 'content');
\Drupal::state()->set('field_layout_test.alter_regions', TRUE);
\Drupal::service('plugin.cache_clearer')->clearCachedDefinitions();
$this->drupalGet('admin/structure/types/manage/article/display');
$this->assertEquals([
'Foo',
'Disabled',
], $this->getRegionTitles());
$this->assertSession()
->optionExists('fields[body][region]', 'hidden');
}
/**
* Gets the region titles on the page.
*
* @return string[]
* An array of region titles.
*/
protected function getRegionTitles() {
$region_titles = [];
$region_title_elements = $this->getSession()
->getPage()
->findAll('css', '.region-title td');
/** @var \Behat\Mink\Element\NodeElement[] $region_title_elements */
foreach ($region_title_elements as $region_title_element) {
$region_titles[] = $region_title_element->getText();
}
return $region_titles;
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.