class FieldLayoutTest in Drupal 10
Same name in this branch
- 10 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
Same name and namespace in other branches
- 8 core/modules/field_layout/tests/src/Functional/FieldLayoutTest.php \Drupal\Tests\field_layout\Functional\FieldLayoutTest
- 9 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 extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, FunctionalTestSetupTrait, TestSetupTrait, BlockCreationTrait, ConfigTestTrait, ExtensionListTestTrait, ContentTypeCreationTrait, NodeCreationTrait, RandomGeneratorTrait, TestRequirementsTrait, PhpUnitWarnings, UiHelperTrait, UserCreationTrait, XdebugRequestTrait
- class \Drupal\Tests\field_layout\Functional\FieldLayoutTest
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;
}
}